Experimental Features#
As new capability is being developed for Conda Project we will release features with the label Experimental, meaning that their behavior may change rapidly while we gather feedback from users. Please submit a ticket to have your voice heard.
Extract a project archive#
New in version 0.2.0
The Conda Project CLI commands lock
, check
, install
, activate
, run
are capable of extracting a project
archive, in formats like .zip
, .tar.gz
, .tar.bz2
, and others supported by
libarchive. The archive file can either be on the local filesystem or provided as
a fsspec-compatible URI. Note that you may need
separately install driver packages to download the archive from remote systems like S3, Github, Google Cloud Storage,
Azure, and others. See FSSpec github organization repositories for
more information. To pass specific parameters to the FSSpec driver use the --archive-storage-options
flag.
--project-archive PROJECT_ARCHIVE_FILE_OR_URL
EXPERIMENTAL: Extract and run directly from a project archive. The archive can be a local file or a fsspec compatible URL.
You may need to install appropriate driver packages to work with remote archives. Optionally, use --directory to set the
destination directory of the extracted project.
--archive-storage-options ARCHIVE_STORAGE_OPTIONS
EXPERIMENTAL: Comma separated list of fsspec storage_options for accessing a remote archive For example --archive-storage-
options username=<user>,password=<pass>
Here’s an example of running a project directly from an archive stored on S3. Note that s3fs
may not already be
installed with Conda Project. This will run the default command for the
cmds-and-vars example project.
First the archive is downloaded and the contents are extracted to a local directory called cmds-and-vars
. You
can change the output directory with the optional --directory
flag. Then the run
action is performed, in
this case on the default command.
❯ conda install -c conda-forge conda-project s3fs
❯ conda-project run --project-archive s3://conda-projects/cmds-and-vars.tar.gz --archive-storage-options anon=True
cmds-and-vars/.condarc
cmds-and-vars/README.md
cmds-and-vars/conda-lock.default.yml
cmds-and-vars/conda-project.yml
cmds-and-vars/environment.yml
Downloading and Extracting Packages
Downloading and Extracting Packages
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
environment created at /Users/adefusco/Desktop/cmds-and-vars/envs/default
bar
Run a command with an external environment#
New in version 0.2.0
There are times when it may be desirable to execute a defined or ad-hoc command on an environment that is not managed
by Conda Project. The --external-environment
flag will accept a named environment or the path to the environment
prefix.
--external-environment ENV_NAME_OR_PREFIX
EXPERIMENTAL: Specify the name or prefix path to a conda environment not declared in this project.
As of now you will still need to define an environments:
in the conda-project.yml file, but it can be empty.
name: test-command
environments: {}
variables:
FOO: 'bar'
commands:
default:
cmd: python -c 'import os,sys;foo=os.getenv("FOO");print(f"FOO is {foo}\nPython executable {sys.executable}")'
For example the default command in this project can be executed using my base
environment.
❯ conda-project run --external-environment base
FOO is bar
Python executable /Users/adefusco/Applications/miniconda3/bin/python