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.1.tar.gz (848.5 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.1-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pypevol-0.2.1.tar.gz
  • Upload date:
  • Size: 848.5 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.1.tar.gz
Algorithm Hash digest
SHA256 e432a8a325e69b4fe1c74ae2f9c550c1647e159392847007097fade7766d3a9c
MD5 a3f104e11ed77ec0c60470b1f56afcc0
BLAKE2b-256 cfe7a2a31cbccf50a63e584e416189a1f4e0332f9192d646be4963c549175170

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypevol-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e77cf6242b896edc87d6c2c801238a5566d798d42f7948281d0fe48d1bb7244e
MD5 997704e539b3fa1a30e3b4de8a53e453
BLAKE2b-256 2a72da8378967c60d1665883cec56d7e0ab2eaede9c2a7a3b8dcf2c8abb0e3b8

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