Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
76a5d21
simplify patterns/behavioral/memento, changing Transactional from des…
May 24, 2023
53ba9bc
add build and dist folders to .gitignore
grimley517 May 8, 2024
11113ea
linter updates - changes to comply with black
grimley517 May 8, 2024
af6fc3e
Additional linting error in patterns/behavioral/strategy.py added spa…
grimley517 May 12, 2024
e0b0061
extract complexity from docstring line
grimley517 May 12, 2024
87a1777
linter reformats quote marks in strategy pattern
grimley517 May 12, 2024
ffb45ca
put lint into a single shell command
grimley517 May 12, 2024
b6ceef4
Removed Random Petshop tests from abstract_factory.py as per #418
grimley517 May 16, 2024
e05b35f
linted abstract_factory.py
grimley517 May 16, 2024
9581e5a
updated readme to describe purpose of lint.sh file
grimley517 May 16, 2024
81e78fe
Merge pull request #417 from grimley517/#415-linter-preventing-prs
faif May 18, 2024
1a94d1f
Update README.md
azarboon Jun 11, 2024
f401747
Merge pull request #419 from azarboon/patch-1
faif Jun 19, 2024
cffe6cd
Update README.md
faif Sep 5, 2024
fa56fde
Update README.md
faif Sep 5, 2024
328b2d4
Merge pull request #408 from LeiYangGH/master
faif Sep 5, 2024
a400094
Added routing
Apr 23, 2025
8f0a91c
Cleaned up lint.sh
Apr 23, 2025
821a4dc
Merge pull request #432 from cdorsman/mvc-routing
faif Apr 25, 2025
ac1b2b4
Merge pull request #434 from cdorsman/lint-sh-cleanup
faif Apr 25, 2025
9016858
Update README.md
faif Apr 25, 2025
ce06e8b
Highlight the need for a wrapper in delegate
danwald Apr 26, 2025
75c27bf
Merge pull request #436 from danwald/update-delegation
faif May 2, 2025
ab82cbe
Removed old Python versions
cdorsman May 3, 2025
3b58565
Added typing
cdorsman May 3, 2025
24f8dcd
Fixed bug
cdorsman May 3, 2025
93b4e16
Removed bugs and added more types
cdorsman May 3, 2025
ccc17b4
Fixed bug on check if controller is defined
cdorsman May 3, 2025
65fcf56
removed object definition from routes
cdorsman May 3, 2025
6af5a82
I fixed a bug
cdorsman May 3, 2025
f6bc58d
Ädded comments and lost types
cdorsman May 3, 2025
58bd201
Defined "random_animal" with random animal from list.
cdorsman May 3, 2025
a50bb54
- Moved AbstractExpert
cdorsman May 4, 2025
9ad7206
Removed object type from init
cdorsman May 4, 2025
e834385
Retry
cdorsman May 4, 2025
8c0b293
Retry2
cdorsman May 4, 2025
092fdd3
fix doctest
cdorsman May 4, 2025
049d555
Retry3
cdorsman May 4, 2025
79a41c7
Retry4
cdorsman May 4, 2025
871fd8a
Added type to random_animal
cdorsman May 4, 2025
7f4e266
Pet to type[Pet]
cdorsman May 4, 2025
84b4b7b
woof
cdorsman May 4, 2025
7db462e
t to T
cdorsman May 4, 2025
07a5f33
Merge pull request #443 from cdorsman/abstract-factory-fixes
faif May 7, 2025
ecc5e17
Remove old py versions (#440)
cdorsman May 7, 2025
879ac01
Mvc add typing (#441)
cdorsman May 7, 2025
bee048e
11 project format (#446)
grimley517 Jul 19, 2025
3c0725a
Servant pattern (#413)
lmiguelvargasf Jul 19, 2025
ef74d59
fix(docs): correct typos in top comment of catalog.py (#451)
partth-code Sep 5, 2025
25c7356
fix: :bug: Fix potential warning in factory.py (#455)
Sorrow-Scarlet Oct 17, 2025
d842d10
Fix typo in top comment of catalog.py (#453)
Demagalawrence Oct 17, 2025
931ed9f
Add type hints and standardized docstrings to observer.py (#454)
Sai-Sravya-Thumati Oct 17, 2025
a72dead
Cleanup pluggable-libs & fix CI file output (#433, #447) (#448)
PraveenMudalgeri Oct 17, 2025
d1e262f
Remove pluggable-libs submodule and cleanup (#433) (#447)
PraveenMudalgeri Oct 17, 2025
11132fc
Translate several doctest tests to pytest (#414)
germin8 Oct 17, 2025
90016f4
Add type hint to remaining pattern modules (#410)
debakarr Oct 17, 2025
5110def
docs: add missing Servant pattern to README behavioral patterns table…
xingarr Nov 7, 2025
cd7f927
Add anti patterns sectiAdd “Anti-Patterns” section to README with exp…
ABHIRANJAN-KUMAR1 Nov 25, 2025
9bc7688
improved docstring formatting and added safe return in factory method…
ABHIRANJAN-KUMAR1 Jan 14, 2026
039baa3
Fixed an incorrect indentation. (#462)
kanade-ao Jan 21, 2026
4622c78
Improve type annotations in adapter pattern (#463)
JJuhi Jan 21, 2026
bc4c583
Test coverage changes added (#464)
Binilkks Feb 13, 2026
de0e3f8
chore: Update outdated GitHub Actions versions (#465)
pgoslatara Feb 13, 2026
39708b9
Docs: Add ecosystem examples to CoR, add Factory tests (#466)
SanjanaG-01 Feb 13, 2026
188f7d2
docs: add mermaid diagrams (#469)
maxkrivachev-web Mar 13, 2026
74151cf
Remove singleton pattern entry from README
faif Mar 13, 2026
3d4d5bb
Fix failed tests, linter errors, and restructure (#477)
faif Jul 24, 2026
95b74bc
Bump pipx from 1.16.2 to 1.16.5 (#480)
dependabot[bot] Jul 30, 2026
14d20c8
Bump actions/checkout from 6 to 7 (#479)
dependabot[bot] Jul 30, 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
14 changes: 14 additions & 0 deletions .codespellignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
__pycache__
*.pyc
.idea
*.egg-info/
.tox/
env/
venv/
.env
.venv
.vscode/
.python-version
.coverage
build/
dist/
6 changes: 0 additions & 6 deletions .coveragerc

This file was deleted.

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: pip
directory: /
schedule:
interval: weekly
versioning-strategy: increase-if-necessary

- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
78 changes: 59 additions & 19 deletions .github/workflows/lint_python.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,62 @@
name: lint_python
on: [pull_request, push]
name: Python CI

on:
push:
pull_request:

permissions:
contents: read

concurrency:
group: python-ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint_python:
runs-on: ubuntu-latest
quality:
name: Lint, type-check, and test
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- uses: actions/checkout@v7

- uses: actions/setup-python@v6
with:
python-version: 3.x
- run: pip install --upgrade pip
- run: pip install black codespell flake8 isort mypy pytest pyupgrade tox
- run: black --check .
- run: codespell --quiet-level=2 # --ignore-words-list="" --skip=""
- run: flake8 . --count --show-source --statistics
- run: isort --profile black .
- run: tox
- run: pip install -e .
- run: mypy --ignore-missing-imports . || true
- run: pytest .
- run: pytest --doctest-modules . || true
- run: shopt -s globstar && pyupgrade --py37-plus **/*.py
python-version: "3.12"
cache: pip
cache-dependency-path: Pipfile.lock

- name: Run quality checks
run: ./lint.sh

tests:
name: Test on Python ${{ matrix.python-version }}
runs-on: ubuntu-24.04
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
steps:
- uses: actions/checkout@v7

- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: Pipfile.lock

- name: Install locked dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pipenv
pipenv requirements --dev > "${RUNNER_TEMP}/requirements-dev.txt"
python -m pip install -r "${RUNNER_TEMP}/requirements-dev.txt"
python -m pip install --no-build-isolation --no-deps -e .

- name: Run tests
run: python -m pytest tests patterns
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@ venv/
.vscode/
.python-version
.coverage
.project
.pydevproject
/.pytest_cache/
build/
dist/
18 changes: 10 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
os: linux
dist: focal
dist: noble
language: python

jobs:
include:
- python: "3.8"
env: TOXENV=py38
- python: "3.9"
env: TOXENV=py39
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"

cache:
- pip

install:
- pip install codecov tox
- pip install pipenv
- pipenv sync --dev --system
- pip install --no-build-isolation --no-deps -e .

script:
- tox
Expand Down
23 changes: 6 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# Usage (line =black line length, path = action path, ignore= exclude folders)
# ------
# make pylinter [make pylinter line=88 path=.]
# make pyupgrade
# make lock

path := .
line := 88
Expand All @@ -25,22 +25,11 @@ ifeq ("$(VIRTUAL_ENV)","")
exit 1
endif

.PHONY: pyupgrade
pyupgrade: checkvenv
# checks if pip-tools is installed
ifeq ("$(wildcard venv/bin/pip-compile)","")
@echo "Installing Pip-tools..."
@pip install pip-tools
endif

ifeq ("$(wildcard venv/bin/pip-sync)","")
@echo "Installing Pip-tools..."
@pip install pip-tools
endif

# pip-tools
# @pip-compile --upgrade requirements-dev.txt
@pip-sync requirements-dev.txt
.PHONY: lock
lock: checkvenv
@command -v pipenv >/dev/null || python -m pip install pipenv
@pipenv lock --dev
@pipenv sync --dev


.PHONY: pylinter
Expand Down
21 changes: 21 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[packages]

[dev-packages]
black = ">=25.1.0"
build = ">=1.2.2"
codecov = "*"
codespell = "*"
flake8 = ">=7.1.0"
isort = ">=5.7.0"
mypy = "*"
pipx = ">=1.7.1"
pyupgrade = "*"
pytest = ">=6.2.0"
pytest-cov = ">=2.11.0"
pytest-randomly = ">=3.1.0"
tox = ">=4.25.0"
Loading