# PyNinja ๐ฅท
[](https://badge.fury.io/py/pyninja)
[](https://pypi.org/project/pyninja/)
[](https://opensource.org/licenses/MIT)
[](https://pepy.tech/project/pyninja)
[](https://github.com/psf/black)
> **The Ultimate Python Dependency Ninja** - Silently strike outdated dependencies, eliminate security vulnerabilities, and modernize your Python projects with stealth and precision! ๐ฅทโก
PyNinja is a powerful, community-driven tool that revolutionizes Python dependency management. It combines security scanning, intelligent modernization, performance optimization, and automated updates into one sleek package.
## ๐ Why PyNinja?
- **๐ Security First**: Real-time vulnerability scanning with OSV database integration
- **๐ Smart Modernization**: Automatically detects and suggests modern alternatives to legacy packages
- **โก Performance Focused**: Recommends faster, more efficient package alternatives
- **๐ค CI/CD Ready**: Generates GitHub Actions workflows and PR descriptions
- **๐ฏ Multi-Format Support**: Works with `requirements.txt`, `pyproject.toml`, `Pipfile`, and more
- **๐ง Intelligent Analysis**: ML-inspired scoring for compatibility and community health
- **๐จ Beautiful CLI**: Rich terminal interface with progress bars and interactive prompts
## โก Quick Start
### Installation
```bash
# Install PyNinja
pip install pyninja
# Or with all optional features
pip install pyninja[all]
```
### Basic Usage
```bash
# Analyze your project (auto-detects requirements files)
pyninja
# Security-focused scan with auto-fixes
pyninja --security-first --auto-fix
# Interactive mode with modern alternatives
pyninja --interactive --modernize --performance
# Generate GitHub PR for updates
pyninja --github-pr --export-report security_report.json
```
## ๐ฏ Features Overview
### ๐ Smart Analysis
- **Multi-format detection**: Automatically finds and parses requirements files
- **Dependency tree mapping**: Visualizes complex dependency relationships
- **Compatibility scoring**: Analyzes Python version compatibility
- **Community health metrics**: Evaluates package maintenance quality
### ๐ก๏ธ Security & Safety
- **Real-time vulnerability scanning** using OSV database
- **Automated security patches** with version recommendations
- **License compatibility checking** for compliance
- **Deprecation warnings** for unmaintained packages
### ๐ Modernization Engine
- **Python 2 โ 3 migration** assistance
- **Legacy package replacement** suggestions
- **Performance optimization** recommendations
- **Modern alternative discovery** (httpx vs requests, orjson vs json, etc.)
### ๐ค Automation & CI/CD
- **GitHub Actions integration** with workflow generation
- **Automated PR creation** with detailed change descriptions
- **Docker optimization** suggestions
- **Dry-run capabilities** for safe testing
## ๐ Usage Examples
### Basic Dependency Analysis
```bash
# Analyze current directory
pyninja
# Specify custom requirements file
pyninja --file custom-requirements.txt
# Target specific Python version
pyninja --python-version 3.11
```
### Security-Focused Scanning
```bash
# Security scan with immediate fixes
pyninja --security-first --auto-fix
# Strict mode (exit with error if vulnerabilities found)
pyninja --strict --security-first
# Export detailed security report
pyninja --export-report security_audit.json
```
### Modernization & Performance
```bash
# Full modernization analysis
pyninja --modernize --performance
# Interactive mode with choices
pyninja --interactive --modernize
# Preview changes without applying
pyninja --dry-run --modernize --output updated_requirements.txt
```
### CI/CD Integration
```bash
# Generate GitHub workflow
pyninja --github-pr --auto-fix
# Clear cache and run fresh analysis
pyninja --cache-clear --export-report ci_report.json
```
## ๐จ Beautiful Output
PyNinja provides rich, colorful terminal output:
```
๐ PyNinja v1.0.0 - The Ultimate Python Dependency Ninja
๐ฆ Found 25 packages to analyze
โโ Summary โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโ
โ Total Packages โ 25 โ
โ Packages with Updates โ 12 โ
โ Security Vulnerabilities โ 3 โ
โ Deprecated Packages โ 2 โ
โ Compatibility Score โ 0.92/1.0โ
โ Community Score โ 0.88/1.0โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโ
๐จ Security Vulnerabilities
โข requests (2.25.1) - 2 vulnerabilities
โข pillow (8.0.0) - 1 vulnerability
๐
Outdated Packages
โข numpy: 1.20.0 โ 1.24.3
โข pandas: 1.3.0 โ 2.0.1
โข django: 3.2.0 โ 4.2.1
๐ Modernization Opportunities
โข json: Consider orjson for 2-3x faster JSON processing
โข requests: Use httpx for async HTTP requests
```
## ๐ง Configuration
PyNinja supports various configuration options:
### Command Line Options
```bash
Options:
-f, --file PATH Requirements file path
-o, --output PATH Output file for updated requirements
--format [requirements.txt|pyproject.toml|pipfile]
--auto-fix Automatically apply fixes
--strict Exit with error if issues found
--security-first Prioritize security updates
--modernize Suggest modern alternatives
--performance Focus on performance improvements
--python-version TEXT Target Python version
--github-pr Generate GitHub PR description
--dry-run Preview changes without applying
--interactive Interactive mode with prompts
--cache-clear Clear cache before running
--export-report PATH Export detailed JSON report
--help Show this message and exit
```
### Configuration File
Create a `.pyninja.toml` file in your project root:
```toml
[pyninja]
security_first = true
modernize = true
performance = false
target_python = "3.11"
auto_fix = false
strict_mode = false
[pyninja.exclude]
packages = ["legacy-package", "internal-tool"]
[pyninja.alternatives]
"old-package" = "new-package"
```
## ๐ Supported Formats
PyNinja works with multiple dependency formats:
- **requirements.txt** - Traditional pip requirements
- **pyproject.toml** - Modern Python packaging (PEP 621)
- **Pipfile** - Pipenv format
- **poetry.lock** - Poetry dependencies
- **setup.py** - Legacy setuptools (read-only)
## ๐ค GitHub Integration
Generate automated dependency update workflows:
```bash
pyninja --github-pr
```
This creates:
- `github_pr_description.md` - PR description template
- `.github/workflows/dependencies.yml` - GitHub Actions workflow
- Detailed change analysis and security impact assessment
## ๐ Migration Examples
### Python 2 to 3 Migration
```bash
# Before
mysql-python==1.2.5
pycrypto==2.6.1
unittest2==1.1.0
# After PyNinja analysis
PyMySQL>=3.1.0
pycryptodome>=3.17.0
# unittest2 removed (built into Python 3)
```
### Performance Modernization
```bash
# Before
requests==2.28.0
json # built-in module
# After PyNinja suggestions
httpx>=0.24.0 # async support
orjson>=3.8.0 # 2-3x faster JSON
```
## ๐ Advanced Features
### Vulnerability Database Integration
- **OSV (Google)** - Default, comprehensive vulnerability data
- **GitHub Advisory** - GitHub's security advisory database
- **Snyk** - Commercial vulnerability intelligence
### Performance Optimization
- **Binary wheel preferences** for faster installs
- **Compiled alternative suggestions** (e.g., orjson, uvloop)
- **Memory usage optimization** recommendations
- **Container-specific optimizations**
### Community Health Scoring
- Recent update activity
- Maintainer responsiveness
- GitHub stars and forks
- Documentation quality
- Test coverage indicators
## ๐งช Testing & Development
```bash
# Install development dependencies
pip install pyninja[dev]
# Run tests
pytest
# Code formatting
black pyninja/
isort pyninja/
# Type checking
mypy pyninja/
```
## ๐ค Contributing
We welcome contributions! Here's how to get started:
1. **Fork the repository**
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
3. **Make your changes** and add tests
4. **Run the test suite**: `pytest`
5. **Submit a pull request**
### Development Setup
```bash
git clone https://github.com/pyninja-dev/pyninja.git
cd pyninja
pip install -e .[dev]
pre-commit install
```
## ๐ฎ Roadmap
- [ ] **Machine Learning** integration for smarter recommendations
- [ ] **Multi-language support** (Node.js, Go, Rust dependencies)
- [ ] **IDE plugins** (VS Code, PyCharm)
- [ ] **Enterprise features** (SAML, audit logs, policy enforcement)
- [ ] **Cloud integrations** (AWS, GCP, Azure)
- [ ] **Supply chain analysis** and SBOM generation
## ๐ Documentation
- **Full Documentation**: [pyninja.dev/docs](https://pyninja.dev/docs)
- **API Reference**: [pyninja.dev/api](https://pyninja.dev/api)
- **Examples**: [github.com/pyninja-dev/examples](https://github.com/pyninja-dev/examples)
- **Blog**: [pyninja.dev/blog](https://pyninja.dev/blog)
## ๐ Support
- **GitHub Issues**: [Report bugs or request features](https://github.com/pyninja-dev/pyninja/issues)
- **Discussions**: [Community discussions](https://github.com/pyninja-dev/pyninja/discussions)
- **Discord**: [Join our community](https://discord.gg/pyninja)
- **Email**: [community@pyninja.dev](mailto:community@pyninja.dev)
## ๐ License
PyNinja is released under the [MIT License](LICENSE).
## ๐ Acknowledgments
- **OSV** for comprehensive vulnerability data
- **PyPI** for package metadata
- **Rich** for beautiful terminal interfaces
- **Click** for excellent CLI framework
- **Community contributors** who make PyNinja awesome
## โญ Star History
[](https://star-history.com/#pyninja-dev/pyninja&Date)
---
<div align="center">
**Made with โค๏ธ by the PyNinja Community**
[Website](https://pyninja.dev) โข [Documentation](https://pyninja.dev/docs) โข [GitHub](https://github.com/pyninja-dev/pyninja) โข [PyPI](https://pypi.org/project/pyninja/)
</div>
Raw data
{
"_id": null,
"home_page": "https://github.com/pyninja-dev/pyninja",
"name": "pyninja-tool",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "dependencies, requirements, security, vulnerability, modernization, automation, python, pip, pypi, devops, ci-cd, ninja",
"author": "PyNinja Community",
"author_email": "community@pyninja.dev",
"download_url": null,
"platform": null,
"description": "# PyNinja \ud83e\udd77\n\n[](https://badge.fury.io/py/pyninja)\n[](https://pypi.org/project/pyninja/)\n[](https://opensource.org/licenses/MIT)\n[](https://pepy.tech/project/pyninja)\n[](https://github.com/psf/black)\n\n> **The Ultimate Python Dependency Ninja** - Silently strike outdated dependencies, eliminate security vulnerabilities, and modernize your Python projects with stealth and precision! \ud83e\udd77\u26a1\n\nPyNinja is a powerful, community-driven tool that revolutionizes Python dependency management. It combines security scanning, intelligent modernization, performance optimization, and automated updates into one sleek package.\n\n## \ud83c\udf1f Why PyNinja?\n\n- **\ud83d\udd12 Security First**: Real-time vulnerability scanning with OSV database integration\n- **\ud83d\ude80 Smart Modernization**: Automatically detects and suggests modern alternatives to legacy packages\n- **\u26a1 Performance Focused**: Recommends faster, more efficient package alternatives\n- **\ud83e\udd16 CI/CD Ready**: Generates GitHub Actions workflows and PR descriptions\n- **\ud83c\udfaf Multi-Format Support**: Works with `requirements.txt`, `pyproject.toml`, `Pipfile`, and more\n- **\ud83e\udde0 Intelligent Analysis**: ML-inspired scoring for compatibility and community health\n- **\ud83c\udfa8 Beautiful CLI**: Rich terminal interface with progress bars and interactive prompts\n\n## \u26a1 Quick Start\n\n### Installation\n\n```bash\n# Install PyNinja\npip install pyninja\n\n# Or with all optional features\npip install pyninja[all]\n```\n\n### Basic Usage\n\n```bash\n# Analyze your project (auto-detects requirements files)\npyninja\n\n# Security-focused scan with auto-fixes\npyninja --security-first --auto-fix\n\n# Interactive mode with modern alternatives\npyninja --interactive --modernize --performance\n\n# Generate GitHub PR for updates\npyninja --github-pr --export-report security_report.json\n```\n\n## \ud83c\udfaf Features Overview\n\n### \ud83d\udd0d Smart Analysis\n- **Multi-format detection**: Automatically finds and parses requirements files\n- **Dependency tree mapping**: Visualizes complex dependency relationships\n- **Compatibility scoring**: Analyzes Python version compatibility\n- **Community health metrics**: Evaluates package maintenance quality\n\n### \ud83d\udee1\ufe0f Security & Safety\n- **Real-time vulnerability scanning** using OSV database\n- **Automated security patches** with version recommendations\n- **License compatibility checking** for compliance\n- **Deprecation warnings** for unmaintained packages\n\n### \ud83d\udd04 Modernization Engine\n- **Python 2 \u2192 3 migration** assistance\n- **Legacy package replacement** suggestions\n- **Performance optimization** recommendations\n- **Modern alternative discovery** (httpx vs requests, orjson vs json, etc.)\n\n### \ud83e\udd16 Automation & CI/CD\n- **GitHub Actions integration** with workflow generation\n- **Automated PR creation** with detailed change descriptions\n- **Docker optimization** suggestions\n- **Dry-run capabilities** for safe testing\n\n## \ud83d\udcca Usage Examples\n\n### Basic Dependency Analysis\n\n```bash\n# Analyze current directory\npyninja\n\n# Specify custom requirements file\npyninja --file custom-requirements.txt\n\n# Target specific Python version\npyninja --python-version 3.11\n```\n\n### Security-Focused Scanning\n\n```bash\n# Security scan with immediate fixes\npyninja --security-first --auto-fix\n\n# Strict mode (exit with error if vulnerabilities found)\npyninja --strict --security-first\n\n# Export detailed security report\npyninja --export-report security_audit.json\n```\n\n### Modernization & Performance\n\n```bash\n# Full modernization analysis\npyninja --modernize --performance\n\n# Interactive mode with choices\npyninja --interactive --modernize\n\n# Preview changes without applying\npyninja --dry-run --modernize --output updated_requirements.txt\n```\n\n### CI/CD Integration\n\n```bash\n# Generate GitHub workflow\npyninja --github-pr --auto-fix\n\n# Clear cache and run fresh analysis\npyninja --cache-clear --export-report ci_report.json\n```\n\n## \ud83c\udfa8 Beautiful Output\n\nPyNinja provides rich, colorful terminal output:\n\n```\n\ud83d\ude80 PyNinja v1.0.0 - The Ultimate Python Dependency Ninja\n\ud83d\udce6 Found 25 packages to analyze\n\n\u250c\u2500 Summary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Total Packages \u2502 25 \u2502\n\u2502 Packages with Updates \u2502 12 \u2502\n\u2502 Security Vulnerabilities \u2502 3 \u2502\n\u2502 Deprecated Packages \u2502 2 \u2502\n\u2502 Compatibility Score \u2502 0.92/1.0\u2502\n\u2502 Community Score \u2502 0.88/1.0\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n\ud83d\udea8 Security Vulnerabilities\n \u2022 requests (2.25.1) - 2 vulnerabilities\n \u2022 pillow (8.0.0) - 1 vulnerability\n\n\ud83d\udcc5 Outdated Packages\n \u2022 numpy: 1.20.0 \u2192 1.24.3\n \u2022 pandas: 1.3.0 \u2192 2.0.1\n \u2022 django: 3.2.0 \u2192 4.2.1\n\n\ud83d\ude80 Modernization Opportunities\n \u2022 json: Consider orjson for 2-3x faster JSON processing\n \u2022 requests: Use httpx for async HTTP requests\n```\n\n## \ud83d\udd27 Configuration\n\nPyNinja supports various configuration options:\n\n### Command Line Options\n\n```bash\nOptions:\n -f, --file PATH Requirements file path\n -o, --output PATH Output file for updated requirements\n --format [requirements.txt|pyproject.toml|pipfile]\n --auto-fix Automatically apply fixes\n --strict Exit with error if issues found\n --security-first Prioritize security updates\n --modernize Suggest modern alternatives\n --performance Focus on performance improvements\n --python-version TEXT Target Python version\n --github-pr Generate GitHub PR description\n --dry-run Preview changes without applying\n --interactive Interactive mode with prompts\n --cache-clear Clear cache before running\n --export-report PATH Export detailed JSON report\n --help Show this message and exit\n```\n\n### Configuration File\n\nCreate a `.pyninja.toml` file in your project root:\n\n```toml\n[pyninja]\nsecurity_first = true\nmodernize = true\nperformance = false\ntarget_python = \"3.11\"\nauto_fix = false\nstrict_mode = false\n\n[pyninja.exclude]\npackages = [\"legacy-package\", \"internal-tool\"]\n\n[pyninja.alternatives]\n\"old-package\" = \"new-package\"\n```\n\n## \ud83c\udf0d Supported Formats\n\nPyNinja works with multiple dependency formats:\n\n- **requirements.txt** - Traditional pip requirements\n- **pyproject.toml** - Modern Python packaging (PEP 621)\n- **Pipfile** - Pipenv format\n- **poetry.lock** - Poetry dependencies\n- **setup.py** - Legacy setuptools (read-only)\n\n## \ud83e\udd1d GitHub Integration\n\nGenerate automated dependency update workflows:\n\n```bash\npyninja --github-pr\n```\n\nThis creates:\n- `github_pr_description.md` - PR description template\n- `.github/workflows/dependencies.yml` - GitHub Actions workflow\n- Detailed change analysis and security impact assessment\n\n## \ud83d\udd04 Migration Examples\n\n### Python 2 to 3 Migration\n```bash\n# Before\nmysql-python==1.2.5\npycrypto==2.6.1\nunittest2==1.1.0\n\n# After PyNinja analysis\nPyMySQL>=3.1.0\npycryptodome>=3.17.0\n# unittest2 removed (built into Python 3)\n```\n\n### Performance Modernization\n```bash\n# Before\nrequests==2.28.0\njson # built-in module\n\n# After PyNinja suggestions\nhttpx>=0.24.0 # async support\norjson>=3.8.0 # 2-3x faster JSON\n```\n\n## \ud83d\udcc8 Advanced Features\n\n### Vulnerability Database Integration\n- **OSV (Google)** - Default, comprehensive vulnerability data\n- **GitHub Advisory** - GitHub's security advisory database \n- **Snyk** - Commercial vulnerability intelligence\n\n### Performance Optimization\n- **Binary wheel preferences** for faster installs\n- **Compiled alternative suggestions** (e.g., orjson, uvloop)\n- **Memory usage optimization** recommendations\n- **Container-specific optimizations**\n\n### Community Health Scoring\n- Recent update activity\n- Maintainer responsiveness \n- GitHub stars and forks\n- Documentation quality\n- Test coverage indicators\n\n## \ud83e\uddea Testing & Development\n\n```bash\n# Install development dependencies\npip install pyninja[dev]\n\n# Run tests\npytest\n\n# Code formatting\nblack pyninja/\nisort pyninja/\n\n# Type checking\nmypy pyninja/\n```\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Here's how to get started:\n\n1. **Fork the repository**\n2. **Create a feature branch**: `git checkout -b feature/amazing-feature`\n3. **Make your changes** and add tests\n4. **Run the test suite**: `pytest`\n5. **Submit a pull request**\n\n### Development Setup\n```bash\ngit clone https://github.com/pyninja-dev/pyninja.git\ncd pyninja\npip install -e .[dev]\npre-commit install\n```\n\n## \ud83d\udd2e Roadmap\n\n- [ ] **Machine Learning** integration for smarter recommendations\n- [ ] **Multi-language support** (Node.js, Go, Rust dependencies)\n- [ ] **IDE plugins** (VS Code, PyCharm)\n- [ ] **Enterprise features** (SAML, audit logs, policy enforcement)\n- [ ] **Cloud integrations** (AWS, GCP, Azure)\n- [ ] **Supply chain analysis** and SBOM generation\n\n## \ud83d\udcda Documentation\n\n- **Full Documentation**: [pyninja.dev/docs](https://pyninja.dev/docs)\n- **API Reference**: [pyninja.dev/api](https://pyninja.dev/api)\n- **Examples**: [github.com/pyninja-dev/examples](https://github.com/pyninja-dev/examples)\n- **Blog**: [pyninja.dev/blog](https://pyninja.dev/blog)\n\n## \ud83c\udd98 Support\n\n- **GitHub Issues**: [Report bugs or request features](https://github.com/pyninja-dev/pyninja/issues)\n- **Discussions**: [Community discussions](https://github.com/pyninja-dev/pyninja/discussions)\n- **Discord**: [Join our community](https://discord.gg/pyninja)\n- **Email**: [community@pyninja.dev](mailto:community@pyninja.dev)\n\n## \ud83d\udcdc License\n\nPyNinja is released under the [MIT License](LICENSE).\n\n## \ud83d\ude4f Acknowledgments\n\n- **OSV** for comprehensive vulnerability data\n- **PyPI** for package metadata\n- **Rich** for beautiful terminal interfaces\n- **Click** for excellent CLI framework\n- **Community contributors** who make PyNinja awesome\n\n## \u2b50 Star History\n\n[](https://star-history.com/#pyninja-dev/pyninja&Date)\n\n---\n\n<div align=\"center\">\n\n**Made with \u2764\ufe0f by the PyNinja Community**\n\n[Website](https://pyninja.dev) \u2022 [Documentation](https://pyninja.dev/docs) \u2022 [GitHub](https://github.com/pyninja-dev/pyninja) \u2022 [PyPI](https://pypi.org/project/pyninja/)\n\n</div>\n",
"bugtrack_url": null,
"license": null,
"summary": "\ud83e\udd77 The ultimate Python dependency ninja - automate, secure, and modernize your requirements",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/pyninja-dev/pyninja/issues",
"Changelog": "https://github.com/pyninja-dev/pyninja/releases",
"Documentation": "https://pyninja.dev/docs",
"Homepage": "https://github.com/pyninja-dev/pyninja",
"Source Code": "https://github.com/pyninja-dev/pyninja"
},
"split_keywords": [
"dependencies",
" requirements",
" security",
" vulnerability",
" modernization",
" automation",
" python",
" pip",
" pypi",
" devops",
" ci-cd",
" ninja"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "028810bb9dbbf419e1ea5aa803ab1a6448abbfdb03ebc59d99be8555eab4ed3b",
"md5": "36646d8ee797c1d995eaf1d5dc161145",
"sha256": "d547bea92ba86d5e05866e99bbf643047e3e284930f798d67de32305491a542c"
},
"downloads": -1,
"filename": "pyninja_tool-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "36646d8ee797c1d995eaf1d5dc161145",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 22316,
"upload_time": "2025-07-28T22:32:04",
"upload_time_iso_8601": "2025-07-28T22:32:04.301876Z",
"url": "https://files.pythonhosted.org/packages/02/88/10bb9dbbf419e1ea5aa803ab1a6448abbfdb03ebc59d99be8555eab4ed3b/pyninja_tool-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-28 22:32:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pyninja-dev",
"github_project": "pyninja",
"github_not_found": true,
"lcname": "pyninja-tool"
}