# Deprecated Checker
Tool for checking deprecated dependencies in Python projects and suggesting alternatives.
## Features
- **Dynamic Repository Analysis**: Automatically analyzes repository dependencies and builds database based on actual project packages
- **Comprehensive Database Updates**: Updates database with all known deprecated packages from multiple sources
- **Automatic detection of deprecated packages** from requirements.txt, setup.py, pyproject.toml
- **Smart alternatives suggestion** with migration guides
- **Beautiful reports** with Rich library
- **Fast CLI interface** for quick checks
- **Automatic update scheduler** for keeping database current
- **Data export** in JSON, YAML, and CSV formats
- **Cross-Python version compatibility** (3.10, 3.12, 3.12.10)
- **Repository-specific analysis** - only checks packages actually used in your project
## Installation
### From PyPI
```bash
pip install deprecated-checker
```
### From Source
```bash
git clone https://github.com/yourusername/deprecated-checker.git
cd deprecated-checker
pip install -r requirements.txt
```
## Usage
### CLI Interface (Recommended)
```bash
# Check current directory
deprecated-checker check
# Check specific project
deprecated-checker check --path /path/to/project
# Export to JSON
deprecated-checker check --export json --output report.json
# Verbose output
deprecated-checker check --verbose
# View database statistics
deprecated-checker stats
# Search for package information
deprecated-checker search requests
# Update database from all sources
deprecated-checker update-db --source all
# Comprehensive database update (checks hundreds of packages)
deprecated-checker update-db --comprehensive
# Analyze repository dependencies
deprecated-checker analyze-repository
# List all deprecated packages in database
deprecated-checker list-db
# Validate database
deprecated-checker validate-db
# Export database
deprecated-checker export-db --format json --output db_export.json
# Scheduler management
deprecated-checker scheduler start --interval 24
deprecated-checker scheduler status
deprecated-checker scheduler force-update
```
### Repository Analysis
The tool now automatically analyzes your repository's dependencies and builds a dynamic database:
```bash
# Analyze current repository
deprecated-checker analyze-repository
# Analyze specific repository
deprecated-checker analyze-repository --path /path/to/project
# Save analysis results
deprecated-checker analyze-repository --save
```
### Comprehensive Database Updates
Update the database with all known deprecated packages:
```bash
# Update with comprehensive data (may take several minutes)
deprecated-checker update-db --comprehensive
```
This will check hundreds of packages and save results to `data/comprehensive_deprecated_packages.yaml`.
### Demonstration
```bash
# Run demonstration of all capabilities
python demo_cli.py
```
### Legacy method (deprecated_checker.py)
```bash
# Check current directory
python deprecated_checker.py
# Check specific directory
python deprecated_checker.py --path /path/to/project
# Export to JSON
python deprecated_checker.py --export json
# Export to YAML
python deprecated_checker.py --export yaml
```
## Example Output
### Repository Analysis
```
✓ Analysis complete! Found 3 deprecated packages
┌─────────────┬──────────────────┬─────────────────────┬─────────────────┐
│ Package │ Deprecated since │ Reason │ Source │
├─────────────┼──────────────────┼─────────────────────┼─────────────────┤
│ pycrypto │ 2020-01-01 │ Package deprecated │ pypi_analysis │
│ bottle │ 2021-01-01 │ Package deprecated │ pypi_analysis │
│ six │ 2022-01-01 │ Package deprecated │ pypi_analysis │
└─────────────┴──────────────────┴─────────────────────┴─────────────────┘
```
### Dependency Check
```
Checking deprecated dependencies...
Found deprecated packages:
• django-cors-headers==3.14.0 → django-cors-headers>=4.0.0
• requests==2.28.0 → httpx>=0.24.0 (recommended)
Safe packages:
• fastapi==0.104.0
• pydantic==2.4.0
```
## Key Features
### Dynamic Repository Analysis
- Automatically detects all dependencies in your project
- Checks each package against PyPI for deprecation status
- Builds database specifically for your project's packages
- Falls back to static database if no deprecated packages found
### Comprehensive Database
- Updates from multiple sources: PyPI, GitHub, security advisories
- Includes hundreds of known deprecated packages
- Regular updates via scheduler
- Export/import capabilities
### Cross-Version Compatibility
- Tested with Python 3.10.0, 3.12.0, and 3.12.10
- Compatible with modern Python packaging standards
- Works with both legacy and modern dependency files
## Project Structure
```
is-deprecated-or-not/
├── core/
│ ├── __init__.py
│ ├── checker.py # Main checking logic
│ ├── config_manager.py # Configuration management
│ ├── data_collector.py # Data collection from multiple sources
│ ├── database.py # Dynamic database management
│ ├── parser.py # Dependency file parsing
│ ├── repository_analyzer.py # Repository analysis engine
│ └── scheduler.py # Update scheduler
├── data/
│ └── deprecated_packages.yaml
├── utils/
│ ├── __init__.py
│ └── cli.py # CLI interface
├── config/
│ └── collector_config.yaml
├── cache/ # Data cache
├── logs/ # Logs
├── demo_cli.py # Demonstration script
├── deprecated_checker.py # Legacy interface
├── CLI_GUIDE.md # CLI guide
└── INSTALL.md # Installation guide
```
## Documentation
- [CLI Guide](CLI_GUIDE.md) - Detailed guide for using the CLI interface
- [Installation Guide](INSTALL.md) - Installation and setup instructions
- [Testing Guide](TESTING_GUIDE.md) - Testing and development information
- [PyPI Publishing Guide](PYPI_PUBLISHING_GUIDE.md) - Publishing to PyPI
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## License
MIT License - see LICENSE file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/julicq/deprecated-checker",
"name": "deprecated-checker",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Iulian Pavlov <iulianpavlov@icloud.com>",
"keywords": "dependencies, deprecated, security, python, cli",
"author": "Iulian Pavlov",
"author_email": "Iulian Pavlov <iulianpavlov@icloud.com>",
"download_url": "https://files.pythonhosted.org/packages/a0/21/e4176d565efaf317779370510b85a535f2b3c45bf5611cd3455641d0ab76/deprecated_checker-1.0.31.tar.gz",
"platform": null,
"description": "# Deprecated Checker\n\nTool for checking deprecated dependencies in Python projects and suggesting alternatives.\n\n## Features\n\n- **Dynamic Repository Analysis**: Automatically analyzes repository dependencies and builds database based on actual project packages\n- **Comprehensive Database Updates**: Updates database with all known deprecated packages from multiple sources\n- **Automatic detection of deprecated packages** from requirements.txt, setup.py, pyproject.toml\n- **Smart alternatives suggestion** with migration guides\n- **Beautiful reports** with Rich library\n- **Fast CLI interface** for quick checks\n- **Automatic update scheduler** for keeping database current\n- **Data export** in JSON, YAML, and CSV formats\n- **Cross-Python version compatibility** (3.10, 3.12, 3.12.10)\n- **Repository-specific analysis** - only checks packages actually used in your project\n\n## Installation\n\n### From PyPI\n```bash\npip install deprecated-checker\n```\n\n### From Source\n```bash\ngit clone https://github.com/yourusername/deprecated-checker.git\ncd deprecated-checker\npip install -r requirements.txt\n```\n\n## Usage\n\n### CLI Interface (Recommended)\n\n```bash\n# Check current directory\ndeprecated-checker check\n\n# Check specific project\ndeprecated-checker check --path /path/to/project\n\n# Export to JSON\ndeprecated-checker check --export json --output report.json\n\n# Verbose output\ndeprecated-checker check --verbose\n\n# View database statistics\ndeprecated-checker stats\n\n# Search for package information\ndeprecated-checker search requests\n\n# Update database from all sources\ndeprecated-checker update-db --source all\n\n# Comprehensive database update (checks hundreds of packages)\ndeprecated-checker update-db --comprehensive\n\n# Analyze repository dependencies\ndeprecated-checker analyze-repository\n\n# List all deprecated packages in database\ndeprecated-checker list-db\n\n# Validate database\ndeprecated-checker validate-db\n\n# Export database\ndeprecated-checker export-db --format json --output db_export.json\n\n# Scheduler management\ndeprecated-checker scheduler start --interval 24\ndeprecated-checker scheduler status\ndeprecated-checker scheduler force-update\n```\n\n### Repository Analysis\n\nThe tool now automatically analyzes your repository's dependencies and builds a dynamic database:\n\n```bash\n# Analyze current repository\ndeprecated-checker analyze-repository\n\n# Analyze specific repository\ndeprecated-checker analyze-repository --path /path/to/project\n\n# Save analysis results\ndeprecated-checker analyze-repository --save\n```\n\n### Comprehensive Database Updates\n\nUpdate the database with all known deprecated packages:\n\n```bash\n# Update with comprehensive data (may take several minutes)\ndeprecated-checker update-db --comprehensive\n```\n\nThis will check hundreds of packages and save results to `data/comprehensive_deprecated_packages.yaml`.\n\n### Demonstration\n\n```bash\n# Run demonstration of all capabilities\npython demo_cli.py\n```\n\n### Legacy method (deprecated_checker.py)\n\n```bash\n# Check current directory\npython deprecated_checker.py\n\n# Check specific directory\npython deprecated_checker.py --path /path/to/project\n\n# Export to JSON\npython deprecated_checker.py --export json\n\n# Export to YAML\npython deprecated_checker.py --export yaml\n```\n\n## Example Output\n\n### Repository Analysis\n```\n\u2713 Analysis complete! Found 3 deprecated packages\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Package \u2502 Deprecated since \u2502 Reason \u2502 Source \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 pycrypto \u2502 2020-01-01 \u2502 Package deprecated \u2502 pypi_analysis \u2502\n\u2502 bottle \u2502 2021-01-01 \u2502 Package deprecated \u2502 pypi_analysis \u2502\n\u2502 six \u2502 2022-01-01 \u2502 Package deprecated \u2502 pypi_analysis \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### Dependency Check\n```\nChecking deprecated dependencies...\n\nFound deprecated packages:\n \u2022 django-cors-headers==3.14.0 \u2192 django-cors-headers>=4.0.0\n \u2022 requests==2.28.0 \u2192 httpx>=0.24.0 (recommended)\n\nSafe packages:\n \u2022 fastapi==0.104.0\n \u2022 pydantic==2.4.0\n```\n\n## Key Features\n\n### Dynamic Repository Analysis\n- Automatically detects all dependencies in your project\n- Checks each package against PyPI for deprecation status\n- Builds database specifically for your project's packages\n- Falls back to static database if no deprecated packages found\n\n### Comprehensive Database\n- Updates from multiple sources: PyPI, GitHub, security advisories\n- Includes hundreds of known deprecated packages\n- Regular updates via scheduler\n- Export/import capabilities\n\n### Cross-Version Compatibility\n- Tested with Python 3.10.0, 3.12.0, and 3.12.10\n- Compatible with modern Python packaging standards\n- Works with both legacy and modern dependency files\n\n## Project Structure\n\n```\nis-deprecated-or-not/\n\u251c\u2500\u2500 core/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 checker.py # Main checking logic\n\u2502 \u251c\u2500\u2500 config_manager.py # Configuration management\n\u2502 \u251c\u2500\u2500 data_collector.py # Data collection from multiple sources\n\u2502 \u251c\u2500\u2500 database.py # Dynamic database management\n\u2502 \u251c\u2500\u2500 parser.py # Dependency file parsing\n\u2502 \u251c\u2500\u2500 repository_analyzer.py # Repository analysis engine\n\u2502 \u2514\u2500\u2500 scheduler.py # Update scheduler\n\u251c\u2500\u2500 data/\n\u2502 \u2514\u2500\u2500 deprecated_packages.yaml\n\u251c\u2500\u2500 utils/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2514\u2500\u2500 cli.py # CLI interface\n\u251c\u2500\u2500 config/\n\u2502 \u2514\u2500\u2500 collector_config.yaml\n\u251c\u2500\u2500 cache/ # Data cache\n\u251c\u2500\u2500 logs/ # Logs\n\u251c\u2500\u2500 demo_cli.py # Demonstration script\n\u251c\u2500\u2500 deprecated_checker.py # Legacy interface\n\u251c\u2500\u2500 CLI_GUIDE.md # CLI guide\n\u2514\u2500\u2500 INSTALL.md # Installation guide\n```\n\n## Documentation\n\n- [CLI Guide](CLI_GUIDE.md) - Detailed guide for using the CLI interface\n- [Installation Guide](INSTALL.md) - Installation and setup instructions\n- [Testing Guide](TESTING_GUIDE.md) - Testing and development information\n- [PyPI Publishing Guide](PYPI_PUBLISHING_GUIDE.md) - Publishing to PyPI\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n## License\n\nMIT License - see LICENSE file for details. \n",
"bugtrack_url": null,
"license": null,
"summary": "Tool for checking deprecated dependencies in Python projects and suggesting alternatives",
"version": "1.0.31",
"project_urls": {
"Changelog": "https://github.com/julicq/is-deprecated-or-not/releases",
"Documentation": "https://github.com/julicq/is-deprecated-or-not#readme",
"Homepage": "https://github.com/julicq/is-deprecated-or-not",
"Issues": "https://github.com/julicq/is-deprecated-or-not/issues",
"Repository": "https://github.com/julicq/is-deprecated-or-not"
},
"split_keywords": [
"dependencies",
" deprecated",
" security",
" python",
" cli"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "47886b11090b6b4c76f11c46e1207084eaf53d638ba3cc0b87a7f6472db27dd0",
"md5": "4337a59996ac8a63983ab88b4ac72bbc",
"sha256": "8297e6a692b40b778f2809f857f1723a9a4b320e83f087595083f91319030d7d"
},
"downloads": -1,
"filename": "deprecated_checker-1.0.31-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4337a59996ac8a63983ab88b4ac72bbc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 28757,
"upload_time": "2025-08-03T19:46:46",
"upload_time_iso_8601": "2025-08-03T19:46:46.115038Z",
"url": "https://files.pythonhosted.org/packages/47/88/6b11090b6b4c76f11c46e1207084eaf53d638ba3cc0b87a7f6472db27dd0/deprecated_checker-1.0.31-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a021e4176d565efaf317779370510b85a535f2b3c45bf5611cd3455641d0ab76",
"md5": "47095139d90516eadbb640486e0c413b",
"sha256": "afc1f9509756dd2814d9749e4592c52744465c8b326af34dadbddc09356e5e99"
},
"downloads": -1,
"filename": "deprecated_checker-1.0.31.tar.gz",
"has_sig": false,
"md5_digest": "47095139d90516eadbb640486e0c413b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 32050,
"upload_time": "2025-08-03T19:46:47",
"upload_time_iso_8601": "2025-08-03T19:46:47.051018Z",
"url": "https://files.pythonhosted.org/packages/a0/21/e4176d565efaf317779370510b85a535f2b3c45bf5611cd3455641d0ab76/deprecated_checker-1.0.31.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 19:46:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "julicq",
"github_project": "deprecated-checker",
"github_not_found": true,
"lcname": "deprecated-checker"
}