Logic to create PEP 561 compliant type stubs for MaterialX
- Enables IntelliSense, autocomplete, and type checking for MaterialX in Python IDEs.
- The sample stubs are based on head of version
1.39.5. - The repo can be cloned to create stubs for the desired MaterialX install.
- Stubs are generated as
MaterialX-stubs/package to provide types for your installed MaterialX package (PEP 561 compliant).
This package follows PEP 561 for distributing type information:
- The package is named
types-MaterialX(standard naming for stub-only packages) - Stubs are installed in
MaterialX-stubs/directory - When you import
MaterialXin your code, type checkers (mypy, Pylance, etc.) automatically discover and use the stubs fromMaterialX-stubs/ - This works alongside your regular MaterialX installation without conflicts
For MaterialX versions available on PyPI (1.39.4 and earlier):
pip install .If you have a locally built MaterialX version (e.g., 1.39.5) that's not yet on PyPI:
# First, ensure your local MaterialX is installed
pip install /path/to/your/MaterialX
# Then install types-MaterialX without build isolation
pip install --no-build-isolation .Note: The --no-build-isolation flag tells pip to use your current environment's MaterialX installation during the build process, rather than creating an isolated build environment with only PyPI packages.
pip install .
# Reload VS Code: Ctrl+Shift+P → "Developer: Reload Window"Requirements: Python and Pylance extension
- PyMaterialXCore
- PyMaterialXFormat
- PyMaterialXGenShader
- PyMaterialXGenGlsl
- PyMaterialXGenOsl
- PyMaterialXGenMsl
- PyMaterialXGenMdl
- PyMaterialXRender
- PyMaterialXRenderGlsl
- PyMaterialXRenderOsl
- colorspace
- datatype
- main
Stubs can be rebuild using:
./setup.sh # Generate stubs, build wheel, and installThen installed using again using pip
This will remove all build artifacts including generated stubs:
cleanup.sh # Clean build and stubs./build_dist.shIf build and / or twine are not found, install using
pip install ".[dev]"