Skip to content

Commit c71d68d

Browse files
committed
Updates project dependencies and enhances README
Improves .gitignore to include additional virtual environments Enhances test structure for better organization Incorporates new features and fixes various bugs Relates to ongoing project maintenance efforts
1 parent 98f66a0 commit c71d68d

12 files changed

+1168
-1006
lines changed

.github/workflows/ci-cd.yml

+66-66
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
1-
name: CI-CD # CI/CD workflow
2-
3-
on:
4-
push:
5-
branches: [ "main" ] # Trigger on pushes to 'main'
6-
pull_request:
7-
branches: [ "main" ] # Trigger on PRs targeting 'main'
8-
9-
jobs:
10-
build-test: # Our first job for building and testing
11-
runs-on: ubuntu-latest
12-
13-
steps:
14-
- name: Check out code # Check out your repository
15-
uses: actions/checkout@v3
16-
17-
- name: Set up Python # Install desired Python version
18-
uses: actions/setup-python@v4
19-
with:
20-
python-version: "3.11"
21-
22-
- name: Install dependencies
23-
run: |
24-
python -m pip install --upgrade pip
25-
# Editable install of your package so your code in src/
26-
# is recognized as a Python package
27-
pip install -e .
28-
# If you have additional dev/test dependencies,
29-
# either put them in setup.py or:
30-
# pip install -r requirements.txt
31-
32-
- name: Run tests
33-
run: |
34-
# Use python -m pytest to ensure we use the same Python interpreter
35-
python -m pytest tests/
36-
37-
deploy: # Second job for "CD" or deployment
38-
needs: [ build-test ] # Only run if 'build-test' succeeds
39-
runs-on: ubuntu-latest
40-
41-
steps:
42-
- name: Check out code
43-
uses: actions/checkout@v3
44-
45-
- name: Set up Python
46-
uses: actions/setup-python@v4
47-
with:
48-
python-version: "3.11"
49-
50-
- name: Build distribution
51-
run: |
52-
python -m pip install --upgrade pip
53-
pip install build twine # Tools needed to build & upload your package
54-
python -m build # Creates dist/*.whl and dist/*.tar.gz
55-
56-
- name: Publish to PyPI
57-
# Sample checks if the push is a tagged release.
58-
if: startsWith(github.ref, 'refs/tags/')
59-
env:
60-
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }}
61-
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
62-
run: |
63-
# By default, this will push to PyPI.
64-
# For TestPyPI, pass --repository-url or set env var:
65-
# python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
66-
python -m twine upload dist/*
1+
name: CI-CD # CI/CD workflow
2+
3+
on:
4+
push:
5+
branches: [ "main" ] # Trigger on pushes to 'main'
6+
pull_request:
7+
branches: [ "main" ] # Trigger on PRs targeting 'main'
8+
9+
jobs:
10+
build-test: # Our first job for building and testing
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Check out code # Check out your repository
15+
uses: actions/checkout@v3
16+
17+
- name: Set up Python # Install desired Python version
18+
uses: actions/setup-python@v4
19+
with:
20+
python-version: "3.11"
21+
22+
- name: Install dependencies
23+
run: |
24+
python -m pip install --upgrade pip
25+
# Editable install of your package so your code in src/
26+
# is recognized as a Python package
27+
pip install -e .
28+
# If you have additional dev/test dependencies,
29+
# either put them in setup.py or:
30+
# pip install -r requirements.txt
31+
32+
- name: Run tests
33+
run: |
34+
# Use python -m pytest to ensure we use the same Python interpreter
35+
python -m pytest tests/
36+
37+
deploy: # Second job for "CD" or deployment
38+
needs: [ build-test ] # Only run if 'build-test' succeeds
39+
runs-on: ubuntu-latest
40+
41+
steps:
42+
- name: Check out code
43+
uses: actions/checkout@v3
44+
45+
- name: Set up Python
46+
uses: actions/setup-python@v4
47+
with:
48+
python-version: "3.11"
49+
50+
- name: Build distribution
51+
run: |
52+
python -m pip install --upgrade pip
53+
pip install build twine # Tools needed to build & upload your package
54+
python -m build # Creates dist/*.whl and dist/*.tar.gz
55+
56+
- name: Publish to PyPI
57+
# Sample checks if the push is a tagged release.
58+
if: startsWith(github.ref, 'refs/tags/')
59+
env:
60+
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }}
61+
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
62+
run: |
63+
# By default, this will push to PyPI.
64+
# For TestPyPI, pass --repository-url or set env var:
65+
# python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
66+
python -m twine upload dist/*

.gitignore

+41-40
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,41 @@
1-
# Ignore Python cache files
2-
__pycache__/
3-
*.py[cod]
4-
*.pyo
5-
*.pyd
6-
*.so
7-
8-
# Ignore virtual environment
9-
venv/
10-
env/
11-
12-
# Ignore environment variables
13-
.env
14-
15-
# Ignore logs
16-
logs/
17-
*.log
18-
19-
# Ignore compiled files
20-
*.egg-info/
21-
*.dist-info/
22-
build/
23-
dist/
24-
25-
# Ignore data and hash directories
26-
data/
27-
hashes/
28-
29-
# Ignore Jupyter Notebook checkpoints (if applicable)
30-
.ipynb_checkpoints/
31-
32-
# Ignore OS-generated files
33-
.DS_Store
34-
Thumbs.db
35-
36-
# Ignore IDE/editor files
37-
.vscode/
38-
*.swp
39-
*.swo
40-
.idea/
1+
# Ignore Python cache files
2+
__pycache__/
3+
*.py[cod]
4+
*.pyo
5+
*.pyd
6+
*.so
7+
8+
# Ignore virtual environments
9+
venv_win/
10+
venv_wsl/
11+
venv/
12+
13+
# Ignore environment variables
14+
.env
15+
16+
# Ignore logs
17+
logs/
18+
*.log
19+
20+
# Ignore compiled files
21+
*.egg-info/
22+
*.dist-info/
23+
build/
24+
dist/
25+
26+
# Ignore data and hash directories
27+
data/
28+
hashes/
29+
30+
# Ignore Jupyter Notebook checkpoints (if applicable)
31+
.ipynb_checkpoints/
32+
33+
# Ignore OS-generated files
34+
.DS_Store
35+
Thumbs.db
36+
37+
# Ignore IDE/editor files
38+
.vscode/
39+
*.swp
40+
*.swo
41+
.idea/

LICENSE

+22-22
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
MIT License
2-
3-
Copyright (c) 2025 Dylan Picart
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
22-
1+
MIT License
2+
3+
Copyright (c) 2025 Dylan Picart
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+

0 commit comments

Comments
 (0)