Dependencies
Arnold Subdiv Manager relies on some external dependencies.
The external dependencies can be installed using pip
. They are specified in requirements.txt
and requirements-dev.txt
.
Dependencies specified in requirements.txt
are required to run the Arnold Subdiv Manager.
The Arnold Subdiv Manager also depends on the Maya API, but since this is not installable using pip
, it is not listed here.
Dependencies specified in requirements-dev.txt
are dev dependencies and are required to develop the Arnold Subdiv Manager (e.g. execute Arnold Subdiv Manager outside Maya and run tests).
The dependency files use Environment Markers to specify dependencies for specific Python versions
Standart Dependencies
Name | Needed for? |
---|---|
typing |
type hints, backport of the standard library typing module to Python versions older than 3.5 |
attrs |
no boilerplate code for simple classes (@dataclass is only avaible in Python > 3.7) |
Qt.py |
Qt Binding abstraction, so any Qt Binding can be used as it would be PySide2 |
enum34;python_version <= '2.7' |
use enums in Python older than Python 3.4 |
PySide2 is not used directly. Instead, the Qt.py Wrapper is used. This way PySide can be used in our local development environment and PySide2 in Maya. There are no PySide2 binaries available on PyPi for Python 2.7.
Dev Dependencies
Name | Needed for? |
---|---|
pytest |
Testing Framework |
pytest-qt |
Utilities for pytest to interact with Qt |
mock |
mocks for Python < 3 |
PySide;python_version <= '2.7' |
no Binaries for PySide2 for Python 2 available on Pypi |
PySide2;python_version >= '3.7' |
no Binaries for PySide for Python 3 available on Pypi |
mypy;python_version >= '3.7' |
static type checker, needs Python 3 to run |
black;python_version >= '3.7' |
code formatter, needs Python 3 to run |
The Project uses type hints for static typing and MyPy for type checking. Pytest is used as a testing framework