setuptools助手函数
setuphelpers的Python项目详细描述
设置帮助程序
编写setup.py的助手函数。
帮助函数
setuphelpers提供以下功能:
git_version
用于从Git提供包的版本字符串。如果最新的 提交已标记,版本将是该标记。如果没有标记,它 将是最后一个版本+1个次要/修补程序版本。devn提交数 从上次标记开始。如果从主分支以外的分支构建,则该分支 名称用作本地版本标识符。
示例:0.0.1,0.0.2.dev1,0.0.2.dev1+featureX
fromsetuptoolsimportsetupfromsetuphelpersimportgit_versionsetup(name="my_thing",version=git_version())
注意,您不能使用git_version部署sdist包,到期 需要访问.git。但请不要开始包括 .git在您的包中。你可以用一种模式 git_version写入要包含的文件,但我认为 没有必要这么做,因为它已经包含在书面文件中了 包元数据(wheels>;*)。但如果必须的话:
importosimportiofromsetuptoolsimportsetupfromsetuphelpersimportgit_versionfromsetuphelpersimportfind_version# VER_FILE should not exist in your checked in sourceVER_FILE=os.path.join("my_thing","__version__.py")ifos.path.isfile(VER_FILE):# this should only be run during rebuilding a sdist packageVERSION=find_version(VER_FILE)else:# this should be run only during the actual packagingVERSION=git_version()withio.open(VER_FILE,"w",encoding="utf-8")asopenversion:openversion.write('__version__ = "{}"'.format(VERSION))setup(name="my_thing",version=VERSION)
long_description
用于用 自述文件。如果找不到自述文件,将返回到 安装程序.py。
fromsetuptoolsimportsetupfromsetuphelpersimportlong_descriptionsetup(name="my_thing",version="1.0",long_description=long_description())
find_version
用于在指定的 文件路径。
fromsetuptoolsimportsetupfromsetuphelpersimportfind_versionsetup(name="my_thing",version=find_version("my_thing/__init__.py"))
test_command
用于构建用于运行单元测试的测试命令类 python setup.py test。默认支持py.test,但nose和 单元测试也是可能的。来自test_command的返回可以是 传递给cmdclass。
注意,tests_require依赖项仍然需要提供, 包括保险,如果你使用它(加上你需要的任何东西 使用测试)。
fromsetuptoolsimportsetupfromsetuphelpersimporttest_commandsetup(name="my_thing",version="1.0",tests_require=["pytest","pytest-cov"],cmdclass=test_command(cover="my_thing"),)
关于setup_requires
的说明您可以(也应该)将setuphelpers放入setup_requires 你的setup.py的参数。但你也要小心避免 生成期间的依赖关系问题。要做到这一点,你可以用这个 模式(对于每个/任何使用的函数):
fromsetuptoolsimportsetuptry:fromsetuphelpersimport(find_version,# not used, but for completenessgit_version,long_description,test_command,)exceptImportError:find_version=lambdax:"0.0.0"git_version=lambda:"0.0.0"long_description=lambda:__doc__test_command=lambda**_:{}setup(name="my_thing",version=git_version(),# find_version("my_thing/__init__.py"),description=long_description(),tests_require=["pytest","pytest-cov"],setup_requires=["setuphelpers"],cmdclass=test_command(cover="my_thing"),)
现在python setup.py install应该拉入setuphelpers如果 丢失,并重新执行自身以按预期填充参数。你 需要手动避免ImportError和NameError 但是,如果缺少 setuphelpers。
版权和许可
setuphelpers由adam talsma编写
版权所有(c)2016 ccp hf.
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在合同诉讼中, 侵权行为或其他,由 软件或软件中的使用或其他交易。