Skip to main content

A package to analyze PyPI package API evolution and lifecycle

Project description

PyPevol - Python Package Evolution Analysis Tool

A comprehensive tool for analyzing PyPI package API evolution and lifecycle. This package fetches information from PyPI, analyzes wheels and sources, and provides detailed reports about when APIs were introduced and removed across different versions.

Features

  • PyPI Integration: Fetch package metadata and releases from PyPI
  • Wheel Analysis: Download and analyze wheel files to extract API information
  • Source Code Analysis: Parse Python source code to identify APIs
  • Evolution Tracking: Track API changes across package versions
  • Visualization: Generate interactive reports and visualizations
  • CLI Interface: Easy-to-use command-line interface
  • Web Dashboard: Interactive web interface for exploring results

Installation

pip install pypevol

For development:

pip install -e ".[dev]"

Quick Start

Command Line Usage

# Analyze a single package
pypevol analyze requests

# Analyze with specific version range
pypevol analyze requests --from-version 2.20.0 --to-version 2.28.0

# Generate HTML report
pypevol analyze requests --output report.html --format html

# Analyze multiple packages
pypevol analyze requests flask django --output results/

Python API Usage

from pypevol import PackageAnalyzer

# Create analyzer
analyzer = PackageAnalyzer()

# Analyze package evolution
result = analyzer.analyze_package('requests')

# Get API changes
api_changes = result.get_api_changes()

# Generate report
report = result.generate_report(format='html')

API Evolution Analysis

PyPevol tracks the following API elements:

  • Functions: Top-level and module functions
  • Classes: Class definitions and inheritance
  • Methods: Instance and class methods
  • Properties: Class properties and descriptors
  • Constants: Module-level constants
  • Type Hints: Type annotations and their evolution

Output Formats

  • JSON: Machine-readable format for further processing
  • HTML: Interactive web report with visualizations
  • CSV: Tabular format for spreadsheet analysis
  • Markdown: Human-readable documentation format

Configuration

Create a .pypevol.yaml configuration file:

# Package analysis settings
analysis:
  include_private: false
  include_deprecated: true
  max_versions: 50

# Output settings
output:
  default_format: html
  include_source_links: true
  show_usage_examples: true

# Caching settings
cache:
  enabled: true
  directory: ~/.pypevol/cache
  max_size: 1GB

Examples

See the examples/ directory for detailed usage examples and tutorials.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run the test suite: pytest
  6. Submit a pull request

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypevol-0.2.2.tar.gz (848.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypevol-0.2.2-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

Details for the file pypevol-0.2.2.tar.gz.

File metadata

  • Download URL: pypevol-0.2.2.tar.gz
  • Upload date:
  • Size: 848.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pypevol-0.2.2.tar.gz
Algorithm Hash digest
SHA256 2a840d3f05782d53f3e55e7104751f98a95fad5c1d99776bfc7f769ea9dd15ad
MD5 57b7461b052ef7e40b6121a50b28cc3c
BLAKE2b-256 425c6da35f46d2a7fb39e51046db1df4d52894e743c55ea8544be26d3acd8eaa

See more details on using hashes here.

File details

Details for the file pypevol-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pypevol-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 38.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pypevol-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f745e669ea1e36eb60be3a1c74a2c68f8ce17905400d50a7ccc0ea3250b3a60a
MD5 b2ffa0b7010aba3ad5bc7414adf5a926
BLAKE2b-256 002a08b3158566df31e10a4f1aaea98507b80188c2e4d759960a29f31bbaa2ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page