Skip to main content

Safely merge multiple Python virtual environments by reconstructing dependencies.

Project description

PyPI Python License Status Tests

pyvenvmerge

A Python CLI utility for safely merging multiple virtual environments through deterministic dependency reconstruction instead of direct venv modification.


Features

Environment Analysis

  • Virtual environment validation
  • Python version compatibility checks
  • Dependency extraction using pip freeze

Dependency Resolution

  • PEP 508 compliant parsing
  • Specifier-based merging
  • Conflict detection and resolution
  • Semantic dependency validation

Merge Intelligence

  • Dependency graph analysis
  • Conflict classification
  • Risk analysis and compatibility scoring
  • Dry-run diagnostics

Dependency Support

  • PyPI packages
  • Editable installs (-e)
  • Git dependencies (git+...)
  • File dependencies (package @ file://...)

Reliability

  • Deterministic environment rebuild
  • Two-phase installation pipeline
  • Integrity verification using pip check
  • JSON merge reports

Reporting & Reproducibility

  • Structured merge report generation
  • JSON report export
  • Deterministic lockfile export
  • Resuable report generation layer
  • Serializable merge metadata artifacts

Example

pyvenvmerge envA envB --dry-run

Example output:

Compatibility Score : 82/100
Risk Level          : MEDIUM

Warnings:
⚠ pandas requires numpy<2.0 but selected version is 2.4.2

Installation

pip install pyvenvmerge

Usage

pyvenvmerge envA envB -o mergedEnv

Save structured data

pyvenvmerge envA envB --dry-run --save-report report.json

Export deterministic lockfile

pyvenvmerge envA envB --dry-run --export-lock requirements.lock

Conflict Resolution Strategies

pyvenvmerge envA envB -o mergedEnv --strategy highest
# default

pyvenvmerge envA envB -o mergedEnv --strategy strict

pyvenvmerge envA envB -o mergedEnv --strategy unpinned

Dry-Run Mode

Preview the merge plan without creating an environment:

pyvenvmerge envA envB --dry-run

JSON Report

pyvenvmerge envA envB --dry-run --report json

Limitations

Current limitations:

  • No deep resolution for Git/file dependencies.
  • Environment markers are partially evaluated.
  • Extra merging is basic.
  • Advanced specifiers such as !=, ~=, === are not fully optimized yet.
  • Complex specifier combination are not fully optimized yet.

These will be improved in future versions.


Documentation

Detailed documentation:

ARCHITECTURE CHANGELOG


License

MIT License

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

pyvenvmerge-1.0.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

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

pyvenvmerge-1.0.0-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file pyvenvmerge-1.0.0.tar.gz.

File metadata

  • Download URL: pyvenvmerge-1.0.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyvenvmerge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 df23869652b75ed067b7e3c665d17cff8d8662cce0370667549d70440dd19935
MD5 490f1e1d8df779232854f13b5cdbb4fb
BLAKE2b-256 1c7762477379304f6b7764af4f413583c0c2624a715771358014bfb5572f236f

See more details on using hashes here.

File details

Details for the file pyvenvmerge-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyvenvmerge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyvenvmerge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6fc7ac481e42309bb0a0fd6de30fafc5dab7df1857c3d3ebd3d0c4061dffb6c5
MD5 a59424f0b62a1dcca655841f71f3d0b5
BLAKE2b-256 179927d7a858948d905a221542f2c43c072de924b09a726245c78389efb83e7e

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