被“sDeMe制造”取代(是:在SDN树中制作SDASPEAR项目)

tha.sdistmaker的Python项目详细描述


被sdistmaker替代

警告:现在只调用sdistmakertha.sdistmaker。在 1.1这里和sdistmaker的1.2(除了更好的命令行选项和 改进的文档)。

旧文档如下。

软件制造商

从svn标记创建sdist tarballs,用于公司内部 SVN存储库。将sdist tarballs创建到一个目录中,然后可以为其提供服务 和阿帕奇。

Reinout van ReesThe Health Agency编写。

更多详细信息请参见src/tha/sdistmaker/usage.txt。

tha.sdistmaker的用法

sdistmaker有两个主要用途:

  • 制作并存储一个单张标签的SDIST tarball。
  • 检查所有标签,确保它们都有一个SDist tarball。

测试设置

用于放置tarball的“pypi”目录:

>>> print pypidir
PYPI

为防止发生实际操作而进行的MonkeyPatching:

>>> import commands
>>> orig_getstatusoutput = commands.getstatusoutput
>>> output_results = ['']
>>> def mock_getstatusoutput(cmd):
...     print "Command:", cmd
...     return 0, output_results.pop(0)
>>> commands.getstatusoutput = mock_getstatusoutput
>>> commands.getstatusoutput('make tea')
Command: make tea
(0, '')
>>> import shutil
>>> orig_copy = shutil.copy
>>> def mock_copy(src, dest):
...     print "Mock copy %s -> %s" % (src, dest)
...     open(dest, 'w').write('mock')
>>> shutil.copy = mock_copy

使单个标记的sdist tarball

>>> from tha.sdistmaker import maker
>>> tag = 'http://example.org/repo/project/tags/0.1'

脚本对标记进行svn签出,并使用setuptools获取 名称和版本以及创建SDist。然后将其复制到 以项目命名的子目录。

>>> output_results = ['',
...                   'project',
...                   '0.1',
...                   '',
...                   ]
>>> maker.main(tag=tag, destination=pypidir)
Doing checkout of http://example.org/repo/project/tags/0.1
Command: svn co http://example.org/repo/project/tags/0.1 ...
Detecting name and version
Command: python setup.py --name
Name: project
Command: python setup.py --version
Version: 0.1
Making sdist tarball
Command: python setup.py sdist
<BLANKLINE>
Creating directory PYPI/project
Copying tarball project-0.1.tar.gz
Mock copy dist/project-0.1.tar.gz -> PYPI/project/project-0.1.tar.gz

将为项目创建一个新目录:

>>> import os
>>> os.listdir(pypidir)
['project']

皮球在里面:

>>> sorted(os.listdir(os.path.join(pypidir, 'project')))
['project-0.1.tar.gz']

一个新的版本放在刚好好的旁边:

>>> tag = 'http://example.org/repo/project/tags/0.2'
>>> output_results = ['',
...                   'project',
...                   '0.2',
...                   '',
...                   ]
>>> maker.main(tag=tag, destination=pypidir)
Doing checkout of http://example.org/repo/project/tags/0.2
Command: svn co http://example.org/repo/project/tags/0.2 ...
Detecting name and version
Command: python setup.py --name
Name: project
Command: python setup.py --version
Version: 0.2
Making sdist tarball
Command: python setup.py sdist
<BLANKLINE>
Copying tarball project-0.2.tar.gz
Mock copy dist/project-0.2.tar.gz -> PYPI/project/project-0.2.tar.gz
>>> os.listdir(pypidir)
['project']
>>> sorted(os.listdir(os.path.join(pypidir, 'project')))
['project-0.1.tar.gz', 'project-0.2.tar.gz']

第二个项目:

>>> tag = 'http://example.org/repo/another/tags/0.2'
>>> output_results = ['',
...                   'another',
...                   '0.2',
...                   '',
...                   ]
>>> maker.main(tag=tag, destination=pypidir)
Doing checkout of http://example.org/repo/another/tags/0.2
Command: svn co http://example.org/repo/another/tags/0.2 ...
Detecting name and version
Command: python setup.py --name
Name: another
Command: python setup.py --version
Version: 0.2
Making sdist tarball
Command: python setup.py sdist
<BLANKLINE>
Creating directory PYPI/another
Copying tarball another-0.2.tar.gz
Mock copy dist/another-0.2.tar.gz -> PYPI/another/another-0.2.tar.gz
>>> sorted(os.listdir(pypidir))
['another', 'project']
>>> sorted(os.listdir(os.path.join(pypidir, 'project')))
['project-0.1.tar.gz', 'project-0.2.tar.gz']
>>> sorted(os.listdir(os.path.join(pypidir, 'another')))
['another-0.2.tar.gz']

还原原稿:

>>> commands.getstatusoutput = orig_getstatusoutput
>>> shutil.copy = orig_copy

待办事项

  • 可能很多事情。

sdistmaker的变更日志

1.1(2009-12-22)

  • 文件更新。

1.0(2009-12-21)

  • setup.py清除。

0.4(2009-11-09)

  • 现在,正确地替换base和base_on_服务器。

0.2(2009-11-09)

  • 完成后清理tempdir。然后离开 在杀死它之前。
  • 使用buildout的bin/python,以便在 没有全局设置工具的服务器。假设我们总是 建筑内部:我很好。

0.1(2009-11-06)

  • 添加了用于创建所有tarball的sdist_from_tags脚本。
  • 添加了用于创建单个sdist的make_sdist脚本。
  • 由Thaskel创建的初始库骨架。

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

推荐PyPI第三方库


热门话题
java Portlet间通信页面提交   Java通过命令行参数循环查看用户输入的内容?   java在程序运行时保持JPanel中的计时器处于活动状态   适用于通知系统的java模型   java CodeAbbey挑战14个数据输入问题?   sql server使用windows身份验证连接到java中的远程MS sql server   java Hibernate@OnetoMany与集合上的Where子句   如何在java中比较继承中的两个值?   java在客户机-服务器程序中从文件读取特定字节   将null值赋给args时,java RawQuery不起作用   java:类概要文件是公共的,应该在名为Profile的文件中声明。非结构化数据模型和pojo的java错误   java意外JDWP错误21   多线程Java客户端服务器时钟   c#设置按钮事件的最快方式   java保留MQTT主题在恢复活动时订阅   java H2 1.4.199 database getGeneratedKeys()返回由另一个insert事务生成的键,或者将来的对象被混淆   java以编程方式调用单击JLabel   用java解析非常大的XML文档(还有更多)