Install
$ agentstack add skill-armanzeroeight-fastagent-plugins-dependency-manager Open-source listing — not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Dependency Manager
Manage Python project dependencies with UV, pip-tools, or requirements.txt.
Quick Start
Choose UV for new projects (fast, modern), pip-tools for existing pip workflows, or requirements.txt for simple projects.
Instructions
Choosing a Tool
UV - Fast, modern Python package manager (recommended):
- Extremely fast dependency resolution (10-100x faster than pip)
- Automatic virtual environment management
- Drop-in replacement for pip and pip-tools
- Lock file support with uv.lock
- Best for: All projects, especially new ones
pip-tools - Lightweight, pip-compatible workflow:
- Generates lock files from requirements.in
- Works with existing pip workflows
- Minimal changes to project structure
- Best for: Existing projects, CI/CD with pip, gradual adoption
requirements.txt - Simple, universal:
- Direct pip install
- No additional tools
- No lock file (unless manually maintained)
- Best for: Simple scripts, minimal dependencies, quick prototypes
UV Setup (Recommended)
Install UV:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with pip
pip install uv
Initialize new project:
uv init my-project
cd my-project
Add dependencies:
# Runtime dependency
uv add requests
# Development dependency
uv add --dev pytest
# With version constraint
uv add "requests>=2.28.0,=2.28.0
flask>=2.0.0
Create requirements-dev.in:
# requirements-dev.in
-c requirements.txt # Constrain to production versions
pytest>=7.0.0
black>=23.0.0
mypy>=1.0.0
Compile lock files:
# Compile production dependencies
pip-compile requirements.in
# Compile dev dependencies
pip-compile requirements-dev.in
This generates requirements.txt and requirements-dev.txt with pinned versions.
Install dependencies:
pip-sync requirements.txt requirements-dev.txt
Update dependencies:
# Update all
pip-compile --upgrade requirements.in
# Update specific package
pip-compile --upgrade-package requests requirements.in
Add new dependency:
- Add to requirements.in
- Run
pip-compile requirements.in - Run
pip-sync requirements.txt
requirements.txt Workflow
Create requirements.txt:
pip freeze > requirements.txt
Install dependencies:
pip install -r requirements.txt
Separate dev dependencies:
Create requirements-dev.txt:
-r requirements.txt
pytest>=7.0.0
black>=23.0.0
Install with:
pip install -r requirements-dev.txt
Version Constraints
UV/PEP 621 syntax (pyproject.toml):
[project]
dependencies = [
"requests>=2.28.0,=3.2,=2.28.0,=3.2,=`, `=7.0.0", "black>=23.0.0"]
docs = ["sphinx>=5.0.0"]
test = ["coverage>=7.0.0"]
Install specific groups:
uv sync --extra dev
uv sync --extra docs
uv sync --all-extras
pip-tools approach:
Create separate .in files:
requirements.in- Productionrequirements-dev.in- Developmentrequirements-test.in- Testingrequirements-docs.in- Documentation
Resolving Conflicts
With UV:
- Check conflict:
``bash uv add package-name # UV will show conflict if it exists ``
- Update constraints in pyproject.toml:
``toml [project] dependencies = [ "package-a>=2.0.0", # Relax constraint "package-b>=3.0.0", ] ``
- Force resolution:
``bash uv lock uv sync ``
With pip-tools:
- Check conflict:
``bash pip-compile requirements.in # Will show resolution errors ``
- Adjust constraints in requirements.in:
`` package-a>=2.0.0 # Relax constraint package-b>=3.0.0 ``
- Recompile:
``bash pip-compile requirements.in ``
Common conflict patterns:
- Transitive dependency conflict: Two packages require incompatible versions of a third package
- Solution: Update one or both packages, or relax constraints
- Python version conflict: Package requires newer Python than project supports
- Solution: Upgrade Python version or find alternative package
- Platform-specific conflict: Package not available on current platform
- Solution: Use platform markers or optional dependencies
Platform-Specific Dependencies
UV/PEP 621:
[project]
dependencies = [
"pywin32>=305; sys_platform == 'win32'",
"python-daemon>=2.3; sys_platform == 'linux'",
]
pip:
pywin32>=305; sys_platform == 'win32'
python-daemon>=2.3; sys_platform == 'linux'
Optional Dependencies
UV/PEP 621:
[project.optional-dependencies]
aws = ["boto3>=1.26.0"]
all = ["boto3>=1.26.0"] # Include all optional deps
Install with:
uv sync --extra aws
uv pip install package-name[aws]
Virtual Environments
UV (automatic):
# UV creates and manages venv automatically
uv sync
uv run python script.py
source .venv/bin/activate # Manual activation if needed
pip-tools (manual):
# Create venv
python -m venv venv
# Activate
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Install
pip-sync requirements.txt
requirements.txt (manual):
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
CI/CD Integration
UV in CI (recommended):
# .github/workflows/test.yml
- name: Install UV
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install dependencies
run: uv sync
- name: Run tests
run: uv run pytest
pip-tools in CI:
- name: Install dependencies
run: |
pip install pip-tools
pip-sync requirements.txt requirements-dev.txt
- name: Run tests
run: pytest
requirements.txt in CI:
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest
Migration Strategies
From requirements.txt to UV:
- Initialize UV project:
``bash uv init --no-readme ``
- Import dependencies:
``bash # Add each dependency from requirements.txt cat requirements.txt | grep -v "^#" | xargs -I {} uv add {} ``
- Separate dev dependencies:
``bash uv add --dev pytest black mypy ``
- Test:
``bash uv sync uv run pytest ``
From requirements.txt to pip-tools:
- Rename requirements.txt:
``bash mv requirements.txt requirements.in ``
- Compile lock file:
``bash pip-compile requirements.in ``
- Create dev requirements:
``bash echo "-c requirements.txt" > requirements-dev.in echo "pytest" >> requirements-dev.in pip-compile requirements-dev.in ``
- Test:
``bash pip-sync requirements.txt requirements-dev.txt ``
From pip-tools to UV:
- Create pyproject.toml:
``bash uv init --no-readme ``
- Import from requirements.in:
``bash cat requirements.in | grep -v "^#" | grep -v "^-" | xargs -I {} uv add {} ``
- Test:
``bash uv sync ``
Common Patterns
Monorepo with Shared Dependencies
UV workspace:
# Root pyproject.toml
[tool.uv.workspace]
members = ["packages/*"]
# packages/package1/pyproject.toml
[project]
name = "package1"
dependencies = ["requests>=2.28.0"]
# packages/package2/pyproject.toml
[project]
name = "package2"
dependencies = ["requests>=2.28.0"]
pip-tools approach:
# shared-requirements.in
requests>=2.28.0
# package1/requirements.in
-c ../shared-requirements.txt
flask>=2.0.0
# package2/requirements.in
-c ../shared-requirements.txt
django>=4.0.0
Lock File Best Practices
Commit lock files:
uv.lock- Always commitrequirements.txt(from pip-compile) - Always commitrequirements.txt(from pip freeze) - Consider committing
Update regularly:
# UV
uv lock --upgrade
# pip-tools
pip-compile --upgrade requirements.in
Verify after updates:
# Run tests
uv run pytest
# Check for security issues
pip-audit
Troubleshooting
UV lock takes too long:
- UV is typically very fast; if slow, check for network issues
- Use
uv lock --offlineto use cached packages - Check for circular dependencies
pip-compile fails with conflict:
- Relax version constraints in requirements.in
- Use
pip-compile --resolver=backtrackingfor better resolution - Check for incompatible transitive dependencies
Dependencies not found:
- Verify package name (check PyPI)
- Check Python version compatibility
- Ensure correct index URL (for private packages)
- With UV:
uv pip install --index-url https://custom-index.com package
Virtual environment issues:
- Delete and recreate:
rm -rf .venv && uv sync - Check Python version matches project requirements
- UV automatically manages virtual environments
Outdated dependencies:
- Check with:
uv tree --outdatedorpip list --outdated - Update carefully, test after each major update
- Use
uv lock --upgrade --dry-runto preview changes
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: armanzeroeight
- Source: armanzeroeight/fastagent-plugins
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.