![]() |
Summary | Manage Python dependencies for CommunityScripts. |
![]() |
Repository | https://github.com/stashapp/CommunityScripts/tree/main/plugins/PythonDepManager |
![]() |
Source URL | https://stashapp.github.io/CommunityScripts/stable/index.yml |
![]() |
Install | How to install a plugin? |
Python dependency management system for CommunityScripts plugins.
This plugin provides an easy way to install and manage Python package dependencies in your plugins without manual user interaction.
Don’t worry about missing dependencies and wrong or conflicting versions anymore.
Features
-
Automatic dependency installation and management
- Users won’t have to manually install dependencies
-
Isolated dependency versions
- Specify exact version of your dependencies without worrying about conflicts with other plugin installs
-
Support for multiple package sources:
-
PyPI packages with version constraints
-
Git repositories (with branch/tag/commit support)
-
Custom import names for metapackages
-
-
Automatic version resolution and compatibility checking
-
Easy dependency cleanup and flushing
Installation
- Add PythonDepManager as a requirement in your plugin’s YAML file:
name: YourPlugin
# requires: PythonDepManager
description: Your plugin description
Usage
Basic Usage
In your plugin’s Python code, import and use the dependency manager:
from PythonDepManager import ensure_import
# Install and import a package with specific version
ensure_import("requests==2.26.0")
# Afterwards imports will use only the requested versions
import requests
Advanced Usage
Minimum Versions
Define a minimum version to use. This will either use any cached version
which matches or install the latest
from PythonDepManager import ensure_import
ensure_import("requests>=2.26.0")
Custom Import Names/Meta Packages
Use custom import names for packages with different import names or meta packages
from PythonDepManager import ensure_import
# Install beautifulsoup4 but import as bs4
ensure_import("bs4:beautifulsoup4==4.9.3")
from PythonDepManager import ensure_import
# Install stashapp-tools but import as stashapi
ensure_import("stashapi:stashapp-tools==0.2.58")
Git Repository Dependencies
Install packages directly from Git repositories:
from PythonDepManager import ensure_import
# Install from a Git repository
ensure_import("stashapi@git+https://github.com/user/repo.git")
# Install specific branch/tag
ensure_import("stashapi@git+https://github.com/user/repo.git@main")
# Install specific commit
ensure_import("stashapi@git+https://github.com/user/repo.git@ad483dc")
Multiple Imports
Handle multiple different requirements for imports:
from PythonDepManager import ensure_import
ensure_import(
"requests",
"bs4:beautifulsoup4==4.9.3",
"stashapi:stashapp-tools==0.2.58",
"someothermodule>=0.1",
)
Managing Dependencies
To flush all cached dependencies:
from PythonDepManager import flush_dependencies
flush_dependencies()
Requirements
-
Git (for Git repository dependencies)
-
pip (Python package installer)