15.2.141. camcops_server.cc_modules.cc_pythonversion¶
camcops_server/cc_modules/cc_pythonversion.py
Copyright (C) 2012, University of Cambridge, Department of Psychiatry. Created by Rudolf Cardinal (rnc1001@cam.ac.uk).
This file is part of CamCOPS.
CamCOPS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
CamCOPS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.
Single place to determine the Python version required.
Python v3.6 was required as of CamCOPS v2.3.1, 2019. That enables:
f-strings (v3.6)
Python v3.7 was required as of CamCOPS v2.4.12, 2021. That enables:
dataclasses (v3.7)
Python 3.8 was required as of CamCOPS v2.4.15, 2022. That enables:
assignment expressions, the “walrus” operator,
:=
(v3.8)positional-only parameters,
/
(v3.8)f-string
=
syntax to debug a variable (v3.8)
Not yet available:
new dictionary merge/update syntax (v3.9)
string prefix/suffix removal functions (v3.9)
use of generics like
list
(not justList
) for type hinting (v3.9)match/case
statement, like C++’sswitch
(v3.10)|
as well asUnion
for type hints (v3.10)explicit
typing.TypeAlias
annotation (v3.10)
Note that one can set the environment variable PYTHONDEVMODE=1
to enable
extra checks, such as whether there are deprecation warnings with newer Python
versions.
Note that Python versions are referred to in:
this file
.github/workflows/*
server/setup.py
server/docker/dockerfiles/camcops.Dockerfile
server/tools/MAKE_LINUX_PACKAGES.py
and separately (not necessarily within a CamCOPS virtual environment) in
server/tools/install_virtualenv.py
tablet_qt/tools/build_qt.py
- camcops_server.cc_modules.cc_pythonversion.assert_minimum_python_version()[source]¶
Asserts that this version of Python meets our minimum requirements. This function should be used except in installation environments where CamCOPS modules are unavailable.
- Raises
AssertionError –
Note that this module/function should use only Python 2 syntax!