Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
a80d888
chore: remove unused files and clean up the repository
CodeWithEmad Feb 24, 2025
bc222a5
chore: update .gitignore to include additional Python-related files a…
CodeWithEmad Feb 24, 2025
dd8bc39
chore: update pyproject.toml with project metadata and dependencies
CodeWithEmad Feb 24, 2025
5506ec7
chore: add .python-version file specifying Python version 3.7
CodeWithEmad Feb 24, 2025
4d45694
chore: update Makefile to streamline installation, testing, and clean…
CodeWithEmad Feb 24, 2025
f0e9acf
chore: add CONTRIBUTING.md to guide new contributors
CodeWithEmad Feb 24, 2025
5903662
chore: add README.md with project overview and installation instructions
CodeWithEmad Feb 24, 2025
1006094
chore: update test imports to reflect new module structure
CodeWithEmad Feb 24, 2025
30d8e3d
fix: new module structure
CodeWithEmad Feb 24, 2025
a6d8d58
chore: update GitHub Actions workflow to use Python 3.7 and 3.8 onwar…
CodeWithEmad Feb 24, 2025
1741df4
chore: add VSCode extensions recommendations for improved development…
CodeWithEmad Feb 24, 2025
1751288
chore: add VSCode settings for JSON, Python, and Markdown formatting
CodeWithEmad Feb 24, 2025
2adcf14
chore: update Python version requirements to 3.8 and remove deprecate…
CodeWithEmad Feb 24, 2025
fc6d345
chore: update Makefile to streamline development and build commands
CodeWithEmad Feb 24, 2025
7a5a024
chore: update GitHub Actions workflow to use 'make install-dev' for d…
CodeWithEmad Feb 24, 2025
93ab5b7
chore: update development installation command in Makefile to include…
CodeWithEmad Feb 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions .editorconfig

This file was deleted.

35 changes: 7 additions & 28 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,7 @@ on:
branches: [master]

jobs:
test-p36-p37:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version:
- 3.6
- 3.7
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: python -m pip install --upgrade pip setuptools
- name: Install dependencies
run: pip install tox tox-gh-actions
- name: Test with tox
run: tox

test-p38-latest:
test-p38-onward:
runs-on: ubuntu-latest
strategy:
matrix:
Expand All @@ -40,14 +19,14 @@ jobs:
- 3.12
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: python -m pip install --upgrade pip setuptools
run: pip install --upgrade pip
- name: Install dependencies
run: pip install tox tox-gh-actions
- name: Test with tox
run: tox
run: make install-dev
- name: Run Tests
run: make test
90 changes: 80 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Created by https://www.toptal.com/developers/gitignore/api/python
# Edit at https://www.toptal.com/developers/gitignore?templates=python

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand All @@ -8,7 +12,6 @@ __pycache__/

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
Expand All @@ -21,9 +24,11 @@ parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
Expand All @@ -38,14 +43,17 @@ pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
Expand All @@ -54,6 +62,8 @@ coverage.xml
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
Expand All @@ -66,27 +76,61 @@ instance/
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version
# IPython
profile_default/
ipython_config.py

# celery beat schedule file
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# dotenv
# Environments
.env

# virtualenv
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
Expand All @@ -100,7 +144,33 @@ ENV/

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

### Python Patch ###
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
poetry.toml

# ruff
.ruff_cache/

# LSP config files
pyrightconfig.json

# IDE settings
.vscode/
.idea/
# End of https://www.toptal.com/developers/gitignore/api/python
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.8
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"bungcip.better-toml",
"tamasfe.even-better-toml",
"charliermarsh.ruff"
]
}
20 changes: 20 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.formatOnSave": true
},
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff"
},
"[markdown]": {
"editor.formatOnSave": true
},
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "always",
"source.organizeImports.ruff": "always"
},
"cSpell.words": [
"Apyrat"
]
}
13 changes: 0 additions & 13 deletions AUTHORS.rst

This file was deleted.

111 changes: 111 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Contributing to Apyrat

Thanks for considering contributing to Apyrat! Here's how you can help.

## Ways to Contribute

### 🐛 Report Bugs

Report bugs by [opening an issue](https://github.com/codewithemad/apyrat/issues).
Include:

- Your OS and Python version
- Steps to reproduce
- Error messages
- Expected vs actual behavior

### 🛠️ Fix Bugs or Add Features

Check our [GitHub issues](https://github.com/codewithemad/apyrat/issues) for bugs and features tagged with "help wanted".

### 📝 Improve Documentation

Help improve:

- Code docstrings
- README and other docs
- Code comments

## Development Setup

1. Fork and clone:

```bash
git clone git@github.com:your_username/apyrat.git
cd apyrat
```

2. Install dependencies using [uv](https://github.com/astral-sh/uv):

```bash
make install
```

3. Create a branch:

```bash
git checkout -b feature-name
```

## Development Guidelines

### Code Quality

We use:

- [Ruff](https://docs.astral.sh/ruff/) for linting and formatting
- [Pytest](https://docs.pytest.org/) for testing

Run checks:

```bash
# Format and lint
make format
make lint

# Run tests
make test
```

### Testing

- Write tests for new features
- Ensure all tests pass
- Test edge cases

## Pull Request Process

1. Update docs if needed
2. Add tests
3. Run checks:

```bash
make format
make lint
make test
```

4. Push changes:

```bash
git add .
git commit -m "Description of changes"
git push origin feature-name
```

5. Open a PR with:
- Clear description
- Issue numbers if relevant
- Breaking change notes if any

## Release Process (Maintainers)

```bash
# Build and publish
make build
make publish
```

## Questions?

[Open an issue](https://github.com/codewithemad/apyrat/issues) for support.
Loading