Skip to content

Commit 40a882e

Browse files
committed
v3.0.0 Release Candidate
1 parent d0e5800 commit 40a882e

309 files changed

Lines changed: 22348 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Python
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
*.so
6+
.Python
7+
*.egg-info/
8+
dist/
9+
build/
10+
*.egg
11+
12+
# Virtual environments
13+
venv/
14+
env/
15+
ENV/
16+
.venv
17+
18+
# IDE
19+
.idea/
20+
.vscode/
21+
*.swp
22+
*.swo
23+
*~
24+
25+
# Testing
26+
.pytest_cache/
27+
.coverage
28+
htmlcov/
29+
.tox/
30+
.nox/
31+
32+
# Environment
33+
.env
34+
.env.local
35+
.env.*.local
36+
37+
# Downloads
38+
downloads/
39+
*.pdf
40+
*.doc
41+
*.docx
42+
43+
# OS
44+
.DS_Store
45+
Thumbs.db
46+
47+
# Git
48+
.git/
49+
.gitignore
50+
51+
# Documentation
52+
*.md
53+
!README.md
54+
55+
# Docker
56+
Dockerfile
57+
docker-compose.yml
58+
.dockerignore
59+
60+
# Other
61+
*.log
62+
.cache

.github/workflows/code-quality.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Code quality
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- master
8+
- develop
9+
push:
10+
branches:
11+
- main
12+
- master
13+
- develop
14+
15+
jobs:
16+
lint:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Set up Python
23+
uses: actions/setup-python@v5
24+
with:
25+
python-version: "3.12"
26+
27+
- name: Cache pip packages
28+
uses: actions/cache@v4
29+
with:
30+
path: ~/.cache/pip
31+
key: ${{ runner.os }}-pip-codequality-${{ hashFiles('**/requirements.txt', '**/setup.py') }}
32+
restore-keys: |
33+
${{ runner.os }}-pip-codequality-
34+
35+
- name: Install dependencies
36+
run: |
37+
python -m pip install --upgrade pip
38+
pip install -r requirements.txt
39+
pip install -e ".[dev]"
40+
41+
- name: Run Black (format check)
42+
run: black --check --diff signnow/ tests/ examples/ run_examples.py
43+
44+
- name: Run Flake8
45+
run: flake8 signnow/ tests/ examples/ run_examples.py --max-line-length=88 --extend-ignore=E203,W503,E501

.github/workflows/tests.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Tests
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- master
8+
- develop
9+
push:
10+
branches:
11+
- main
12+
- master
13+
- develop
14+
15+
jobs:
16+
test:
17+
runs-on: ubuntu-latest
18+
strategy:
19+
matrix:
20+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
21+
22+
steps:
23+
- name: Checkout code
24+
uses: actions/checkout@v4
25+
26+
- name: Set up Python ${{ matrix.python-version }}
27+
uses: actions/setup-python@v5
28+
with:
29+
python-version: ${{ matrix.python-version }}
30+
31+
- name: Cache pip packages
32+
uses: actions/cache@v4
33+
with:
34+
path: ~/.cache/pip
35+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt', '**/pyproject.toml') }}
36+
restore-keys: |
37+
${{ runner.os }}-pip-
38+
39+
- name: Install dependencies
40+
run: |
41+
python -m pip install --upgrade pip
42+
pip install -r requirements.txt
43+
pip install -e ".[dev]"
44+
45+
- name: Run tests with coverage
46+
run: |
47+
pytest tests/ -v --cov=signnow --cov-report=term --cov-fail-under=80
48+
49+
- name: Upload test results
50+
if: always()
51+
uses: actions/upload-artifact@v4
52+
with:
53+
name: test-results-${{ matrix.python-version }}
54+
path: |
55+
.pytest_cache/
56+
retention-days: 7

.gitignore

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
pip-wheel-metadata/
24+
share/python-wheels/
25+
*.egg-info/
26+
.installed.cfg
27+
*.egg
28+
MANIFEST
29+
30+
# PyInstaller
31+
*.manifest
32+
*.spec
33+
34+
# Test / coverage reports
35+
htmlcov/
36+
.tox/
37+
.nox/
38+
.coverage
39+
.coverage.*
40+
.cache
41+
nosetests.xml
42+
coverage.xml
43+
*.cover
44+
*.py,cover
45+
.hypothesis/
46+
.pytest_cache/
47+
48+
# Translations
49+
*.mo
50+
*.pot
51+
52+
# Django stuff:
53+
*.log
54+
local_settings.py
55+
db.sqlite3
56+
db.sqlite3-journal
57+
58+
# Flask stuff:
59+
instance/
60+
.webassets-cache
61+
62+
# Scrapy stuff:
63+
.scrapy
64+
65+
# Sphinx documentation
66+
docs/_build/
67+
68+
# PyBuilder
69+
target/
70+
71+
# Jupyter Notebook
72+
.ipynb_checkpoints
73+
74+
# IPython
75+
profile_default/
76+
ipython_config.py
77+
78+
# pyenv
79+
.python-version
80+
81+
# pipenv
82+
Pipfile.lock
83+
84+
# PEP 582
85+
__pypackages__/
86+
87+
# Celery stuff
88+
celerybeat-schedule
89+
celerybeat.pid
90+
91+
# SageMath parsed files
92+
*.sage.py
93+
94+
# Environments
95+
.env
96+
.venv
97+
env/
98+
venv/
99+
ENV/
100+
env.bak/
101+
venv.bak/
102+
103+
# Spyder project settings
104+
.spyderproject
105+
.spyproject
106+
107+
# Rope project settings
108+
.ropeproject
109+
110+
# mkdocs documentation
111+
/site
112+
113+
# mypy
114+
.mypy_cache/
115+
.dmypy.json
116+
dmypy.json
117+
118+
# Pyre type checker
119+
.pyre/
120+
121+
# IDE
122+
.idea/
123+
.vscode/
124+
*.swp
125+
*.swo
126+
*~
127+
128+
# OS
129+
.DS_Store
130+
Thumbs.db

0 commit comments

Comments
 (0)