Skip to content

Commit 0bd699a

Browse files
#67: drop Python 3.8, add Python 3.13. (#68)
* #67: drop Python 3.8, add Python 3.13. * apply cruft updates. * adjust filepath handling (h/t @bandophahita). * use underscore for unused variable. * copyright dates updated * updating lockfile * updating lockfile --------- Co-authored-by: Marcel Wilson <trenchrats@gmail.com>
1 parent 120409b commit 0bd699a

63 files changed

Lines changed: 1726 additions & 1230 deletions

Some content is hidden

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

.cruft.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"template": "https://github.com/ScreenPyHQ/cookiecutter_screenpy/",
3-
"commit": "96416427ba79a718959084081e3b5d6a8860336a",
3+
"commit": "6a7488b4183f615ff319dbfdac38a3a1354953c7",
44
"checkout": null,
55
"context": {
66
"cookiecutter": {
@@ -12,7 +12,7 @@
1212
"author_email": "perry.goy@gmail.com",
1313
"github_username": "ScreenPyHQ",
1414
"_template": "https://github.com/ScreenPyHQ/cookiecutter_screenpy/",
15-
"_commit": "96416427ba79a718959084081e3b5d6a8860336a"
15+
"_commit": "6a7488b4183f615ff319dbfdac38a3a1354953c7"
1616
}
1717
},
1818
"directory": null

.github/workflows/cruft.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
python-version: ["3.12"]
17+
python-version: ["3.13"]
1818
os: [ubuntu-latest]
1919

2020
steps:

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
17+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
1818
os: [ubuntu-latest]
1919

2020
steps:

.github/workflows/poetry.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ jobs:
1616
max-parallel: 9
1717
fail-fast: false
1818
matrix:
19-
python-version: ["3.12"]
19+
python-version: ["3.13"]
2020
os: [ubuntu-latest]
21-
poetry-version: ["1.6.1"]
21+
poetry-version: ["2.1.3"]
2222

2323
steps:
2424
- uses: actions/checkout@v4
@@ -32,8 +32,5 @@ jobs:
3232
with:
3333
poetry-version: ${{ matrix.poetry-version }}
3434

35-
- name: Check toml structure
36-
run: poetry check
37-
38-
- name: Check lock file
39-
run: poetry lock --check
35+
- name: Check lock file is consistent with pyproject
36+
run: poetry check --lock

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
max-parallel: 9
1717
fail-fast: false
1818
matrix:
19-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
19+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
2020
os: [ubuntu-latest]
2121

2222
steps:

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022-2025 Perry Goy
3+
Copyright (c) 2022-2026 Perry Goy
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,15 @@ mypy:
3030

3131
.PHONY: black-check black-fix ruff-check ruff-fix mypy
3232

33+
lint: black-check ruff-check
34+
35+
lint-fix: black-fix ruff-fix
36+
3337
pre-check-in: black-check ruff-check mypy
3438

3539
pre-check-in-fix: black-fix ruff-fix mypy
3640

37-
.PHONY: pre-check-in pre-check-in-fix
41+
.PHONY: pre-check-in pre-check-in-fix lint lint-fix
3842

3943
# requires poetry-plugin-export
4044
requirements:

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ You want to contribute? Great! Here are the things you should do before submitti
7272
1. `pip install -e .[dev]`
7373
1. Optional (poetry users):
7474
1. `poetry install --extras dev`
75-
1. Run `pre-commit install` once.
7675
1. Run `tox` to perform tests frequently.
7776
1. Create pull-request from your branch.
7877

poetry.lock

Lines changed: 1320 additions & 897 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 30 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ build-backend = "poetry.core.masonry.api"
1919

2020

2121
[tool.black]
22-
target-version = ['py312']
22+
target-version = ['py313']
2323
extend-exclude = '''
2424
# A regex preceded with ^/ will apply only to files and directories
2525
# in the root of the project.
@@ -36,7 +36,7 @@ extend-exclude = '''
3636

3737

3838
[tool.ruff]
39-
target-version = "py38" # minimum supported version
39+
target-version = "py39" # minimum supported version
4040
line-length = 88 # same as Black.
4141
output-format = "concise"
4242
extend-exclude = [
@@ -45,57 +45,25 @@ extend-exclude = [
4545

4646
[tool.ruff.lint]
4747
select = [
48-
"A", # flake8-builtins
49-
"ANN", # flake8-annotations
50-
"ARG", # flake8-unused-arguments
51-
"B", # flake8-bugbear
52-
"BLE", # flake8-blind-except
53-
"C4", # flake8-comprehensions
54-
"D", # pydocstyle
55-
"E", # pycodestyle error
56-
"EM", # flake8-errmsg
57-
"ERA", # eradicate
58-
"F", # Pyflakes
59-
"FA", # flake8-future-annotations
60-
"FBT", # flake8-boolean-trap
61-
"FIX", # flake8-fixme
62-
"FLY", # flynt
63-
"I", # isort
64-
"ICN", # flake8-import-conventions
65-
"ISC", # flake8-implicit-str-concat
66-
"PGH", # pygrep-hooks
67-
"PIE", # flake8-pie
68-
"PL", # pylint
69-
"PT", # flake8-pytest-style
70-
"Q", # flake8-quotes
71-
"RET", # flake8-return
72-
"RSE", # flake8-raise
73-
"RUF", # ruff specific
74-
"SIM", # flake8-simplify
75-
"T10", # flake8-debugger
76-
"T20", # flake8-print
77-
"TCH", # flake8-type-checking
78-
"TRY", # tryceratops
79-
"UP", # python upgrade
80-
"W", # pycodestyle warning
81-
"YTT", # flake8-2020
82-
83-
# we would like these someday, but not yet
84-
# "FURB", # refurb
48+
"ALL", # let's get all the new hotness and ignore as we need!
8549
]
8650
ignore = [
87-
"D107", # missing __init__ docstring, we do that in the class docstring.
88-
"D203", # one blank line before class docstring, no thanks!
89-
"D212", # multi line summary first line, we want a one line summary.
51+
"COM812", # we prefer black's logic for trailing commas
52+
"D107", # missing __init__ docstring, we do that in the class docstring.
53+
"D203", # one blank line before class docstring, no thanks!
54+
"D212", # multi line summary first line, we want a one line summary.
55+
"E501", # black handles our line limits.
56+
"N818", # we like our conventions with readable error classes.
57+
"S608", # we will not have SQL injection concerns. :P
9058
]
9159

9260
extend-safe-fixes = [
93-
"EM101", "EM102",
94-
"TCH001", "TCH002", "TCH003", "TCH004",
9561
"C419",
9662
"D200", "D205", "D415",
63+
"EM101", "EM102",
9764
"PT003", "PT006", "PT018",
9865
"RET504",
66+
"TCH001", "TCH002", "TCH003", "TCH004",
9967
"UP006", "UP007",
10068
"W291",
10169
]
@@ -118,19 +86,26 @@ split-on-trailing-comma = false
11886

11987
[tool.ruff.lint.per-file-ignores]
12088
"tests/**" = [
121-
"D", # we don't need public-API-polished docstrings in tests.
122-
"FBT", # using a boolean as a test object is useful!
123-
"PLR", # likewise using specific numbers and strings in tests.
124-
"A", # import __doc__ is shadowing python builtin
89+
"A", # import __doc__ is shadowing python builtin
90+
"D", # we don't need public-API-polished docstrings in tests.
91+
"FBT", # using a boolean as a test object is useful!
92+
"N802", # we are intentional about our capitalization!
93+
"N803", # we like our standards for variable names in tests.
94+
"N806", # we are intentional about our capitalization!
95+
"PLR", # using specific numbers and strings in tests is useful!
96+
"PYI034", # our Fake-ables need to be... weird.
97+
"S101", # we want to assert in tests!
98+
"SLF001", # we need to access private methods in tests.
99+
]
100+
"__version__.py" = [
101+
"D", # we don't need public-API-polished docstrings in version.
125102
]
126-
"__version__.py" = ["D"]
127103

128104

129105
################################################################################
130106
# END OF BOILERPLATE ScreenPyHQ CONFIGURATIONS #
131107
################################################################################
132-
[tool.ruff.lint.flake8-builtins]
133-
builtins-allowed-modules = ["select"]
108+
134109

135110
[tool.poetry]
136111
name = "screenpy_selenium"
@@ -145,11 +120,11 @@ readme = "README.md"
145120
classifiers = [
146121
"Operating System :: OS Independent",
147122
"Programming Language :: Python :: 3 :: Only",
148-
"Programming Language :: Python :: 3.8",
149123
"Programming Language :: Python :: 3.9",
150124
"Programming Language :: Python :: 3.10",
151125
"Programming Language :: Python :: 3.11",
152126
"Programming Language :: Python :: 3.12",
127+
"Programming Language :: Python :: 3.13",
153128
"Development Status :: 5 - Production/Stable",
154129
"Intended Audience :: Developers",
155130
"Topic :: Software Development :: Quality Assurance",
@@ -168,20 +143,19 @@ classifiers = [
168143
# so we dont have two different sets of package versions to update.
169144

170145
[tool.poetry.dependencies]
171-
python = "^3.8"
146+
python = "^3.9"
172147

173148
screenpy = ">=4.0.2"
174149
screenpy_pyotp = ">=4.0.0"
175150
selenium = ">=4.1.0"
176151
pydantic = "*"
177152
pydantic-settings = "*"
178-
importlib_metadata = {version = "*", python = "3.8.*"}
179153

180154
# convenience packages for development
181-
black = {version = "24.8", optional = true}
155+
black = {version = "*", optional = true}
182156
coverage = {version = "*", optional = true}
183157
cruft = {version = "*", optional = true}
184-
mypy = {version = "1.14.1", optional = true}
158+
mypy = {version = "*", optional = true}
185159
pre-commit = {version = "*", optional = true}
186160
pytest = {version = "*", optional = true}
187161
pytest-mock = {version = "*", optional = true}

0 commit comments

Comments
 (0)