Updates for updated Python version requirement.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Mon, 16 Aug 2021 16:01:38 +0000 (19:01 +0300)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 16 Aug 2021 18:04:58 +0000 (18:04 +0000)
* Update documented required Python version.
* Remove some references to Python 3.6 and 3.7.
* Cite issues where appropriate.

Refs #3716

docs/gmxapi/userguide/install.rst
python_packaging/src/gmxapi/operation.py

index 7e96486f7f45f467a73cdbcfebaef108d0599422..9e74dc197992e4e3c6b79110791b35934202944c 100644 (file)
@@ -86,7 +86,7 @@ Background
 *gmxapi* comes in three parts:
 
 * GROMACS gmxapi library for C++.
-* This Python package, supporting Python 3.6 and higher
+* This Python package, supporting Python 3.7 and higher
 * MD restraint plugins and sample gmxapi client code
 
 GROMACS requirements
@@ -112,7 +112,7 @@ to the build configuration.
 Build system requirements
 -------------------------
 
-gmxapi can be built for Python 3.6 and higher.
+gmxapi can be built for Python 3.7 and higher.
 
 You will need a C++ 14 compatible compiler and a reasonably up-to-date version
 of CMake.
@@ -144,7 +144,7 @@ that works.
 Python environment requirements
 -------------------------------
 
-gmxapi requires Python 3.6 or higher. Check your version with
+gmxapi requires Python 3.7 or higher. Check your version with
 :command:`python3 --version` or :command:`python --version`.
 
 ..  note::
index c80b017592252b0e1ff40b2f623694855a9818be..a12a9909cc85982e87b1601dd242552eb50ff0dd 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
+# Copyright (c) 2019,2020,2021, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -497,9 +497,8 @@ class DataProxyMeta(abc.ABCMeta):
             class MyProxy(DataProxyBase, descriptors={name: MyDescriptor() for name in datanames}): pass
 
         Note:
-            If we are only using this metaclass for the __prepare__ hook by the
-            time we require Python >= 3.6, we could reimplement __prepare__ as
-            DataProxyBase.__init_subclass__ and remove this metaclass.
+            Recent Python versions allow this to be replaced via ``__init_subclass__`` hook.
+            See :issue:`4116`
         """
         if descriptors is None:
             return {}
@@ -1164,8 +1163,10 @@ class ConcreteInputDescription(InputDescription):
 class OperationMeta(abc.ABCMeta):
     """Metaclass to manage the definition of Operation implementation classes.
 
-    Note that this metaclass can be superseded by `__init_subclass__()` when
-    the minimum Python version is increased to Python 3.6+.
+    Design Note:
+        Note that this metaclass can be superseded by `__init_subclass__()`.
+        See :issue:`4116`.
+
     """
 
     def __new__(meta, name, bases, class_dict):