将上游conda通道镜像到本地目录
conda-mirror-ng的Python项目详细描述
康达镜ng
将上游conda通道镜像到本地目录。在
安装
conda-mirror-ng
在PyPI和conda forge上可用。在
安装方式:
pip install conda-mirror-ng
或者:
conda install conda-mirror-ng -c conda-forge
兼容性
conda-mirror-ng
故意是Py3.6+专用包
命令行接口
conda-mirror-ng
的CLI接口
usage: conda-mirror-ng [-h] [--upstream-channel UPSTREAM_CHANNEL]
[--target-directory TARGET_DIRECTORY]
[--temp-directory TEMP_DIRECTORY] [--platform PLATFORM]
[-v] [--config CONFIG] [--pdb] [--num-threads NUM_THREADS]
[--version] [--dry-run] [--no-validate-target]
[--minimum-free-space MINIMUM_FREE_SPACE]
CLI interface for conda-mirror-ng
optional arguments:
-h, --help show this help message and exit
--upstream-channel UPSTREAM_CHANNEL
The target channel to mirror. Can be a channel on
anaconda.org like "conda-forge" or a full qualified
channel like "https://repo.continuum.io/pkgs/free/"
--target-directory TARGET_DIRECTORY
The place where packages should be mirrored to
--temp-directory TEMP_DIRECTORY
Temporary download location for the packages. Defaults
to a randomly selected temporary directory. Note that
you might need to specify a different location if your
default temp directory has less available space than
your mirroring target
--platform PLATFORM The OS platform(s) to mirror. one of: {'linux-64',
'linux-32','osx-64', 'win-32', 'win-64'}
-v, --verbose logging defaults to error/exception only. Takes up to
three '-v' flags. '-v': warning. '-vv': info. '-vvv':
debug.
--config CONFIG Path to the yaml config file
--pdb Enable PDB debugging on exception
--num-threads NUM_THREADS
Num of threads for validation. 1: Serial mode. 0: All
available.
--version Print version and quit
--dry-run Show what will be downloaded and what will be removed.
Will not validate existing packages
--no-validate-target Skip validation of files already present in target-
directory
--minimum-free-space MINIMUM_FREE_SPACE
Threshold for free diskspace. Given in megabytes.
示例用法
警告:调用此命令将拉~10GB,至少需要一个小时
conda-mirror-ng --upstream-channel conda-forge --target-directory local_mirror --platform linux-64
更多详细信息
黑名单/白名单配置
示例-确认.yaml公司名称:
^{pr2}$blacklist
删除与中列出的条件匹配的包
上游回购数据。在
whitelist
re包含黑名单中与
白名单条件。在
黑名单和白名单都有字典的清单。钥匙在
dictionary必须是repodata.json
元数据中的值。价值观是
(unix)全局匹配。请点击此处获取上游的完整repodata
“默认”频道:
http://conda.anaconda.org/anaconda/linux-64/repodata.json
以下是repodata['packages'中一个条目的内容
{'botocore-1.4.10-py34_0.tar.bz2':{'arch':'x86_64','binstar':{'channel':'main','owner_id':'55fc8527d3234d09d4951c71','package_id':'56b88ea1be1cc95a362b218e'},'build':'py34_0','build_number':0,'date':'2016-04-11','depends':['docutils >=0.10','jmespath >=0.7.1,<1.0.0','python 3.4*','python-dateutil >=2.1,<3.0.0'],'license':'Apache','md5':'b35a5c1240ba672e0d9d1296141e383c','name':'botocore','platform':'linux','requires':[],'size':1831799,'version':'1.4.10'}}
有关详细信息,请参阅conda_mirror:match
函数中的实现详细信息
信息。在
常见使用模式
镜像仅一个特定的软件包
如果您想将上面列出的botocore包与 配置,那么您可以使用下面的配置来第一个黑名单 all包,然后只包括botocore包:
blacklist:-name:"*"whitelist:-name:botocoreversion:1.4.10build:py34_0
镜像除agpl许可证之外的所有内容
blacklist:-license:"*agpl*"
仅镜像python 3包
blacklist:-name:"*"whitelist:-build:"*py3*"
测试
安装测试要求
注意:将从pip安装包
$ pip install -r test-requirements.txt
Requirement already satisfied: pytest in /home/edill/miniconda/lib/python3.5/site-packages (from -r test-requirements.txt (line 1))
Requirement already satisfied: coverage in /home/edill/miniconda/lib/python3.5/site-packages (from -r test-requirements.txt (line 2))
Requirement already satisfied: pytest-ordering in /home/edill/miniconda/lib/python3.5/site-packages (from -r test-requirements.txt (line 3))
Requirement already satisfied: py>=1.4.29 in /home/edill/miniconda/lib/python3.5/site-packages (from pytest->-r test-requirements.txt (line 1))
运行测试,使用coverage
工具调用。
$ coverage run run_tests.py
sys.argv=['run_tests.py']
========================================= test session starts ==========================================
platform linux -- Python 3.5.3, pytest-3.0.6, py-1.4.31, pluggy-0.4.0 -- /home/edill/miniconda/bin/python
cachedir: .cache
rootdir: /home/edill/dev/maxpoint/github/conda-mirror, inifile:
plugins: xonsh-0.5.2, ordering-0.4
collected 4 items
test/test_conda_mirror.py::test_match PASSED
test/test_conda_mirror.py::test_cli[https://repo.continuum.io/pkgs/free-linux-64] PASSED
test/test_conda_mirror.py::test_cli[conda-forge-linux-64] PASSED
test/test_conda_mirror.py::test_handling_bad_package PASSED
======================================= 4 passed in 4.41 seconds =======================================
释放
释放你需要三件事
- 提交conda mirror ng的权限
- 访问PyPI上的
conda-mirror-ng
- 在conda forge上访问
conda-mirror-ng-feedstock
在您拥有了这三个特性之后,添加一个git标记,使用
twine
并合并conda forge上自动生成的PR。在
- 项目
标签: