Copyright (C) 2012, University of Cambridge, Department of Psychiatry. Created by Rudolf Cardinal (email@example.com).
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:
Python v3.7 was required as of CamCOPS v2.4.12, 2021. That enables:
Python 3.8 was required as of CamCOPS v2.4.15, 2022. That enables:
assignment expressions, the “walrus” operator,
=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) for type hinting (v3.9)
match/casestatement, like C++’s
|as well as
Unionfor type hints (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
Note that Python versions are referred to in:
and separately (not necessarily within a CamCOPS virtual environment) in
Asserts that this version of Python meets our minimum requirements. This function should be used except in installation environments where CamCOPS modules are unavailable.
Note that this module/function should use only Python 2 syntax!