Homebrew-PyPI-Poet 项目教程
1. 项目的目录结构及介绍
Homebrew-PyPI-Poet 项目的目录结构相对简单,主要包含以下文件和目录:
homebrew-pypi-poet/
├── LICENSE
├── README.rst
├── RELEASING
├── setup.cfg
├── setup.py
├── poet
│ ├── __init__.py
│ └── poet.py
├── coveragerc
├── gitignore
├── travis.yml
└── tox.ini
- LICENSE: 项目的许可证文件,采用 MIT 许可证。
- README.rst: 项目的说明文档,介绍项目的基本信息和使用方法。
- RELEASING: 发布项目的相关说明。
- setup.cfg: 项目的配置文件,用于定义一些安装和构建的配置。
- setup.py: 项目的安装脚本,用于安装项目及其依赖。
- poet: 项目的主要代码目录,包含
__init__.py
和poet.py
文件。- init.py: 模块初始化文件。
- poet.py: 项目的主要功能实现文件。
- coveragerc: 代码覆盖率配置文件。
- gitignore: Git 忽略文件配置。
- travis.yml: Travis CI 配置文件。
- tox.ini: Tox 配置文件,用于自动化测试。
2. 项目的启动文件介绍
项目的启动文件是 poet/poet.py
。这个文件包含了项目的主要功能实现,包括生成 Homebrew 资源 stanza 的功能。
# poet/poet.py
import argparse
import sys
from .poet import generate
def main():
parser = argparse.ArgumentParser(description="Generate Homebrew resource stanzas for pypi packages and their dependencies")
parser.add_argument('-V', '--version', action='version', version='%(prog)s 0.10.0')
parser.add_argument('--single', nargs='+', help='Generate resource stanzas for a single package')
parser.add_argument('--formula', help='Generate a complete Homebrew formula')
parser.add_argument('--resources', help='Generate resource stanzas for a package')
parser.add_argument('--also', nargs='+', help='Include additional packages')
args = parser.parse_args()
if args.single:
generate(args.single)
elif args.formula:
generate([args.formula], formula=True)
elif args.resources:
generate([args.resources], resources=True)
else:
parser.print_help()
if __name__ == '__main__':
main()
3. 项目的配置文件介绍
项目的配置文件主要包括 setup.cfg
和 tox.ini
。
setup.cfg
setup.cfg
文件用于定义一些安装和构建的配置,例如包的元数据、依赖关系等。
[metadata]
name = homebrew-pypi-poet
version = 0.10.0
description = Writes Homebrew stanzas for pypi packages
long_description = file: README.rst
author = Tim D Smith
author_email = tim@example.com
url = https://github.com/tdsmith/homebrew-pypi-poet
license = MIT
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: MIT License
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.4
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
[options]
packages = find:
install_requires =
pip
setuptools
[options.packages.find]
where = .
tox.ini
tox.ini
文件用于自动化测试,定义了测试环境、依赖和测试命令。
[tox]
envlist = py27,py34,py35,py36
skipsdist = true
[testenv]
deps =
pip
setuptools
commands =
pip install -e .
pip install -r requirements.txt
pytest