将上游conda通道镜像到本地目录

conda-mirror-ng的Python项目详细描述


康达镜ng

Build Status

将上游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删除与中列出的条件匹配的包 上游回购数据。在

whitelistre包含黑名单中与 白名单条件。在

黑名单和白名单都有字典的清单。钥匙在 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 =======================================

释放

释放你需要三件事

  1. 提交conda mirror ng的权限
  2. 访问PyPI上的conda-mirror-ng
  3. 在conda forge上访问conda-mirror-ng-feedstock

在您拥有了这三个特性之后,添加一个git标记,使用 twine并合并conda forge上自动生成的PR。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段