conda-project


Nameconda-project JSON
Version 0.4.2 PyPI version JSON
download
home_pageNone
SummaryTool for encapsulating, running, and reproducing projects with conda environments
upload_time2024-06-04 04:55:49
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseBSD-3-Clause
keywords conda-project
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # conda-project

![GitHub Release Date](https://img.shields.io/github/release-date/conda-incubator/conda-project?style=for-the-badge&logo=github)
![GitHub Release](https://img.shields.io/github/v/release/conda-incubator/conda-project?style=for-the-badge&logo=github)


[![PyPI](https://img.shields.io/pypi/v/conda-project?style=for-the-badge&logo=pypi&color=blue)](https://pypi.org/project/conda-project/)
![PyPI - Downloads](https://img.shields.io/pypi/dm/conda-project?style=for-the-badge&logo=pypi)

[![Conda-Forge](https://img.shields.io/conda/v/conda-forge/conda-project?style=for-the-badge&logo=conda-forge&color=blue)](https://github.com/conda-forge/conda-project-feedstock)
![Conda Downloads](https://img.shields.io/conda/d/conda-forge/conda-project?style=for-the-badge&logo=conda-forge&label=downloads)


[![Docs](https://img.shields.io/github/deployments/conda-incubator/conda-project/github-pages?style=for-the-badge&label=docs&logo=github)](https://conda-incubator.github.io/conda-project)


![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/conda-incubator/conda-project/main.yaml?style=for-the-badge&label=tests&logo=github)
![Codecov](https://img.shields.io/codecov/c/github/conda-incubator/conda-project?style=for-the-badge&logo=codecov)
[![pre-commit.ci status](https://img.shields.io/badge/pre--commit-enabled-brightgreen?style=for-the-badge&logo=pre-commit)](https://results.pre-commit.ci/latest/github/conda-incubator/conda-project/main)


<!-- ![defaults](https://img.shields.io/conda/v/anaconda/conda-project?style=for-the-badge&logo=anaconda) -->

Tool for encapsulating, running, and reproducing projects with conda environments.


## Why?

Sharing your work is more than sharing your code in a script file or notebook. To make your work properly reproducible, it is necessary to include the list of required third-party dependencies, specifications for how to run your code, and
any other files that it may need.

See [8 Levels of Reproduciblity](https://www.anaconda.com/blog/8-levels-of-reproducibility) for an in-depth
discussion of the differences between "It works for me." to "I've made sure that anyone can reliably execute my work."
Conda Project is a framework that aims to help you to ensure a high degree of reproducibility in the projects you
create.

### How is this different from Anaconda Project?

This package is intended as a successor to [Anaconda Project](https://github.com/Anaconda-Platform/anaconda-project).
We chose to create Conda Project to foster community involvement, adopt newer standards like conda-lock, and provide
a conda-native workflow. A standalone conversion script is provided in this repo at `scripts/ap-to-cp.py`. You can run
it as follows. By default it will write Conda Project files into your current working directory. You can read anaconda-project.yml file from any other directory or output Conda Project files to any other directory.

You'll need `pydantic` and `ruamel.yaml` installed.

```text
python ap-to-cp.py /path/to/anaconda-project.yml [/output/directory]
```

## Installation

You can install conda-project using the conda package manager:

```text
conda install -c conda-forge conda-project
```

## Quick start

Let's start a new project using Python, Pandas, and Jupyter Notebooks.
The commands below will work on terminals in Mac, Linux, and Windows.
For Windows you can use either `cmd.exe` or Powershell.

We first create a directory and initialize a new project, which will create a new conda environment and lock the dependencies:

```text
(base) > conda project init --directory my-project python=3.9 notebook pandas
Locking dependencies for environment default on platforms osx-64, osx-arm64, linux-64, win-64: done
Project created at /Users/adefusco/Development/conda-incubator/conda-project/examples/my-project
```

The goal of Conda Project is to maintain a conda enviroment specifically for the new `my-project` directory.
You'll see that this directory contains it's own `environment.yml` file a [Conda Lock](https://conda.github.io/conda-lock/) file and a `conda-project.yml`
file. You can learn more about these files in the [User Guide](https://conda-incubator.github.io/conda-project/user_guide.html)

```text
(base) > tree ./
├── conda-project.yml
├── default.conda-lock.yml
├── environment.yml
```

You can activate the environment, which will install packages locally to this project according to the lock file.
Notice that after running `conda project activate` the shell prompt switches to `(default)`, which is the name
of the local environment for this project.

```text
(base) > cd my-project
(base) > conda project activate

Downloading and Extracting Packages


Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
environment created at /Users/adefusco/Development/conda-incubator/conda-project/examples/my-project/envs/default
## Project environment default activated in a new shell.
## Exit this shell to de-activate.
```

And in the activated environment you can launch editors or run commands. For example, since we included
the `notebook` package we can launch Jupyter Notebook from the activated environment:

```text
(default) > jupyter notebook
[I 12:23:03.632 NotebookApp] Serving notebooks from local directory: /Users/adefusco/Development/conda-incubator/conda-project/examples/my-project
[I 12:23:03.632 NotebookApp] Jupyter Notebook 6.5.2 is running at:
[I 12:23:03.632 NotebookApp] http://localhost:8888/?token=1208a3441039526c03b44c233f07436321ad4fd3cced443d
[I 12:23:03.632 NotebookApp]  or http://127.0.0.1:8888/?token=1208a3441039526c03b44c233f07436321ad4fd3cced443d
[I 12:23:03.632 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:23:03.635 NotebookApp]
```

Continue reading the [User Guide](https://conda-incubator.github.io/conda-project/user_guide.html) to learn more.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "conda-project",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "conda-project",
    "author": null,
    "author_email": "Albert DeFusco <adefusco@anaconda.com>, Matt Kramer <mkramer@anaconda.com>",
    "download_url": "https://files.pythonhosted.org/packages/b3/75/265b355fe692310edce5cf38e65a714086d4c3906d89b198667890178125/conda_project-0.4.2.tar.gz",
    "platform": null,
    "description": "# conda-project\n\n![GitHub Release Date](https://img.shields.io/github/release-date/conda-incubator/conda-project?style=for-the-badge&logo=github)\n![GitHub Release](https://img.shields.io/github/v/release/conda-incubator/conda-project?style=for-the-badge&logo=github)\n\n\n[![PyPI](https://img.shields.io/pypi/v/conda-project?style=for-the-badge&logo=pypi&color=blue)](https://pypi.org/project/conda-project/)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/conda-project?style=for-the-badge&logo=pypi)\n\n[![Conda-Forge](https://img.shields.io/conda/v/conda-forge/conda-project?style=for-the-badge&logo=conda-forge&color=blue)](https://github.com/conda-forge/conda-project-feedstock)\n![Conda Downloads](https://img.shields.io/conda/d/conda-forge/conda-project?style=for-the-badge&logo=conda-forge&label=downloads)\n\n\n[![Docs](https://img.shields.io/github/deployments/conda-incubator/conda-project/github-pages?style=for-the-badge&label=docs&logo=github)](https://conda-incubator.github.io/conda-project)\n\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/conda-incubator/conda-project/main.yaml?style=for-the-badge&label=tests&logo=github)\n![Codecov](https://img.shields.io/codecov/c/github/conda-incubator/conda-project?style=for-the-badge&logo=codecov)\n[![pre-commit.ci status](https://img.shields.io/badge/pre--commit-enabled-brightgreen?style=for-the-badge&logo=pre-commit)](https://results.pre-commit.ci/latest/github/conda-incubator/conda-project/main)\n\n\n<!-- ![defaults](https://img.shields.io/conda/v/anaconda/conda-project?style=for-the-badge&logo=anaconda) -->\n\nTool for encapsulating, running, and reproducing projects with conda environments.\n\n\n## Why?\n\nSharing your work is more than sharing your code in a script file or notebook. To make your work properly reproducible, it is necessary to include the list of required third-party dependencies, specifications for how to run your code, and\nany other files that it may need.\n\nSee [8 Levels of Reproduciblity](https://www.anaconda.com/blog/8-levels-of-reproducibility) for an in-depth\ndiscussion of the differences between \"It works for me.\" to \"I've made sure that anyone can reliably execute my work.\"\nConda Project is a framework that aims to help you to ensure a high degree of reproducibility in the projects you\ncreate.\n\n### How is this different from Anaconda Project?\n\nThis package is intended as a successor to [Anaconda Project](https://github.com/Anaconda-Platform/anaconda-project).\nWe chose to create Conda Project to foster community involvement, adopt newer standards like conda-lock, and provide\na conda-native workflow. A standalone conversion script is provided in this repo at `scripts/ap-to-cp.py`. You can run\nit as follows. By default it will write Conda Project files into your current working directory. You can read anaconda-project.yml file from any other directory or output Conda Project files to any other directory.\n\nYou'll need `pydantic` and `ruamel.yaml` installed.\n\n```text\npython ap-to-cp.py /path/to/anaconda-project.yml [/output/directory]\n```\n\n## Installation\n\nYou can install conda-project using the conda package manager:\n\n```text\nconda install -c conda-forge conda-project\n```\n\n## Quick start\n\nLet's start a new project using Python, Pandas, and Jupyter Notebooks.\nThe commands below will work on terminals in Mac, Linux, and Windows.\nFor Windows you can use either `cmd.exe` or Powershell.\n\nWe first create a directory and initialize a new project, which will create a new conda environment and lock the dependencies:\n\n```text\n(base) > conda project init --directory my-project python=3.9 notebook pandas\nLocking dependencies for environment default on platforms osx-64, osx-arm64, linux-64, win-64: done\nProject created at /Users/adefusco/Development/conda-incubator/conda-project/examples/my-project\n```\n\nThe goal of Conda Project is to maintain a conda enviroment specifically for the new `my-project` directory.\nYou'll see that this directory contains it's own `environment.yml` file a [Conda Lock](https://conda.github.io/conda-lock/) file and a `conda-project.yml`\nfile. You can learn more about these files in the [User Guide](https://conda-incubator.github.io/conda-project/user_guide.html)\n\n```text\n(base) > tree ./\n\u251c\u2500\u2500 conda-project.yml\n\u251c\u2500\u2500 default.conda-lock.yml\n\u251c\u2500\u2500 environment.yml\n```\n\nYou can activate the environment, which will install packages locally to this project according to the lock file.\nNotice that after running `conda project activate` the shell prompt switches to `(default)`, which is the name\nof the local environment for this project.\n\n```text\n(base) > cd my-project\n(base) > conda project activate\n\nDownloading and Extracting Packages\n\n\nDownloading and Extracting Packages\n\nPreparing transaction: done\nVerifying transaction: done\nExecuting transaction: done\nenvironment created at /Users/adefusco/Development/conda-incubator/conda-project/examples/my-project/envs/default\n## Project environment default activated in a new shell.\n## Exit this shell to de-activate.\n```\n\nAnd in the activated environment you can launch editors or run commands. For example, since we included\nthe `notebook` package we can launch Jupyter Notebook from the activated environment:\n\n```text\n(default) > jupyter notebook\n[I 12:23:03.632 NotebookApp] Serving notebooks from local directory: /Users/adefusco/Development/conda-incubator/conda-project/examples/my-project\n[I 12:23:03.632 NotebookApp] Jupyter Notebook 6.5.2 is running at:\n[I 12:23:03.632 NotebookApp] http://localhost:8888/?token=1208a3441039526c03b44c233f07436321ad4fd3cced443d\n[I 12:23:03.632 NotebookApp]  or http://127.0.0.1:8888/?token=1208a3441039526c03b44c233f07436321ad4fd3cced443d\n[I 12:23:03.632 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n[C 12:23:03.635 NotebookApp]\n```\n\nContinue reading the [User Guide](https://conda-incubator.github.io/conda-project/user_guide.html) to learn more.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Tool for encapsulating, running, and reproducing projects with conda environments",
    "version": "0.4.2",
    "project_urls": {
        "AnacondaRecipes Feedstock": "https://github.com/AnacondaRecipes/conda-project-feedstock",
        "Conda-Forge Feedstock": "https://github.com/conda-forge/conda-project-feedstock",
        "Issue Tracker": "https://github.com/conda-incubator/conda-project/issues",
        "documentation": "https://conda-incubator.github.io/conda-project/user_guide.html",
        "homepage": "https://github.com/conda-incubator/conda-project",
        "repository": "https://github.com/conda-incubator/conda-project"
    },
    "split_keywords": [
        "conda-project"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f33ea548d42e64c4928ae60b03339c955ad115fdc5d049cdaf07112b789d1862",
                "md5": "b6d5a796e5b36d3c8624d6cd13b8f6b8",
                "sha256": "a20ae5c8fed8a2a0245846929021cfe856212b176618bf8ac63bfe67ff127ce8"
            },
            "downloads": -1,
            "filename": "conda_project-0.4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b6d5a796e5b36d3c8624d6cd13b8f6b8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 28082,
            "upload_time": "2024-06-04T04:55:48",
            "upload_time_iso_8601": "2024-06-04T04:55:48.319699Z",
            "url": "https://files.pythonhosted.org/packages/f3/3e/a548d42e64c4928ae60b03339c955ad115fdc5d049cdaf07112b789d1862/conda_project-0.4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b375265b355fe692310edce5cf38e65a714086d4c3906d89b198667890178125",
                "md5": "9ea2668c05e17b8b2d88039e37f04858",
                "sha256": "3a370742ebb1df6927caf5ba97b2ab76a83ebb3116b9d2f3350f3bd1ebae2c1e"
            },
            "downloads": -1,
            "filename": "conda_project-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "9ea2668c05e17b8b2d88039e37f04858",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 24499,
            "upload_time": "2024-06-04T04:55:49",
            "upload_time_iso_8601": "2024-06-04T04:55:49.932729Z",
            "url": "https://files.pythonhosted.org/packages/b3/75/265b355fe692310edce5cf38e65a714086d4c3906d89b198667890178125/conda_project-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-04 04:55:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AnacondaRecipes",
    "github_project": "conda-project-feedstock",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "lcname": "conda-project"
}
        
Elapsed time: 0.48242s