管理Python / Django项目
项目描述
manageprojects - 管理Python / Django项目
将Ansible的概念与CookieCutter模板和Django迁移混合,以管理和更新您的Python包和Django项目...
主要思想是将CookieCutter模板的更改转移回创建的项目。manageprojects使用git创建模板更改的补丁,并将其应用到创建的项目。
除此之外,manageprojects
还包括其他Python包的通用辅助工具
publish_package()
- 构建并上传到PyPi的新版本,但带有许多预检查。format-file
- 使用Darker & Co.格式/检查Python源文件,作为IDE操作的用途。install_python.py
- 一个文件,无依赖关系,需要时可以从官方Python FTP服务器安装Python,经过验证。setup_python.py
- 一个文件,无依赖关系,需要时可以下载并设置可重新分发的Python。
请参阅下面的辅助
部分。
文档: docs/ (WIP)
安装
目前只需克隆项目并启动cli(这将创建虚拟环境和安装所有依赖项)
例如:
~$ git clone https://github.com/jedie/manageprojects.git
~$ cd manageprojects
~/manageprojects$ ./cli.py --help
./cli.py --help
的输出如下
Usage: ./cli.py [OPTIONS] COMMAND [ARGS]...
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ clone-project Clone existing project by replay the cookiecutter template in a new │
│ directory. │
│ format-file Format and check the given python source code file with │
│ darker/autoflake/isort/pyupgrade/autopep8/mypy etc. │
│ reverse Create a cookiecutter template from a managed project. │
│ start-project Start a new "managed" project via a CookieCutter Template. Note: The │
│ CookieCutter Template *must* be use git! │
│ update-project Update a existing project. │
│ update-readme-history Update project history base on git commits/tags in README.md │
│ version Print version and exit │
│ wiggle Run wiggle to merge *.rej in given directory. │
│ https://github.com/neilbrown/wiggle │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
最重要的命令
start-project
从./cli.py start-project --help
获得帮助
Usage: ./cli.py start-project [OPTIONS] TEMPLATE OUTPUT_DIR
Start a new "managed" project via a CookieCutter Template. Note: The CookieCutter Template *must*
be use git!
e.g.:
./cli.py start-project https://github.com/jedie/cookiecutter_templates/ --directory
piptools-python ~/foobar/
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --directory TEXT Cookiecutter Option: Directory within repo that holds │
│ cookiecutter.json file for advanced repositories with multi │
│ templates in it │
│ --checkout TEXT Cookiecutter Option: branch, tag or commit to checkout after git │
│ clone │
│ --input/--no-input Cookiecutter Option: Do not prompt for parameters and only use │
│ cookiecutter.json file content │
│ [default: input] │
│ --replay/--no-replay Cookiecutter Option: Do not prompt for parameters and only use │
│ information entered previously │
│ [default: no-replay] │
│ --password TEXT Cookiecutter Option: Password to use when extracting the │
│ repository │
│ --config-file FILE Cookiecutter Option: Optional path to "cookiecutter_config.yaml" │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
update-project
从./cli.py update-project --help
获得帮助
Usage: ./cli.py update-project [OPTIONS] PROJECT_PATH
Update a existing project.
e.g. update by overwrite (and merge changes manually via git):
./cli.py update-project ~/foo/bar/
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --overwrite/--no-overwrite Overwrite all Cookiecutter template files to the last │
│ template state and do not apply the changes via git patches. │
│ The developer is supposed to apply the differences manually │
│ via git. Will be aborted if the project git repro is not in │
│ a clean state. │
│ [default: overwrite] │
│ --password TEXT Cookiecutter Option: Password to use when extracting the │
│ repository │
│ --config-file FILE Cookiecutter Option: Optional path to │
│ "cookiecutter_config.yaml" │
│ --input/--no-input Cookiecutter Option: Do not prompt for parameters and only │
│ use cookiecutter.json file content │
│ [default: no-input] │
│ --cleanup/--no-cleanup Cleanup created temporary files [default: cleanup] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
工作流程
1. 创建一个新项目
使用start-project
命令和一个github URL作为Cookiecutter模板,例如
~/manageprojects$ ./cli.py start-project https://github.com/jedie/cookiecutter_templates/ --directory piptools-python ~/my_new_project/
~/manageprojects$ cd ~/my_new_project/your_cool_package/
~/my_new_project/your_cool_package/$ git init
~/my_new_project/your_cool_package/$ git add .
~/my_new_project/your_cool_package/$ git commit --message "my cool new project"
注意:[https://github.com/jedie/cookiecutter_templates](https://github.com/jedie/cookiecutter_templates) 是一个多模板仓库,其中 piptools-python
模板位于此处:[https://github.com/jedie/cookiecutter_templates/tree/main/piptools-python](https://github.com/jedie/cookiecutter_templates/tree/main/piptools-python)
运行 start-project
命令后,查看创建的文件。Manage projects 将所需的所有元信息存储到 pyproject.toml
中,例如:
~/manageprojects$ cat ~/my_new_project/your_cool_package/pyproject.toml
...
[manageprojects] # https://github.com/jedie/manageprojects
initial_revision = "6e4c875"
initial_date = 2022-11-10T12:37:20+01:00
cookiecutter_template = "https://github.com/jedie/cookiecutter_templates/"
cookiecutter_directory = "piptools-python"
[manageprojects.cookiecutter_context.cookiecutter]
...
2. 更新现有项目
如果源 Cookiecutter 发生了变化,则可以将这些更改应用到您的创建项目中,例如:
~/manageprojects$ ./cli.py update-project ~/my_new_project/your_cool_package/
之后,manageproject 将通过添加 applied_migrations
来更新 pyproject.toml
中的元信息,其中包含当前 Cookiecutter 版本的信息,例如:
~/manageprojects$ cat ~/my_new_project/your_cool_package/pyproject.toml
...
[manageprojects] # https://github.com/jedie/manageprojects
initial_revision = "6e4c875"
initial_date = 2022-11-10T12:37:20+01:00
cookiecutter_template = "https://github.com/jedie/cookiecutter_templates/"
cookiecutter_directory = "piptools-python"
applied_migrations = [
"dd69dcf", # 2022-11-22T19:48:28+01:00
]
...
如何?
一切基于 git ;)
- manageprojects 在创建时知道所使用的 Cookiecutter 模板的 git hash 和当前的 git hash。
- 它在这两个提交之间构建一个 git 补丁。
- 此补丁将应用到创建的项目源中。
因此,理论上模板中的更改已应用到项目中。
然而,这并不总是有效,因为 git 无法匹配这些更改。
见下文
缺点
一个问题在于 git 无法应用所有更改。
但是,使用带有 --reject
的 git apply
。它应用补丁中可应用的部分,并将拒绝的块保留在相应的 *.rej
文件中。
有一个很酷的工具,叫做 wiggle
:[https://github.com/neilbrown/wiggle](https://github.com/neilbrown/wiggle)
它通过执行逐词差异来尝试应用拒绝的补丁。
只需通过 manageproject CLI 运行 wiggle
,例如:
~/manageprojects$ ./cli.py wiggle ~/my_new_project/your_cool_package/
通过覆盖更新
更新项目的另一种方法
- 只需用当前的 Cookiecutter 模板输出覆盖所有文件
- 手动通过
git
合并更改
因此,您不会有无法应用的 git 补丁的问题 ;)
只需添加 --overwrite
,例如:
~/manageprojects$ ./cli.py update-project --overwrite ~/my_new_project/your_cool_package/
助手
以下是针对 Python 软件包的一些通用工具。
install_python.py
一个脚本,用于下载、构建和安装 Python 解释器,但前提是系统 Python 不是所需的较大版本。这是一个独立的脚本,没有依赖项。适用于 Python 3.9+。
更多信息:[docs/install_python.md](https://github.com/jedie/manageprojects/blob/main/docs/install_python.md)
"reverse" - 将项目转换为 Cookiecutter 模板
一个现有的管理项目可以转换回 Cookiecutter 模板,例如:
~/manageprojects$ ./cli.py reverse ~/my_new_project/ ~/cookiecutter_template/
"format-file" - 格式化和检查给定的 Python 源代码文件
您可以使用 format-file
作为 IDE 中的“保存时操作”或手动操作来修复代码风格 ;)
Usage: ./cli.py format-file [OPTIONS] FILE_PATH
Format and check the given python source code file with
darker/autoflake/isort/pyupgrade/autopep8/mypy etc.
The optional fallback values will be only used, if we can't get them from the project meta files
like ".editorconfig" and "pyproject.toml"
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --py-version TEXT Fallback Python version for darker/pyupgrade, if │
│ version is not defined in pyproject.toml │
│ [default: 3.10] │
│ --max-line-length -l INTEGER Fallback max. line length for darker/isort etc., if │
│ not defined in .editorconfig │
│ [default: 119] │
│ --darker-prefixes TEXT Apply prefixes via autopep8 before calling darker. │
│ [default: E301,E302,E303,E305,W391] │
│ --remove-all-unused-imports Remove all unused imports (not just those from the │
│ standard library) via autoflake │
│ [default: True] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
发布
manageprojects.utilities.publish.publish_package()
专为外部包设计。
构建和上传(使用 twine)项目到 PyPi,并进行许多预检查
- 版本号正确吗?
- 是否位于主分支并与 origin 保持最新?
- 检查当前版本是否已发布
- 根据当前包版本构建 git 标签
- 将自上次发布以来的更改消息添加到 git 标签消息中
某些检查会导致程序退出,但某些可以手动由用户确认以继续发布。
开发
对于开发 manageprojects,有 dev-cli.py
。
./dev-cli.py --help
的输出如下
Usage: ./dev-cli.py [OPTIONS] COMMAND [ARGS]...
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ check-code-style Check code style by calling darker + flake8 │
│ coverage Run tests and show coverage report. │
│ fix-code-style Fix code style of all manageprojects source code files via darker │
│ git-hooks Setup our "pre-commit" git hooks │
│ install Run pip-sync and install 'manageprojects' via pip as editable. │
│ mypy Run Mypy (configured in pyproject.toml) │
│ pip-audit Run pip-audit check against current requirements files │
│ publish Build and upload this project to PyPi │
│ run-git-hooks Run the installed "pre-commit" git hooks │
│ test Run unittests │
│ tox Run tox │
│ update Update "requirements*.txt" dependencies files │
│ update-readme-history Update project history base on git commits/tags in README.md │
│ update-test-snapshot-files Update all test snapshot files (by remove and recreate all snapshot │
│ files) │
│ version Print version and exit │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
开发 git 钩子
要安装 git 钩子,请运行
~/manageprojects$ ./dev-cli.py git-hooks
历史
另见 git 标签:[https://github.com/jedie/manageprojects/tags](https://github.com/jedie/manageprojects/tags)
- v0.19.2
- 2024-09-24 - 添加 piwheels 哈希。
- 2024-09-24 - 应用来自 cookiecutter 模板的更新。
- 2024-09-24 - 更新需求。
- v0.19.1
- 2024-09-15 - 修复并增强 "setup_python.py" 的错误。
- v0.19.0
- 2024-09-15 - 新增:setup_python.py
- 2024-09-15 - 更新需求。
- v0.18.0
- 2024-08-29 - 修复在发布调用中错误的 "module"。
- 2024-08-29 - 修复在发布命令中错误的 "distribution_name"。
- 2024-08-29 - 更新 typeannotations。
- 2024-08-29 - 修复错误的类型注解
- 2024-08-29 - 添加 IncludeInstallPythonBaseTestCase 以自动更新 'install_python.py'
- 2024-08-29 - 添加:.pre-commit-hooks.yaml
- 2024-08-29 - 新增:install_python.py
- 2024-08-29 - 修复 CI + tox
- 2024-08-29 - 更新 tox envlist 到 github action 矩阵
- 2024-08-29 - Bugfix:通过 cookiecutter 模板更新 pyproject_toml.py
- 2024-08-29 - 更新 requirements + 应用模板更新
- 2024-03-08 - 也运行 "refurb"。
- 2024-01-16 - 在测试中添加并使用 typeguard
- 2024-07-09 - 分离 CLI
- 2024-02-22 - 更新 requirements
- 2023-12-30 - 修复拼写错误
扩展更早的历史条目 ...
- v0.17.1
- 2023-12-29 - 仍然支持 Python v3.9
- v0.17.0
- 2023-12-21 - Bugfix:在覆盖更新时不要丢失 "[manageprojects]" 内容
- 2023-12-21 - typing: Optional -> None
- 2023-12-21 - 统一 BASE_PATH / PACKAGE_ROOT 等。
- 2023-12-21 - 应用 manageprojects 更新:跳过 Python 3.9 支持
- 2023-12-21 - 更新 requirements
- v0.16.2
- 2023-12-16 - 更新 pre-commit-config
- 2023-12-16 - 在 CI 中跳过 test_readme_history()
- 2023-12-16 - 添加 git 钩子 "update-readme-history"
- 2023-12-16 - 应用 cookiecutter 更新
- 2023-12-16 - 更新 requirements
- v0.16.1
- 2023-12-05 - 修复 "格式化文件" 和非常冗长的错误输出
- v0.16.0
- 2023-12-02 - 使用来自 cli-base-utilities 的代码样式工具
- 2023-12-01 - 应用 https://github.com/jedie/cookiecutter_templates 更新
- 2023-12-01 - 使用:cli_base.cli_tools.test_utils.logs.AssertLogs
- v0.15.4
- 2023-11-27 - 也使用 "flake8-bugbear"。
- v0.15.3
- 2023-11-09 - Bugfix "reverse" 如果上下文包含一个列表
- 2023-11-07 - 更新 requirements
- v0.15.2
- 2023-11-01 - 更新 requirements
- v0.15.1
- 2023-10-08 - 更新文本矩阵以支持 Python v3.12
- 2023-10-08 - 修复 github CI
- 2023-10-08 - 更新以适应 CookieCutter v2.4.0 的更改
- 2023-10-08 - 通过 https://github.com/jedie/cli-base-utilities 自动生成历史记录
- 2023-09-24 - 应用迁移
- 2023-09-24 - 更新 requirements
- v0.15.0
- 2023-08-17 - 弃用 Git
- 2023-08-17 - 弃用 print_version()(已移至 cli_base)
- v0.14.1
- 2023-08-17 - 应用项目模板更新并更新 requirements
- 2023-08-15 - 更新 requirements
- v0.14.0
- 2023-08-09 - 使用 https://github.com/jedie/cli-base-utilities
- v0.13.0
- 2023-08-05 - publish:支持 setuptools 的版本 "dynamic metadata"
- 2023-08-05 - 分离 CLI
- v0.12.1
- 2023-06-11 - 通过添加
get_output
方法增强 git.push()
- 2023-06-11 - 通过添加
- v0.12.0
- 2023-06-11 - 新增:git.get_remote_url() 和 git.get_github_username()
- v0.11.0
- 2023-06-11 - 更新 requirements 并作为 v0.11.0 发布
- 2023-06-11 - 增强 Git()
- 2023-05-12 - 将 "--remove-all-unused-imports" 作为 autoflake 的默认值
- v0.10.0
- 2023-05-11 - 增强 "format-file" 并添加 "autoflake" 以删除未使用的导入
- 2023-04-10 - 更新 requirements
- 2023-04-10 - 应用 manageprojects 更新
- 2023-04-08 - 应用项目更新
- v0.9.10
- 2023-04-08 - 添加辅助函数以查找和获取 "pyproject.toml" 文件
- v0.9.9
- 2023-04-04 - 在 update-project 命令中将 --overwrite 设置为默认值
- 2023-04-04 - 清理 requirements
- 2023-04-04 - 项目更新
- v0.9.8
- 2023-04-04 - 在 reverse 命令中添加
--overwrite
选项
- 2023-04-04 - 在 reverse 命令中添加
- v0.9.7
- 2023-04-03 - Bugfix reverse 命令:优化替换
- 2023-03-17 - 应用代码迁移
- v0.9.6
- 2023-03-12 - 速度提升:使用 '--no-deps' 作为可编辑安装的默认值
- 2023-03-12 - Fix #68 处理发布时没有 git 标签的情况
- 2023-03-11 - Bugfix reverse 命令和二进制文件
- v0.9.4
- 2023-03-09 - 在 publish_package() 中也支持 "poerty"
- v0.9.3
- 2023-03-07 - Fix publish
- 2023-03-07 - 更新项目
- 2023-03-06 - 覆盖率 xml 报告 + CLI
- 2023-03-06 - 更新 README.md
- 2023-03-06 - 修复 CI / 覆盖率运行
- 2023-03-06 - 为 "tomli" 移除 "python_version < 3.11"
- 2023-03-06 - 合并 cookiecutter 模板更新
- v0.9.2
- 2023-02-26 - 在错误时使结果可用
- 2023-02-26 - 更新 requirements
- 2023-02-26 - invoke_click(): 如果存在则引发异常
- 2023-02-23 - 添加: "E301 - 预期 1 个空行" 到 "format-file"
- v0.9.1
- 2023-02-22 - 修复:发布 poetry 包并从 pyproject.toml 获取版本字符串
- v0.9.0
- 2023-02-21 - README
- 2023-02-21 - 重构发布命令,并使其也适用于外部包
- 2023-02-21 - 增强 verbose_check_output:在错误时显示输出并退出
- 2023-02-20 - 增强 SubprocessCallMock:也模拟 subprocess.run()
- v0.8.3
- 2023-02-20 - 修复:打包中移除 "tox" 从正常、非开发依赖中
- v0.8.2
- 2023-02-20 - Path(sys.executable).parent -> PY_BIN_PATH
- 2023-02-20 - 将 "E305" 添加到 darker 前缀
- 2023-02-20 - 通过 manageprojects 添加 tox 配置
- 2023-02-19 - 将 "W391 文件末尾有空行" 添加到 darker 前缀
- 2023-02-19 - 添加 check_editor_config()
- 2023-02-19 - CLI:将 "version" 作为伪命令添加回来
- 2023-02-19 - 更好的 subprocess_utils API
- v0.8.0
- 2023-02-19 - 将 "test_cli" 分割并添加 "format-file" 到 README
- 2023-02-18 - 添加可重用的 helper:print_version()
- 2023-02-18 - 新功能: "format-file"
- 2023-02-18 - 添加 安全检查
- 2023-02-18 - 应用 manageprojects
- v0.7.3
- 2023-01-25 - 修复:如果模板中有新目录,则修复 "--overwrite"
- 2023-01-25 - 修复:如果文件是新的,则修复 "overwrite"
- v0.7.1
- 2023-01-25 - 添加 cli 帮助页面到 README 中,使用 bx_py_utils 中的 helper
- v0.7.0
- 2023-01-15 - 修复 #41 为 "update-project" 命令添加 "--overwrite"
- v0.6.0
- 2023-01-14 - 修复发布命令
- 2023-01-14 - 新功能: "update-test-snapshot-files" 命令
- 2023-01-14 - 修复测试
- 2023-01-13 - 替换 typer 为原始的 click
- 2023-01-12 - 应用迁移
- 2023-01-12 - 增强 CLI 参数文档
- 2023-01-11 - 更新 requirements
- 2023-01-09 - 更好的代码风格测试 + 通过 unittests 修复
- 2023-01-09 - 使用 bx_py_utils v73 的 RedirectOut
- 2023-01-09 - 修复 "./cli.py install" 和错误的 req. 文件路径
- 2023-01-09 - 反转命令:使用 "git ls-files" 而不是 pathspec
- v0.5.0
- 2023-01-08 - 新功能:将项目反转成 Cookiecutter 模板
- v0.4.0
- 2022-12-30 - 重构 "dependencies" 定义
- 2022-12-30 - 修复 Git(): 传递环境,但设置 "en_US" 为语言
- 2022-12-30 - 更新 requirements
- 2022-12-30 - 包含所有包
- 2022-12-30 - 在测试中捕获和检查日志输出
- 2022-12-30 - 清理 editorconfig
- 2022-12-30 - 增强 test 运行
- 2022-12-30 - 修复错误的 "hint"
- v0.3.3
- 2022-12-21 - 更新 requirements
- 2022-12-21 - 使用新的 pip-compile 解析器
- 2022-12-21 - 修复如果 git 输出将被翻译的情况
- 2022-11-30 - 通过添加 './cli.py' 修复帮助并添加基本的 CLI 测试
- 2022-11-30 - 增强 "start-project" 和 "update-project" CLI 帮助页面
- 2022-11-30 - 更新 README.md
- 2022-11-22 - 更新 reqirements
- 2022-11-20 - 自我管理!!!
- 2022-11-20 - 修复错别字
- 2022-11-20 - 重命名: "./mp.py" -> "./cli.py"
- v0.3.2
- 2022-11-19 - 发布时打 git tag
- 2022-11-19 - udpate requirements
- 2022-11-19 - init_git(): 添加一个 "fake" origin 并将当前分支推送到它
- 2022-11-19 - 更新 README.md
- 2022-11-15 - 修复打包:作为 0.3.1 发布
- 2022-11-15 - 将测试工具移动到普通包中
- 2022-11-15 - 更新需求
- 2022-11-15 - 代码清理
- 2022-11-10 - 删除自建模板 -> https://github.com/jedie/cookiecutter_templates
- 2022-11-10 - 修复使用自建模板启动项目的问题
- 2022-11-10 - 新功能:通过在新目录中重新播放cookiecutter模板来克隆现有项目。
- 2022-11-10 - 显示 "git apply patch" 的输出
- 2022-11-10 - 修复通过覆盖旧内容重置 "pyproject.toml" 的问题
- 2022-11-09 - 使用原始单元测试 CLI
- 2022-11-09 - 捕获 git apply 失败,并添加 wiggle 命令以修复 .rej 文件
- 2022-11-09 - 修复测试并设置 git 用户名/电子邮件(如果不存在)
- 2022-11-08 - 修复测试并增加更多日志/输出
- 2022-11-07 - 修复补丁路径问题
- 2022-11-07 - 修复 extra_context 问题
- 2022-11-07 - 生成更好的 git 差异
- 2022-11-07 - 修复一些可选类型提示
- 2022-11-07 - 更好地更新项目输出
- 2022-11-07 - 在 CLI 中添加 "cleanup" 选项
- 2022-11-07 - 传递 "no_input"
- 2022-11-07 - 将 tomlkit.Container 更改为正常字典
- 2022-11-07 - 修复拼写错误
- 2022-11-07 - 更好的日志配置
- 2022-11-06 - 在 CLI 中添加 "update-project" 选项
- 2022-11-06 - 添加密码的 DocString
- 2022-11-06 - 修复双重日志输出
- 2022-11-06 - 不要在 pyproject.toml 中存储 "_output_dir"
- 2022-11-04 - 修复启用颜色时的版本测试问题
- 2022-11-04 - 修复失败时退出测试的问题
- 2022-11-03 - 简化将上下文存储到 toml 文件中
- 2022-11-03 - 重构和修复测试
- 2022-11-03 - 在 README 中添加 --help
- 2022-11-03 - 如果模板是 repro url,则 Cookiecutter 将仅检出特定提交!
- 2022-11-03 - 在日志输出中添加 "%(name)s"
- 2022-11-03 - 支持可选的
--test-path
选项,用于 "./mp.py test" - 2022-11-03 - 将 "./mp.py unittest" 重命名为 "./mp.py test"
- 2022-11-01 - WIP:重构并添加更多测试
- 2022-11-01 - 在 TemporaryDirectory 中添加清理参数
- 2022-11-01 - 移动代码
- 2022-11-01 - 添加并使用 log_func_call() 辅助函数
- 2022-10-30 - 存储/使用 Cookiecutter 上下文不受影响
- 2022-10-30 - 添加将嵌套字典转换为 toml 的辅助函数
- 2022-10-29 - WIP:增强测试
- 2022-10-29 - 修复拼写错误并记录更多信息
- 2022-10-29 - 覆盖现有补丁文件
- 2022-10-29 - 修复一些类型提示
- 2022-10-29 - WIP:更新现有项目
- 2022-10-28 - 移动一些 ecore 部分 + 启动 "更新项目"
- 2022-10-28 - 测试使用本地模板启动项目
- 2022-10-27 - 修复类型错误并激活测试中的 "mypy"
- 2022-10-27 - 覆盖率: '--fail-under=50'
- 2022-10-27 - 测试 test_git_apply_patch()
- 2022-10-27 - 测试 git 差异
- 2022-10-27 - 添加 init_git() 以供测试
- 2022-10-27 - 添加测试工具以在 "on-the-fly" 生成 git 仓库
- 2022-10-27 - 使用 assert_is_dir, assert_is_file 从 bx_py_utils
- 2022-10-26 - 将 3.11 添加到 CI
- 2022-10-26 - 修复 ci 覆盖率
- 2022-10-26 - 将信息存储到 pyproject.toml 中
- 2022-10-26 - 设置覆盖率
- 2022-10-26 - 增强 log 设置
- 2022-10-25 - +requires-python = ">=3.9,<4.0.0"
- 2022-10-25 - 在上传之前调用 "twine check"
- 2022-10-25 - +## 开始修改
- 2022-10-25 - 修复徽章
- 2022-10-25 - 修复 CI
- 2022-10-25 - 因为 https://github.com/PyCQA/flake8/issues/234,添加 .flak8
- 2022-10-25 - 使用单元测试,添加 cookiecuttter 辅助函数,添加/修复测试和代码风格
- 2022-10-24 - 修改 CLI 和测试
- 2022-10-24 - 修复 mypy 调用
- 2022-10-24 - WIP
- 2022-10-23 - 稍微更改最小模板
- 2022-10-23 - 添加第一个 cookiecutter 模板
- 2022-10-23 - 允许通过
python -m manageprojects
执行 manageprojects CLI。 - 2022-10-22 - github actions
- 2022-10-22 - dev
- 2022-10-22 - bootstarp
- 2022-10-22 - 添加 requirements
- 2022-10-22 - 初始化 Makefile
- 2022-10-22 - 初始提交
链接
- 自己的Cookiecutter模板: https://github.com/jedie/cookiecutter_templates
- https://github.com/cookiecutter/cookiecutter
- GitHub上的可用Cookiecutters模板: https://github.com/search?q=cookiecutter&type=Repositories
- Python项目的打包: https://packaging.pythonlang.cn/en/latest/tutorials/packaging-projects/
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
manageprojects-0.19.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5f9b7d692df1540b8787ae31acc9613270be01c7d4416aad77e5dee4ca97e363 |
|
MD5 | 16f531d846d3c9abb0e2523d1e7aae1b |
|
BLAKE2b-256 | 4e1bbd7c2f7888af2d173c50f9d7d38f78bad5e7e00e2e3c6ca3e7ddb4c97283 |
manageprojects-0.19.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4c5649deb9791f3016c1848b34080e1564ea3bec2a8e25a09f9f0af9012086df |
|
MD5 | 39937a96551ee5049375d05623a12a1d |
|
BLAKE2b-256 | 487002bda7425dfb8c07b87a29b85dcb2bb25fd6f8ea0c5c0cbd0f9105d93f73 |