Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
d506024
updated to python 3, refactored code, added typehints
Apr 24, 2022
8a6cb18
removed test file
Apr 24, 2022
5a32898
updated to python 3, using beartype, overal cleanup and improvement.
May 1, 2022
cb7ef0c
added look arounds
May 2, 2022
0bd8d37
update readme
May 2, 2022
963c7b1
Create main.yml
rbroderi May 5, 2022
7234a88
fix missing typealias for python 3.8:
May 5, 2022
552c1d5
Merge branch 'master' of https://github.com/rbroderi/PythonVerbalExpr…
May 5, 2022
fa247a0
condense python version dependent imports
May 5, 2022
c74049a
condense python version dependent imports
May 5, 2022
c639670
Update main.yml
rbroderi May 5, 2022
1f461e5
Update main.yml
rbroderi May 5, 2022
d38fe3c
condense python version dependent imports
May 5, 2022
6e6163f
Merge branch 'master' of https://github.com/rbroderi/PythonVerbalExpr…
May 5, 2022
6f8f1c5
adding github actions badge
May 5, 2022
9f4a8e4
updated readme
May 5, 2022
09a59fc
Create GPL_LICENSE.txt
rbroderi May 8, 2022
8c8e673
change name and structure as fork
May 8, 2022
628509b
update name in init.py
May 8, 2022
eb3ce53
update name in init.py
May 8, 2022
d48c248
Update README.md
rbroderi May 8, 2022
ada781c
update setup.py
May 8, 2022
ccde2ac
Merge branch 'master' of https://github.com/rbroderi/PythonVerbalExpr…
May 8, 2022
9ddf7a8
update version to 1.0.1
May 8, 2022
ec5231f
push to pypi.org
May 8, 2022
2950a58
update setup.py python versions
May 8, 2022
b0f29e2
updated travis.yml with python versions
May 8, 2022
1298138
updated manifest.in
May 8, 2022
38360d2
added documentation
May 8, 2022
b150014
switch to pdoc from pdoc3
May 8, 2022
15b1fca
Set theme jekyll-theme-cayman
rbroderi May 8, 2022
3e71c04
Delete docs directory
rbroderi May 8, 2022
03f293e
add github pages
May 8, 2022
b7d2533
update readme
May 8, 2022
4bdd63a
update readme
May 8, 2022
66778e4
remove travis.yaml dependency
May 8, 2022
c9f4e51
remove travis.yaml dependency
May 8, 2022
7fd6e73
switch config around, using setup.cfg and, tox
May 8, 2022
ab9b9ac
adde pre-commit hooks and pyproject.toml
May 8, 2022
27383e4
adde pre-commit hooks and pyproject.toml
May 8, 2022
0befb31
fix gha
May 8, 2022
aa1811b
fix gha
May 8, 2022
a971431
fix gha
May 8, 2022
3e53366
fix gha
May 8, 2022
c3ee46d
fix gha
May 8, 2022
7d6f3e7
use poseur for older python versions
May 8, 2022
b576312
use poseur for older python versions
May 8, 2022
fed6933
use poseur for older python versions
May 8, 2022
d28af7a
use beartype protocol instead
May 8, 2022
013d258
use beartype protocol instead
May 8, 2022
5d8a468
us typing-extensions protocol if not in typing
May 8, 2022
f69a8f4
use runtime checkable from typing-extensions for version 3.7
May 8, 2022
395b2b6
push to pypi.org
May 8, 2022
82d2355
added auto doc generate pre-commit hook
May 8, 2022
2af09a0
added auto doc generate pre-commit hook
May 8, 2022
cb25f04
added auto doc generate pre-commit hook
May 8, 2022
f7efcf5
added auto doc generate pre-commit hook
May 8, 2022
38c6068
added auto doc generate pre-commit hook
May 8, 2022
f1d1caf
use importlib_metadata for python 3.7
May 8, 2022
a04e3ce
Update README.md
rbroderi May 8, 2022
8bcc875
Update README.md
rbroderi May 8, 2022
cc9a299
Update README.md
rbroderi May 9, 2022
161b921
Update README.md
rbroderi May 9, 2022
10145fd
Update README.md
rbroderi May 9, 2022
fa07e9c
add pycln
May 12, 2022
e55e48e
updated pre-commit tests
May 12, 2022
7f5b797
cleanup and move to new dev enviroment. Drop support for python versi…
Apr 28, 2024
1ce407a
cleanup and move to new dev enviroment. Drop support for python versi…
Apr 28, 2024
ff1d5a1
update readme
Apr 28, 2024
c898467
Update README.md
rbroderi Apr 28, 2024
9436a14
Update README.md
rbroderi Apr 28, 2024
3433381
Update gh_pages.yaml
rbroderi Apr 28, 2024
d40c1ee
update pypi workflow to publish
Apr 28, 2024
18c63ac
bump version
Apr 28, 2024
b8c4fca
add classifiers
Apr 28, 2024
75e672f
Rename LICENSE.txt to LICENSE
rbroderi Apr 28, 2024
df0e0e3
Update README.md
rbroderi Apr 28, 2024
40b0bba
Update LICENSE
rbroderi Apr 28, 2024
209b469
Update README.md
rbroderi Apr 28, 2024
429f9b6
Update README.md
rbroderi Apr 28, 2024
a71bedc
Update README.md
rbroderi Apr 28, 2024
214583f
Update README.md
rbroderi Apr 28, 2024
f2088f9
Update README.md
rbroderi Apr 28, 2024
1cf8876
Update README.md
rbroderi Apr 28, 2024
ff4b462
Update README.md
rbroderi Apr 28, 2024
90e4d49
Update README.md
rbroderi Apr 28, 2024
c0d2172
Update README.md
rbroderi Apr 28, 2024
63f2027
Update README.md
rbroderi Apr 28, 2024
2091da1
3.0.0 release
rbroderi Apr 11, 2026
cdae8a3
Remove legacy dist zip artifacts
rbroderi Apr 11, 2026
8fdd6cf
Remove legacy dist zip artifacts
rbroderi Apr 11, 2026
671b441
fix github actions
rbroderi Apr 11, 2026
4dcd302
fix publish action
rbroderi Apr 11, 2026
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
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
stringdatadeque/_version.py export-subst
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
93 changes: 93 additions & 0 deletions .github/workflows/create-release-from-tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Create Release From Tag
on:
push:
tags:
- "v*.*.*"
workflow_dispatch:
inputs:
tag:
description: "Tag to release (for example: v3.0.0)"
required: true
type: string
permissions:
contents: write
jobs:
build-sdist:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Build sdist
run: uv build --no-sources --sdist
- name: Upload sdist artifact
uses: actions/upload-artifact@v7
with:
name: release-sdist
path: dist/*.tar.gz
build-wheels:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Build wheel
run: uv build --no-sources --wheel
- name: Upload wheel artifact
uses: actions/upload-artifact@v7
with:
name: release-wheel-${{ matrix.python-version }}
path: dist/*.whl
create-release:
needs: [build-sdist, build-wheels]
runs-on: ubuntu-latest
steps:
- name: Download sdist artifact
uses: actions/download-artifact@v8
with:
name: release-sdist
path: dist/
- name: Download wheel artifacts
uses: actions/download-artifact@v8
with:
pattern: release-wheel-*
path: dist/wheels
- name: Prepare release assets
run: |
mkdir -p dist/release
cp dist/*.tar.gz dist/release/
python - <<'PY'
import hashlib
import shutil
from pathlib import Path

seen = set()
out = Path("dist/release")
for wheel in sorted(Path("dist/wheels").rglob("*.whl")):
digest = hashlib.sha256(wheel.read_bytes()).hexdigest()
if digest in seen:
continue
seen.add(digest)
shutil.copy2(wheel, out / wheel.name)
PY
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tag || github.ref_name }}
generate_release_notes: true
make_latest: true
files: dist/release/*
16 changes: 16 additions & 0 deletions .github/workflows/gh_pages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Deploy Sphinx documentation to Pages
"on":
push:
branches: [master] # branch to trigger deployment
jobs:
pages:
runs-on: ubuntu-20.04
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
steps:
- id: deployment
uses: sphinx-notes/pages@v3
43 changes: 43 additions & 0 deletions .github/workflows/lint-format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Lint and Format
"on":
pull_request:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
lint-format:
name: Lint and format checks (py${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Install project with dev dependencies
run: uv sync --extra dev
- name: Run lint and format hooks
run: |
uv run prek run ssort --all-files
uv run prek run fix-byte-order-marker check-merge-conflict \
end-of-file-fixer trailing-whitespace mixed-line-ending --all-files
uv run prek run check-yaml check-toml check-added-large-files \
check-executables-have-shebangs \
check-shebang-scripts-are-executable \
--all-files
uv run prek run yamlfmt yamllint --all-files
uv run prek run typos mdformat markdownlint-cli2 --all-files
uv run prek run taplo-format taplo-lint --all-files
uv run prek run pyupgrade pycln autopep695-format --all-files
uv run prek run ruff-check ruff-format ruff-check-post-format \
refurb --all-files
24 changes: 24 additions & 0 deletions .github/workflows/pip-audit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Pip-Audit
"on":
pull_request:
push:
branches: [main]
workflow_dispatch:
jobs:
selftest:
name: Pip-Audit (py${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- uses: taiki-e/install-action@just
- name: Install Dependencies
run: just install
- uses: pypa/gh-action-pip-audit@v1.0.8
118 changes: 118 additions & 0 deletions .github/workflows/pypi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: Publish to PyPI
"on":
release:
types: [published]
workflow_dispatch:
permissions:
contents: read
jobs:
build-sdist:
name: Build sdist
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Install check tooling
run: |
python -m pip install --upgrade pip
python -m pip install twine
- name: Clean dist directory
run: rm -rf dist
- name: Build sdist
run: uv build --no-sources --sdist
- name: Check distributions
run: python -m twine check dist/*.tar.gz
- name: Upload distributions artifact
uses: actions/upload-artifact@v7
with:
name: python-sdist
path: dist/*.tar.gz
build-wheels:
name: Build wheel (py${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Install check tooling
run: |
python -m pip install --upgrade pip
python -m pip install twine
- name: Clean dist directory
run: rm -rf dist
- name: Build wheel
run: uv build --no-sources --wheel
- name: Check distributions
run: python -m twine check dist/*.whl
- name: Upload wheel artifact
uses: actions/upload-artifact@v7
with:
name: python-wheel-${{ matrix.python-version }}
path: dist/*.whl
publish:
name: Publish to PyPI
needs: [build-sdist, build-wheels]
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
contents: read
id-token: write
steps:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Download sdist artifact
uses: actions/download-artifact@v8
with:
name: python-sdist
path: dist/
- name: Download wheel artifacts
uses: actions/download-artifact@v8
with:
pattern: python-wheel-*
path: dist/wheels
- name: Prepare publish directory
run: |
mkdir -p dist/publish
cp dist/*.tar.gz dist/publish/
python - <<'PY'
import hashlib
import shutil
from pathlib import Path

seen = set()
out = Path("dist/publish")
for wheel in sorted(Path("dist/wheels").rglob("*.whl")):
digest = hashlib.sha256(wheel.read_bytes()).hexdigest()
if digest in seen:
continue
seen.add(digest)
shutil.copy2(wheel, out / wheel.name)
PY
- name: Install check tooling
run: |
python -m pip install --upgrade pip
python -m pip install twine
- name: Check distributions
run: python -m twine check dist/publish/*
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Publish package to PyPI
run: uv publish --trusted-publishing always --check-url https://pypi.org/simple dist/publish/*
30 changes: 30 additions & 0 deletions .github/workflows/quality-security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Quality and Security
"on":
pull_request:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
quality-security:
name: Quality and security checks (py${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Install project with dev dependencies
run: uv sync --extra dev
- name: Run quality and security hooks
run: uv run prek run vulture deptry detect-secrets --all-files
30 changes: 30 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Tests
"on":
pull_request:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
tests:
name: Test suite with coverage (py${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up uv
uses: astral-sh/setup-uv@v7
- name: Install project with dev dependencies
run: uv sync --extra dev
- name: Run coverage gate hook
run: uv run prek run coverage-100 --all-files
Loading