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

Last modified August 19, 2020