跳转到主要内容

管理Python / Django项目

项目描述

manageprojects - 管理Python / Django项目

tests codecov manageprojects @ PyPi Python Versions License GPL-3.0-or-later

将Ansible的概念与CookieCutter模板和Django迁移混合,以管理和更新您的Python包和Django项目...

主要思想是将CookieCutter模板的更改转移回创建的项目。manageprojects使用git创建模板更改的补丁,并将其应用到创建的项目。

除此之外,manageprojects还包括其他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 无法应用所有更改。

但是,使用带有 --rejectgit 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/

通过覆盖更新

更新项目的另一种方法

  1. 只需用当前的 Cookiecutter 模板输出覆盖所有文件
  2. 手动通过 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
  • 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
  • v0.13.0
    • 2023-08-05 - publish:支持 setuptools 的版本 "dynamic metadata"
    • 2023-08-05 - 分离 CLI
  • v0.12.1
    • 2023-06-11 - 通过添加 get_output 方法增强 git.push()
  • 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 选项
  • 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 - 初始提交

链接

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

manageprojects-0.19.2.tar.gz (148.6 kB 查看哈希值)

上传时间 源代码

构建分发

manageprojects-0.19.2-py3-none-any.whl (99.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面