@@ -98,15 +98,15 @@ python -VV
9898py -VV
9999```
100100
101- Both of these commands should display the latest Python version, 3.10 .
101+ Both of these commands should display the latest Python version, 3.12 .
102102
103103For local testing with multiple Python versions,
104- repeat these steps for the latest bugfix releases of Python 3.7 +,
104+ repeat these steps for the latest bugfix releases of Python 3.9 +,
105105with the following changes:
106106
107107- Do _ not_ enable the option to add Python to the ` PATH ` environment variable.
108108- ` py -VV ` and ` python -VV ` should still display the version of the latest stable release.
109- - ` py -X.Y -VV ` (e.g. ` py -3.7 -VV ` ) should display the exact version you just installed.
109+ - ` py -X.Y -VV ` (e.g. ` py -3.9 -VV ` ) should display the exact version you just installed.
110110
111111Note that binary installers are not provided for security releases.
112112
@@ -137,26 +137,26 @@ Install the Python build dependencies for your platform,
137137using one of the commands listed in the [ official instructions] [ pyenv wiki ] .
138138
139139Install the latest point release of every supported Python version.
140- This project template supports Python 3.7 , 3.8 , 3.9 , and 3.10 .
140+ This project template supports Python 3.9 , 3.10 , 3.11 , and 3.12 .
141141
142142``` console
143- $ pyenv install 3.7.12
144- $ pyenv install 3.8.12
145- $ pyenv install 3.9.10
146- $ pyenv install 3.10 .2
143+ $ pyenv install 3.9.13
144+ $ pyenv install 3.10.11
145+ $ pyenv install 3.11.8
146+ $ pyenv install 3.12 .2
147147```
148148
149149After creating your project (see [ below] ( creating-a-project ) ),
150150you can make these Python versions accessible in the project directory,
151151using the following command:
152152
153153``` console
154- $ pyenv local 3.10 .2 3.9.10 3.8.12 3.7.12
154+ $ pyenv local 3.12 .2 3.11.8 3.10.11 3.9.13
155155```
156156
157157The first version listed is the one used when you type plain ` python ` .
158158Every version can be used by invoking ` python<major.minor> ` .
159- For example, use ` python3.7 ` to invoke Python 3.7 .
159+ For example, use ` python3.9 ` to invoke Python 3.9 .
160160
161161### Requirements
162162
@@ -182,15 +182,10 @@ Install [Cookiecutter] using pipx:
182182$ pipx install cookiecutter
183183```
184184
185- Install [ Poetry] by downloading and running [ install-poetry.py] :
186-
187- ``` console
188- $ python install-poetry.py
189- ```
190-
191- Install [ Nox] and [ nox-poetry] using pipx:
185+ Install [ Poetry] , [ Nox] , and [ nox-poetry] using pipx:
192186
193187``` console
188+ $ pipx install poetry
194189$ pipx install nox
195190$ pipx inject nox nox-poetry
196191```
@@ -981,14 +976,14 @@ for every Python version supported by your project,
981976and easily switch between them:
982977
983978``` console
984- $ poetry env use 3.7
985- $ poetry env use 3.8
986979$ poetry env use 3.9
987980$ poetry env use 3.10
981+ $ poetry env use 3.11
982+ $ poetry env use 3.12
988983```
989984
990985Only one Poetry environment can be active at any time.
991- Note that ` 3.10 ` comes last,
986+ Note that ` 3.12 ` comes last,
992987to ensure that the current Python release is the active environment.
993988Install your package with ` poetry install ` into each environment after creating it.
994989
@@ -1161,7 +1156,7 @@ For example, the following may be more practical during development
11611156(this will only run tests and type checks, on the current Python release):
11621157
11631158``` console
1164- $ nox -p 3.10 -rs tests mypy
1159+ $ nox -p 3.12 -rs tests mypy
11651160```
11661161
11671162Many sessions accept additional options after ` -- ` separator.
@@ -1187,39 +1182,39 @@ The following table gives an overview of the available Nox sessions:
11871182 - Default
11881183- - [ coverage] ( the-coverage-session )
11891184 - Report coverage with [ Coverage.py]
1190- - ` 3.10 `
1185+ - ` 3.12 `
11911186 - (✓)
11921187- - [ docs] ( the-docs-session )
11931188 - Build and serve [ Sphinx] documentation
1194- - ` 3.10 `
1189+ - ` 3.12 `
11951190 -
11961191- - [ docs-build] ( the-docs-build-session )
11971192 - Build [ Sphinx] documentation
1198- - ` 3.10 `
1193+ - ` 3.12 `
11991194 - ✓
12001195- - [ mypy] ( the-mypy-session )
12011196 - Type-check with [ mypy]
1202- - ` 3.7 ` … ` 3.10 `
1197+ - ` 3.9 ` … ` 3.12 `
12031198 - ✓
12041199- - [ pre-commit] ( the-pre-commit-session )
12051200 - Lint with [ pre-commit]
1206- - ` 3.10 `
1201+ - ` 3.12 `
12071202 - ✓
12081203- - [ safety] ( the-safety-session )
12091204 - Scan dependencies with [ Safety]
1210- - ` 3.10 `
1205+ - ` 3.12 `
12111206 - ✓
12121207- - [ tests] ( the-tests-session )
12131208 - Run tests with [ pytest]
1214- - ` 3.7 ` … ` 3.10 `
1209+ - ` 3.9 ` … ` 3.12 `
12151210 - ✓
12161211- - [ typeguard] ( the-typeguard-session )
12171212 - Type-check with [ Typeguard]
1218- - ` 3.10 `
1213+ - ` 3.12 `
12191214 - ✓
12201215- - [ xdoctest] ( the-xdoctest-session )
12211216 - Run examples with [ xdoctest]
1222- - ` 3.7 ` … ` 3.10 `
1217+ - ` 3.9 ` … ` 3.12 `
12231218 - ✓
12241219
12251220:::
@@ -1279,7 +1274,7 @@ For example, the following command runs mypy
12791274using the current stable release of Python:
12801275
12811276``` console
1282- $ nox --session=mypy --python=3.10
1277+ $ nox --session=mypy --python=3.12
12831278```
12841279
12851280Use the separator ` -- ` to pass additional options and arguments to ` mypy ` .
@@ -1353,7 +1348,7 @@ For example, the following command runs the test suite
13531348using the current stable release of Python:
13541349
13551350``` console
1356- $ nox --session=tests --python=3.10
1351+ $ nox --session=tests --python=3.12
13571352```
13581353
13591354Use the separator ` -- ` to pass additional options to ` pytest ` .
@@ -1480,7 +1475,7 @@ For example, the following command runs the examples
14801475using the current stable release of Python:
14811476
14821477``` console
1483- $ nox --session=xdoctest --python=3.10
1478+ $ nox --session=xdoctest --python=3.12
14841479```
14851480
14861481By default, the Nox session uses the ` all ` subcommand to run all examples.
@@ -2274,28 +2269,28 @@ as shown in the table below:
22742269 - Python versions
22752270- - [pre-commit](the-pre-commit-session)
22762271 - Ubuntu
2277- - 3.10
2272+ - 3.12
22782273- - [safety](the-safety-session)
22792274 - Ubuntu
2280- - 3.10
2275+ - 3.12
22812276- - [mypy](the-mypy-session)
22822277 - Ubuntu
2283- - 3.10 , 3.9 , 3.8 , 3.7
2278+ - 3.12 , 3.11 , 3.10 , 3.9
22842279- - [tests](the-tests-session)
22852280 - Ubuntu
2286- - 3.10 , 3.9 , 3.8 , 3.7
2281+ - 3.12 , 3.11 , 3.10 , 3.9
22872282- - [tests](the-tests-session)
22882283 - Windows
2289- - 3.10
2284+ - 3.12
22902285- - [tests](the-tests-session)
22912286 - macOS
2292- - 3.10
2287+ - 3.12
22932288- - [coverage](the-coverage-session)
22942289 - Ubuntu
2295- - 3.10
2290+ - 3.12
22962291- - [docs-build](the-docs-build-session)
22972292 - Ubuntu
2298- - 3.10
2293+ - 3.12
22992294
23002295:: :
23012296
@@ -2625,7 +2620,7 @@ You can also read the articles on [this blog][hypermodern python blog].
26252620[flake8-bandit] : https://github.com/tylerwince/flake8-bandit
26262621[flake8-bugbear codes] : https://github.com/PyCQA/flake8-bugbear#list-of-warnings
26272622[flake8-bugbear] : https://github.com/PyCQA/flake8-bugbear
2628- [flake8-docstrings] : https://gitlab .com/pycqa/flake8-docstrings
2623+ [flake8-docstrings] : https://github .com/pycqa/flake8-docstrings
26292624[flake8-rst-docstrings codes] : https://github.com/peterjc/flake8-rst-docstrings#flake8-validation-codes
26302625[flake8-rst-docstrings] : https://github.com/peterjc/flake8-rst-docstrings
26312626[flake8] : http://flake8.pycqa.org
@@ -2653,7 +2648,6 @@ You can also read the articles on [this blog][hypermodern python blog].
26532648[hypermodern python cookiecutter] : https://github.com/cjolowicz/cookiecutter-hypermodern-python
26542649[hypermodern python] : https://medium.com/@cjolowicz/hypermodern-python-d44485d9d769
26552650[import hook] : https://docs.python.org/3/reference/import.html#import-hooks
2656- [install-poetry.py] : https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py
26572651[isort black profile] : https://pycqa.github.io/isort/docs/configuration/black_compatibility.html
26582652[isort force_single_line] : https://pycqa.github.io/isort/docs/configuration/options.html#force-single-line
26592653[isort lines_after_imports] : https://pycqa.github.io/isort/docs/configuration/options.html#lines-after-imports
@@ -2672,10 +2666,10 @@ You can also read the articles on [this blog][hypermodern python blog].
26722666[nox] : https://nox.thea.codes/
26732667[package metadata] : https://packaging.python.org/en/latest/specifications/core-metadata/
26742668[pep 257] : http://www.python.org/dev/peps/pep-0257/
2675- [pep 440] : https://www .python.org/dev/peps /pep-0440/
2676- [pep 517] : https://www .python.org/dev/peps /pep-0517/
2677- [pep 518] : https://www .python.org/dev/peps /pep-0518/
2678- [pep 561] : https://www .python.org/dev/peps /pep-0561/
2669+ [pep 440] : https://peps .python.org/pep-0440/
2670+ [pep 517] : https://peps .python.org/pep-0517/
2671+ [pep 518] : https://peps .python.org/pep-0518/
2672+ [pep 561] : https://peps .python.org/pep-0561/
26792673[pep 8] : http://www.python.org/dev/peps/pep-0008/
26802674[pep8-naming codes] : https://github.com/pycqa/pep8-naming#pep-8-naming-conventions
26812675[pep8-naming] : https://github.com/pycqa/pep8-naming
@@ -2711,7 +2705,7 @@ You can also read the articles on [this blog][hypermodern python blog].
27112705[pypa/gh-action-pypi-publish] : https://github.com/pypa/gh-action-pypi-publish
27122706[pypi] : https://pypi.org/
27132707[pyproject.toml] : https://python-poetry.org/docs/pyproject/
2714- [pytest layout] : https://docs.pytest.org/en/latest/explanation/goodpractices.html#choosing-a-test-layout-import-rules
2708+ [pytest layout] : https://docs.pytest.org/en/latest/explanation/goodpractices.html#choosing-a-test-layout
27152709[pytest] : https://docs.pytest.org/en/latest/
27162710[python build] : https://python-poetry.org/docs/cli/#build
27172711[python package] : https://docs.python.org/3/tutorial/modules.html#packages
@@ -2746,6 +2740,6 @@ You can also read the articles on [this blog][hypermodern python blog].
27462740[versions and constraints] : https://python-poetry.org/docs/dependency-specification/
27472741[virtual environment] : https://docs.python.org/3/tutorial/venv.html
27482742[virtualenv] : https://virtualenv.pypa.io/
2749- [wheel] : https://www .python.org/dev/peps /pep-0427/
2743+ [wheel] : https://peps .python.org/pep-0427/
27502744[xdoctest] : https://github.com/Erotemic/xdoctest
27512745[yaml] : https://yaml.org/
0 commit comments