Skip to main content

pixi-to-conda-lock converts a pixi.lock file to a conda-lock.yml file.

Project description

pixi-to-conda-lock

Build Coverage GitHub Stars PyPI License Downloads Open Issues

pixi-to-conda-lock is a Python utility designed to bridge the gap between the lightning-fast pixi lock and the traditionally slow generation of conda-lock files. By converting your fast-generated pixi.lock file into a fully functional conda-lock.yml, you can enjoy rapid lock file creation without sacrificing the reproducibility of your conda environments.

Table of Contents

Features

  • Speed Boost: Generate a conda-lock.yml file quickly by leveraging the performance of pixi lock.
  • Accurate Conversion: Uses repodata to extract detailed package metadata from your pixi.lock file.
  • Multi-Environment Support: Convert all environments in your pixi.lock file or select specific ones.
  • Multi-Manager Support: Handles both conda and PyPI packages, ensuring comprehensive environment reproduction.
  • Fully Tested: Comprehensive tests ensure robust and reliable behavior.
  • Typed & Readable: Written in Python with full type annotations for clarity and maintainability.

Usage

Transform your fast-generated pixi.lock file into reproducible conda lock files with a single command:

pixi-to-conda-lock --help

This will display the help message:

usage: pixi-to-conda-lock [-h] [--output OUTPUT] [--environment ENVIRONMENT]
                          [--verbose]
                          pixi_lock

Convert pixi.lock to conda-lock.yml

positional arguments:
  pixi_lock             Path to pixi.lock file

options:
  -h, --help            show this help message and exit
  --output, -o OUTPUT   Output directory for conda-lock files (default:
                        current directory)
  --environment, -e ENVIRONMENT
                        Specific environment to convert (default: convert all
                        environments)
  --verbose, -v         Enable verbose logging

Installation

Install pixi-to-conda-lock via PyPI:

pip install pixi-to-conda-lock

Or clone the repository and install locally:

git clone https://github.com/basnijholt/pixi-to-conda-lock.git
cd pixi-to-conda-lock
pip install .

Examples

Basic Conversion

Convert all environments in your pixi.lock file to conda-lock files:

pixi-to-conda-lock /path/to/pixi.lock

This will generate:

  • conda-lock.yml for the default environment
  • <env_name>.conda-lock.yml for each additional environment

Converting a Specific Environment

Convert only a specific environment from your pixi.lock file:

pixi-to-conda-lock /path/to/pixi.lock --environment dev

This will generate only dev.conda-lock.yml (or conda-lock.yml if the environment is "default").

Specifying an Output Directory

Save the generated conda-lock files to a specific directory:

pixi-to-conda-lock /path/to/pixi.lock --output /path/to/output/dir

Enable Verbose Logging

To see detailed logs during the conversion process:

pixi-to-conda-lock /path/to/pixi.lock --verbose

How It Works

  1. Fast pixi.lock Parsing: Reads the fast-generated pixi.lock file, which is created quickly compared to generating a conda lock file directly.
  2. Environment Detection: Identifies all environments defined in the pixi.lock file or processes only the specified environment.
  3. Repodata Loading: Retrieves detailed package metadata from repodata files (either automatically discovered or from a user-specified directory).
  4. Package Processing: Processes both conda and PyPI packages for each environment. For conda packages, if repodata information isn't available, the tool falls back on URL parsing.
  5. Generating conda-lock.yml: Combines the gathered information to generate fully reproducible conda-lock files that mirror your original environments.

This approach ensures you get the speed benefits of pixi lock without compromising on the quality and reproducibility of your conda environments.


Support and Contributions

Contributions, bug reports, and feature suggestions are welcome! Please open an issue or submit a pull request on the GitHub repository.

Happy converting!

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

pixi_to_conda_lock-0.4.2.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

pixi_to_conda_lock-0.4.2-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file pixi_to_conda_lock-0.4.2.tar.gz.

File metadata

  • Download URL: pixi_to_conda_lock-0.4.2.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixi_to_conda_lock-0.4.2.tar.gz
Algorithm Hash digest
SHA256 1bedba7332530ed124d2495745e5ff9dc445d3a408cb7dd347594b29b8d18b35
MD5 1cabffd2e73ac9f7390f253e78e762d6
BLAKE2b-256 2784a8113d45216a5efc9e41455ce5daa646a8e5fd8c18b547261209f00a2f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixi_to_conda_lock-0.4.2.tar.gz:

Publisher: release.yml on basnijholt/pixi-to-conda-lock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pixi_to_conda_lock-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pixi_to_conda_lock-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 006d937588fcbfdbbba4652869905703b0a81a02d7714970414e7f2005ae8717
MD5 c84d3d343bd9731db8bfd9da305a2043
BLAKE2b-256 dbc6cd352698b991a0e131ced04940d92220f98023c49265aa9312caeafab9ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixi_to_conda_lock-0.4.2-py3-none-any.whl:

Publisher: release.yml on basnijholt/pixi-to-conda-lock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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