Upgrade Python to version 3.11 (Faster CPython) (#4256)

* Upgrade Python to version 3.11 (Faster CPython)

* Update pyupgrade config for Python 3.11

* Update tox env to Python 3.11

* Update to latest Python 3.11.3

* Add a note about lack of support in PythonAnywhere

* Rephrase note

* Fix casing

---------

Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
This commit is contained in:
Jelmer 2023-04-15 12:42:33 +02:00 committed by GitHub
parent 2ad3858e26
commit 42c30dafcb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 30 additions and 30 deletions

View File

@ -25,7 +25,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
cache: pip
- name: Install dependencies
run: pip install -r requirements.txt
@ -56,7 +56,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
cache: pip
- name: Install dependencies
run: pip install -r requirements.txt
@ -98,7 +98,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
cache: pip
cache-dependency-path: |
requirements.txt

View File

@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip

View File

@ -24,7 +24,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
- name: Install pre-commit
run: pip install pre-commit

View File

@ -19,7 +19,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip

View File

@ -22,7 +22,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip

View File

@ -12,7 +12,7 @@ repos:
rev: v3.3.1
hooks:
- id: pyupgrade
args: [--py310-plus]
args: [--py311-plus]
exclude: hooks/
- repo: https://github.com/psf/black

View File

@ -33,9 +33,9 @@ To run all tests using various versions of python in virtualenvs defined in tox.
It is possible to test with a specific version of python. To do this, the command
is:
$ tox -e py310
$ tox -e py311
This will run pytest with the python3.10 interpreter, for example.
This will run pytest with the python3.11 interpreter, for example.
To run a particular test with tox for against your current Python version:

View File

@ -20,7 +20,7 @@ production-ready Django projects quickly.
## Features
- For Django 4.1
- Works with Python 3.10
- Works with Python 3.11
- Renders Django projects with 100% starting test coverage
- Twitter [Bootstrap](https://github.com/twbs/bootstrap) v5
- [12-Factor](http://12factor.net/) based settings via [django-environ](https://github.com/joke2k/django-environ)

View File

@ -37,6 +37,7 @@ Make sure your project is fully committed and pushed up to Bitbucket or Github o
mkvirtualenv --python=/usr/bin/python3.10 my-project-name
pip install -r requirements/production.txt # may take a few minutes
.. note:: We're creating the virtualenv using Python 3.10 (``--python=/usr/bin/python3.10```), although Cookiecutter Django generates a project for Python 3.11. This is because, at time of writing, PythonAnywhere only supports Python 3.10. It shouldn't be a problem, but if is, you may try changing the Python version to 3.11 and see if it works. If it does, please let us know, or even better, submit a pull request to update this section.
Setting environment variables in the console
--------------------------------------------

View File

@ -9,7 +9,7 @@ Setting Up Development Environment
Make sure to have the following on your host:
* Python 3.10
* Python 3.11
* PostgreSQL_.
* Redis_, if using Celery
* Cookiecutter_
@ -18,7 +18,7 @@ First things first.
#. Create a virtualenv: ::
$ python3.10 -m venv <virtual env path>
$ python3.11 -m venv <virtual env path>
#. Activate the virtualenv you have just created: ::

View File

@ -44,7 +44,7 @@ if "{{ cookiecutter.use_docker }}".lower() == "n":
if python_major_version == 2:
print(
WARNING + "You're running cookiecutter under Python 2, but the generated "
"project requires Python 3.10+. Do you want to proceed (y/n)? " + TERMINATOR
"project requires Python 3.11+. Do you want to proceed (y/n)? " + TERMINATOR
)
yes_options, no_options = frozenset(["y"]), frozenset(["n"])
while True:

View File

@ -33,7 +33,7 @@ setup(
"License :: OSI Approved :: BSD License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Software Development",
],

View File

@ -1,6 +1,6 @@
[tox]
skipsdist = true
envlist = py310,black-template
envlist = py311,black-template
[testenv]
deps = -rrequirements.txt

View File

@ -29,7 +29,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
{%- if cookiecutter.open_source_license != 'Not open source' %}
# Consider using pre-commit.ci for open source project
@ -86,7 +86,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
cache: pip
cache-dependency-path: |
requirements/base.txt

View File

@ -13,7 +13,7 @@ variables:
precommit:
stage: lint
image: python:3.10
image: python:3.11
variables:
PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
cache:
@ -40,7 +40,7 @@ pytest:
script:
- docker-compose -f local.yml run django pytest
{%- else %}
image: python:3.10
image: python:3.11
tags:
- python
services:

View File

@ -13,7 +13,7 @@ repos:
rev: v3.3.1
hooks:
- id: pyupgrade
args: [--py310-plus]
args: [--py311-plus]
- repo: https://github.com/psf/black
rev: 23.3.0

View File

@ -8,7 +8,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.10"
python: "3.11"
# Build documentation in the docs/ directory with Sphinx
sphinx:

View File

@ -2,7 +2,7 @@ dist: focal
language: python
python:
- "3.10"
- "3.11"
services:
- {% if cookiecutter.use_docker == 'y' %}docker{% else %}postgresql{% endif %}
@ -37,7 +37,7 @@ jobs:
- sudo apt-get install -qq libsqlite3-dev libxml2 libxml2-dev libssl-dev libbz2-dev wget curl llvm
language: python
python:
- "3.10"
- "3.11"
install:
- pip install -r requirements/local.txt
script:

View File

@ -1,5 +1,5 @@
# define an alias for the specfic python version used in this file.
FROM python:3.10.10-slim-bullseye as python
FROM python:3.11.3-slim-bullseye as python
# Python build stage
FROM python as python-build-stage

View File

@ -1,5 +1,5 @@
# define an alias for the specfic python version used in this file.
FROM python:3.10.10-slim-bullseye as python
FROM python:3.11.3-slim-bullseye as python
# Python build stage

View File

@ -24,9 +24,8 @@ ENV DJANGO_AZURE_ACCOUNT_NAME=${DJANGO_AZURE_ACCOUNT_NAME}
RUN npm run build
{%- endif %}
# define an alias for the specfic python version used in this file.
FROM python:3.10.10-slim-bullseye as python
FROM python:3.11.3-slim-bullseye as python
# Python build stage
FROM python as python-build-stage

View File

@ -1 +1 @@
python-3.10.8
python-3.11.3

View File

@ -18,7 +18,7 @@ force_grid_wrap = 0
use_parentheses = true
[mypy]
python_version = 3.10
python_version = 3.11
check_untyped_defs = True
ignore_missing_imports = True
warn_unused_ignores = True