*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
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.
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::
#
# 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.
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 {}
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):