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.3.tar.gz (13.9 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.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pixi_to_conda_lock-0.4.3.tar.gz
  • Upload date:
  • Size: 13.9 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.3.tar.gz
Algorithm Hash digest
SHA256 a54174591fa8bfb764e955ba9addd22e6e99120198c48f4b44c31c12d17d4738
MD5 61e56589d8d8de602f5c7f8d280b88d5
BLAKE2b-256 79d95fb6f7eb5215c178db9a1bb1a5f99add97e995579b1e1a5d3977798e23fb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pixi_to_conda_lock-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f9246e0e34ddfe7e7a79f209a15829d0b09fbd4cf1f95d2ee329fda512784dfe
MD5 f963b4a6274c905908654cc049630b76
BLAKE2b-256 05a4b12881e24700e1f4e5d54ff49f3a64bfab9115faf18ad84eb75f654b0871

See more details on using hashes here.

Provenance

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