从pyproject.toml生成environment.yml
项目描述
beni
常见名称:玻利维亚安conda,Beni 安conda
Eunectes beniensis 是一种无毒的 boa 物种,仅存在于玻利维亚东北部。
长达四米的 Eunectes beniensis 最初被认为是由绿色和黄色安conda杂交的结果,但后来确定是一种独特的物种。由于信息缺乏和与 Eunectes notaeus 的外观相似,其分类地位尚不明确。它与 Eunectes notaeus 和 Eunectes deschauenseei 密切相关。
什么?
这是一个特定的工具,用于方便使用 flit 和 conda 的特定工作流程。假设是
- 您有一个包含至少一个 Python 包的仓库。
- 您使用
PEP 621
和/或flit
和pyproject.toml
来描述您的依赖项。 - 您想使用 Conda 来管理本地开发,但您想在 PyPi 上发布您的包。
- 您想生成一个本地开发使用的
environment.yml
文件,该文件将尽可能通过 Conda 安装您的 Pypi 依赖项。
没有这个工具,您必须手动将所有 pyproject.toml
文件与 environment.yml
保持一致,这很容易出错且耗时。
未解决的问题
- 如果 conda forge 的名称与 pypi 名称不同怎么办?我们应该保留这些映射的列表。
- 我们如何使用
pyproject.toml
自动生成 conda forge 菜单? - 将来,conda 能否以某种方式从
pyproject.toml
文件中读取以创建一个环境?
用法
pip安装beni
- 运行
beni <pyproject.toml 路径> [<另一个 pyproject.toml 路径>] > binder/environment.yml
生成环境文件。它会将所有您的 conda forge 软件包需求添加到此环境,并以第一个pyproject.toml
模块的名称命名。每个需求都检查是否有等效的 conda forge 软件包 - 将
conda env create -f bind/environment.yml && conda activate <模块名称> && flit install --symlink
添加到您的 README 中作为开发设置。
示例
$ beni -h
usage: beni [-h] [--deps {all,production,develop,extras}] [--extras extra1,...]
[--ignore [foo [bar ...]]]
pyproject.toml [pyproject.toml ...]
Generate an environment.yml.
positional arguments:
pyproject.toml flit config files
optional arguments:
-h, --help show this help message and exit
--deps {all,production,develop,extras}
Which dependencies to emit. 'production' means no extras,
'develop' means the extras 'test', 'doc', and 'dev', 'all' means all extras,
and 'extras' means the ones specified in `--extras` or all extras if `--extras` is not given.
--extras extra1,... Install the dependencies of these (comma separated) extras additionally to the ones
implied by --deps. --extras=all can be useful in combination with --deps=production.
--ignore [foo [bar ...]]
Conda packages to ignore
$ cat pyproject.toml
[tool.flit.metadata]
requires = [
"typing_extensions",
"typing_inspect",
"python-igraph=0.8.0"
]
requires-python = ">=3.7"
[tool.flit.metadata.requires-extra]
test = [
"pytest",
"pytest-cov",
"pytest-mypy",
"pytest-randomly",
"pytest-xdist",
"pytest-testmon",
"pytest-pudb",
"mypy"
]
doc = [
"sphinx",
"sphinx-autodoc-typehints",
"sphinx_rtd_theme",
'recommonmark',
"nbsphinx",
"ipykernel",
"IPython",
"sphinx-autobuild"
]
dev = [
"jupyterlab>=1.0.0",
"nbconvert",
"pudb"
]
$ beni pyproject.toml
name: metadsl
channels:
- conda-forge
dependencies:
- python>=3.7
- pip
- pip:
- flit
- typing_extensions
- typing_inspect
- python-igraph=0.8.0
- pytest
- pytest-cov
- pytest-mypy
- pytest-randomly
- pytest-xdist
- pytest-testmon
- pytest-pudb
- mypy
- jupyterlab>=1.0.0
- nbconvert
- pudb
开发
conda env create -f environment.yml
conda activate beni
pre-commit install
flit install --symlink
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。
源分发
beni-0.4.4.tar.gz (8.1 kB 查看散列)
构建分发
beni-0.4.4-py3-none-any.whl (7.4 kB 查看散列)
关闭
beni-0.4.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cb33ca22546518e69e273cbbb54958e8ae924f20b65a5bb27e3877aaee815c54 |
|
MD5 | a37991b3b4175f0f04c3237c4d883d16 |
|
BLAKE2b-256 | 276d4781e65914fde679cccd9982c66516fd11e67bde2d3dbfecd5bb764c9d0c |
关闭
beni-0.4.4-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2334b1d5b1a20751bb5265ce6f7ab56ed284cc4447b6f44f21b20617b05b1842 |
|
MD5 | e3157511eeb599f8102f6412a3122440 |
|
BLAKE2b-256 | aab900457776eeb814219c7a80e4e281009c8528c3bad28442cbdede557fe3f2 |