@@ -19,7 +19,7 @@ build-backend = "poetry.core.masonry.api"
1919
2020
2121[tool .black ]
22- target-version = [' py312 ' ]
22+ target-version = [' py313 ' ]
2323extend-exclude = '''
2424# A regex preceded with ^/ will apply only to files and directories
2525# in the root of the project.
@@ -36,68 +36,34 @@ extend-exclude = '''
3636
3737
3838[tool .ruff ]
39- target-version = " py38 " # minimum supported version
39+ target-version = " py39 " # minimum supported version
4040line-length = 88 # same as Black.
41+ output-format = " concise"
4142extend-exclude = [
4243 " docs" ,
4344]
4445
4546[tool .ruff .lint ]
4647select = [
47- " A" , # flake8-builtins
48- " ANN" , # flake8-annotations
49- " ARG" , # flake8-unused-arguments
50- " B" , # flake8-bugbear
51- " BLE" , # flake8-blind-except
52- " C4" , # flake8-comprehensions
53- " D" , # pydocstyle
54- " E" , # pycodestyle error
55- " EM" , # flake8-errmsg
56- " ERA" , # eradicate
57- " F" , # Pyflakes
58- " FA" , # flake8-future-annotations
59- " FBT" , # flake8-boolean-trap
60- " FIX" , # flake8-fixme
61- " FLY" , # flynt
62- " I" , # isort
63- " ICN" , # flake8-import-conventions
64- " ISC" , # flake8-implicit-str-concat
65- " PGH" , # pygrep-hooks
66- " PIE" , # flake8-pie
67- " PL" , # pylint
68- " PT" , # flake8-pytest-style
69- " Q" , # flake8-quotes
70- " RET" , # flake8-return
71- " RSE" , # flake8-raise
72- " RUF" , # ruff specific
73- " SIM" , # flake8-simplify
74- " T10" , # flake8-debugger
75- " T20" , # flake8-print
76- " TCH" , # flake8-type-checking
77- " TRY" , # tryceratops
78- " UP" , # python upgrade
79- " W" , # pycodestyle warning
80- " YTT" , # flake8-2020
81-
82- # we would like these someday, but not yet
83- # "FURB", # refurb
48+ " ALL" , # let's get all the new hotness and ignore as we need!
8449]
8550ignore = [
86- " D107" , # missing __init__ docstring, we do that in the class docstring.
87- " D203" , # one blank line before class docstring, no thanks!
88- " D212" , # multi line summary first line, we want a one line summary.
89- " ANN101 " , # missing self annotation, we only annotate self when we return it .
90- " ANN102 " , # missing cls annotation, we only annotate cls when we return it .
51+ " D107" , # missing __init__ docstring, we do that in the class docstring.
52+ " D203" , # one blank line before class docstring, no thanks!
53+ " D212" , # multi line summary first line, we want a one line summary.
54+ " E501 " , # black handles our line limits .
55+ " N818 " , # we like our conventions with readable error classes .
9156]
9257
9358extend-safe-fixes = [
94- " EM101" , " EM102" ,
95- " TCH001" , " TCH002" , " TCH003" , " TCH004" ,
9659 " C419" ,
9760 " D200" , " D205" , " D415" ,
61+ " EM101" , " EM102" ,
9862 " PT003" , " PT006" , " PT018" ,
9963 " RET504" ,
64+ " TCH001" , " TCH002" , " TCH003" , " TCH004" ,
10065 " UP006" , " UP007" ,
66+ " W291" ,
10167]
10268
10369[tool .ruff .lint .flake8-pytest-style ]
@@ -118,11 +84,20 @@ split-on-trailing-comma = false
11884
11985[tool .ruff .lint .per-file-ignores ]
12086"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.
87+ " A" , # import __doc__ is shadowing python builtin
88+ " D" , # we don't need public-API-polished docstrings in tests.
89+ " FBT" , # using a boolean as a test object is useful!
90+ " N802" , # we are intentional about our capitalization!
91+ " N803" , # we like our standards for variable names in tests.
92+ " N806" , # we are intentional about our capitalization!
93+ " PLR" , # using specific numbers and strings in tests is useful!
94+ " PYI034" , # our Fake-ables need to be... weird.
95+ " S101" , # we want to assert in tests!
96+ " SLF001" , # we need to access private methods in tests.
12497]
125- "__version__.py" = [" D" ]
98+ "__version__.py" = [
99+ " D" , # we don't need public-API-polished docstrings in version.
100+ ]
126101"*.pyi" = [
127102 " PLR0913" , # it's not our fault they have too many parameters!
128103]
@@ -132,6 +107,7 @@ split-on-trailing-comma = false
132107# END OF BOILERPLATE ScreenPyHQ CONFIGURATIONS #
133108# ###############################################################################
134109
110+
135111[tool .poetry ]
136112name = " screenpy_playwright"
137113version = " 0.0.6"
@@ -145,11 +121,11 @@ readme = "README.md"
145121classifiers = [
146122 " Operating System :: OS Independent" ,
147123 " Programming Language :: Python :: 3 :: Only" ,
148- " Programming Language :: Python :: 3.8" ,
149124 " Programming Language :: Python :: 3.9" ,
150125 " Programming Language :: Python :: 3.10" ,
151126 " Programming Language :: Python :: 3.11" ,
152127 " Programming Language :: Python :: 3.12" ,
128+ " Programming Language :: Python :: 3.13" ,
153129 " Development Status :: 5 - Production/Stable" ,
154130 " Intended Audience :: Developers" ,
155131 " Topic :: Software Development :: Quality Assurance" ,
@@ -168,11 +144,11 @@ classifiers = [
168144# so we dont have two different sets of package versions to update.
169145
170146[tool .poetry .dependencies ]
171- python = " ^3.8 "
147+ python = " ^3.9 "
172148
173149screenpy = " >=4.0.2"
174150playwright = " >=1.39.0"
175- importlib_metadata = {version = " *" , python = " 3.8 .*" }
151+ importlib_metadata = {version = " *" , python = " 3.9 .*" }
176152
177153# convenience packages for development
178154black = {version = " *" , optional = true }
0 commit comments