混合内容管理器
hybridcontents的Python项目详细描述
杂合物
HybridContentManager
最初是由Quantopian作为pgcontents的一部分创建的;但是,HybridContentsManager
的使用仅限于{a2}的兼容性要求。这些限制包括postgres
依赖项,并且不支持最新的notebook版本(>;6)。在
在Viaduct中,我们将pgcontents专门用于HybridContentsManager
,并希望扩展其功能,因此我们创建了这个fork hybridcontents。在
参见相关的pgcontents问题:
- https://github.com/quantopian/pgcontents/issues/66
- https://github.com/quantopian/pgcontents/issues/50
- https://github.com/quantopian/pgcontents/issues/28
入门
先决条件:
- 使用Jupyter Notebook>;=4.0的Python安装。在
安装:
pip
pip install hybridcontents
Anaconda
^{pr2}$conda-forge
参见说明here
专长
- 为不同的目录混合和匹配不同的内容管理器
- 在不同的内容管理器之间轻松地移动文件(即本地文件到s3支持的管理器)
- 路径验证,以保持一致的命名方案和/或防止非法字符
使用
有关详细示例,请参见hybrid_manager_example.py
下面的代码片段创建了一个HybridContentsManager,该管理器具有两个具有不同内容管理器的目录。在
c=get_config()c.NotebookApp.contents_manager_class=HybridContentsManagerc.HybridContentsManager.manager_classes={"":FileContentsManager,"shared":S3ContentsManager}# Each item will be passed to the constructor of the appropriate content manager.c.HybridContentsManager.manager_kwargs={# Args for root FileContentsManager"":{"root_dir":read_only_dir},# Args for the shared S3ContentsManager directory"shared":{"access_key_id":...,"secret_access_key":...,"endpoint_url":...,"bucket":...,"prefix":...},}defonly_allow_notebooks(path):returnpath.endswith('.ipynb')# Only allow notebook files to be stored in S3c.HybridContentsManager.path_validators={"shared":only_allow_notebooks}
测试
要运行单元测试
tox
这将运行python版本2.7、3.6、3.7和jupyter笔记本版本4、5和6的所有单元测试。在
发布版本
- 在Github上创建新版本
- 更新
setup.py
中的版本 - 运行./scripts/pip_发布.sh在
- 更新版本
meta.yaml
- {a18}更新^
- 运行./scripts/anaconda_发布.sh在
- Conda Forge更新
- 项目
标签: