deprecated-checker


Namedeprecated-checker JSON
Version 1.0.31 PyPI version JSON
download
home_pagehttps://github.com/julicq/deprecated-checker
SummaryTool for checking deprecated dependencies in Python projects and suggesting alternatives
upload_time2025-08-03 19:46:47
maintainerNone
docs_urlNone
authorIulian Pavlov
requires_python>=3.8
licenseNone
keywords dependencies deprecated security python cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.99298s