干酪棱镜

CheesePrism的Python项目详细描述


=====
奶酪棱柱体
=====


图片::https://secure.travis ci.org/whitmo/cheeseprism.png


一个用于管理静态python包索引的简单应用程序。它大量借用了'basket weaver
<;https://github.com/binarydudud/basketweaver>;``和'cheese'商场
<;git@github.com:binarydudududud/cheese\.git>;`。它利用了"pip
<;https://github.com/pypa/pypa/pip>;```和setuptools/`distribute
<;http://pypi.pypi.org/pypi/distribute>;``````````和setuptools和setuptools,用于各种包
管理任务。














<








<<



<

>>
e
$python cheeseprism.strap.pybundle new prism env




如果您已经在激活的virtualenv中,Prism将安装在那里。


2。pip从pypi安装包:

激活虚拟环境。然后在您选择的位置签出代码::

$git clone git://github.com/surveymonkey/cheeseprism.git

,然后安装::

$cd cheeseprism;pip install-e./

3。pip安装源代码:

RCE,要运行测试,首先安装
测试要求::

$cd cheeseprism
$pip install-r测试需要.txt

以及适合于测试和开发的静态文件服务器:


$paster serve development.ini

**您尚未安装源代码(即安装了
软件包或从strap文件中安装),您需要将
development.ini复制到方便的位置。

您还需要将ini key``cheeseprism.file_root``设置到希望索引文件所在的
目录。

此目录可能还不存在,或者可能是空目录。如果
目录包含格式良好的存档文件,它将根据找到的文件构建索引。




通过设置,您将需要在管理应用程序的wsgi主机和工业级文件服务器(例如nginx)之间拆分
服务。



>配置nginx
~~~~~~~~~~~~~~~~~

请参阅"doc/sample nginx.conf"并替换"alias cheeseprism/files;"和
"alias cheeseprism/static``与您的文件根和静态文件路径关联。

…待办事项:

have start-up-announce-static and-file-root(and-document)



serve-management app
~~~~~~~~~~~~~~~~~~~~~~

使用prod.ini(为您的设置编辑)进行最简单的服务。确保
删除诸如"pyramid.includes=pyramid_debugtoolbar"`
如果涉及安全问题::


$paster serve prod.ini


理智的人使用诸如upstart或"supervisord<;supervisord.org>;"之类的东西来管理此过程。

待办事项:
我的配置生成脚本



如何使用
==




这意味着对于
python2.6和更好的方法,您可以设置您的` ~/.pypirc``并像设置pypi一样上传到
prism;http://pypi.python.org/pypi>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `密码:secret

[local]
/>**注意**:prism目前对pypi的
基本身份验证方案有*最*基本的支持。这主要是为了获取要上载包的用户的
身份,而不是任何
实际安全性。如果您需要更多信息,它应该为扩展提供一个起点
(有关扩展金字塔应用程序的更多信息,请参见"金字塔文档"http://docs.pylonsproject.org/en/latest/docs/pyramid.html>;`
)。




现在**您的软件包可以从您的prism安装:

$pip install-i http://mycheese/index/myawesomepypkg

myawesomepypkg的所有依赖项也将来自您的prism,
因此请确保它们在那里(即将推出的功能将检查您的版本
,并执行NEEdful)。



使用依赖项填充索引
----------



加载文件的主要方法有3种:

>1。如果将存档文件放入索引的文件根目录并重新启动
应用程序,它将为它们生成索引项。有计划尽快使此自动运行,因此不需要重新启动。

2.通过"加载需求"页面,您可以上传一个pip
需求文件,cheeseprism将使用这些文件填充您的
索引。为virtualenv创建pip需求文件的最简单方法?::

$pip freeze-l>;myawesomerequirement.txt

>3。使用"find package"页面搜索pypi并将包加载到索引中。目前,这利用了get上的一些状态更改,但是
仍然是等幂的(很快就会修复)。



--


还有一些基本的只读json api::

$curl get http://mycheese/index/index.json

由每个
存档的md5散列键控。假设我们的索引只包含webob::

{u'1b6795baf23f6c1553186a0a8b1a2621':{u'added':1325609450.792506,
u'filename':u'webob-1.2b2.zip',
u'name':u'webob',
u'version':u'1.2b2'}


http api
——



文件可以通过一个不那么restful的接口添加到pypi的索引中,这个接口很快就会消失。如果pypi中存在"name"和"version",下面的
将从pypi下载该文件并将其注册到索引:

$curl get http://mycheese/package/{name}/{version}




future
==


/>***多索引支持**:一般的想法是,您可以发展
索引,而不是像需求文件那样,而是通过显式限制
在组中的成员资格,而不是需要
与外部索引对话的规范。一个存档可能存在于多个
索引中(但始终从同一位置服务以保留pip
缓存)。

索引为
,并克隆和扩展现有索引。

**less crap work**:通过find packages加载的版本和包的自动依赖关系加载。repo的一个文件监视程序,当添加和删除文件时,它会重建索引的适当部分。

**better readonly api**:versions.json为每个包提供了index.json格式的数据。


**betterrest**:创建``post/packages/{name}/{version}``从pypi中获取包。制作``get/packages/{name}/{version}`
提供有关包的数据,并指示包当前是否位于索引中。

**sphinx文档**:是的。




==



欢迎拉取请求!





如果你有问题或意见的话,大多数日子都会有问题或意见。


























>2013-03-21 whit<;whit@surveymonkey.com>;


*清理日志
*清理日志
>*测试清理和修复


0.2a1
=

<2012-10-31 whit<;whit@surveymonkey.com>;:

*过滤来自pypi的非源分发下载
*修复了通过pypi生成add包的index.json错误d通过事务处理"数据文件"
*使"全部重新生成"重新生成数据文件(尽管效率很低)


>0.1a1
=


>初始alpha版本。


development log
----

<2012-01-09 whit<;whit@surveymonkey.com>;:
*递归下载of需求文件和依赖项
*搜索pypi并下载文件
*提高测试覆盖率
*启动时初始化索引
*索引的基本只读api
*更广泛的事件支持
*文档改进


2011-12-21 whit<;whit@surveymonkey.com>;:
*通过上载时的事件进行单个叶更新
*重构以使用pkginfo

2011-12-01 whit<;whit@surveymonkey.com>;:
*内务管理:为开发添加索引静态文件服务,
更多地使用path.py
*商场自述文件上的端口。

2011-11-07 whit<;whit@surveymonkey.com>;:
*获取应用程序基本服务

2011-11-07 whit<;whit@surveymonkey.com>;:
*设置初始包结构

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

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像