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.4.tar.gz (14.4 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.4-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pixi_to_conda_lock-0.4.4.tar.gz
Algorithm Hash digest
SHA256 99ba722a5d20a40c145d10f982a3d7c6aac583eb1d065c357ed076493a90d466
MD5 03e1e68da11fb1778cef06d126884c5d
BLAKE2b-256 7bf5b9856809cf415575c62ca79ac5d90152df8f1782e66706b2f189233f9271

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixi_to_conda_lock-0.4.4.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.4-py3-none-any.whl.

File metadata

File hashes

Hashes for pixi_to_conda_lock-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ec3d352836a970e678da680f62f15df813ce786ffd7a5d69bd304bec6bcb8b41
MD5 5ef83a7458e18faf1abddf5e39755dbb
BLAKE2b-256 918bb10df86efb0a2a200719b2e8aeb03f8790c7faf65c97d2bf6104863960b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixi_to_conda_lock-0.4.4-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