duty 1.7.2__tar.gz → 1.7.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. {duty-1.7.2 → duty-1.7.3}/CHANGELOG.md +8 -0
  2. duty-1.7.3/PKG-INFO +140 -0
  3. duty-1.7.3/README.md +105 -0
  4. {duty-1.7.2 → duty-1.7.3}/pyproject.toml +1 -1
  5. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_ruff.py +2 -1
  6. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_ty.py +2 -1
  7. duty-1.7.2/PKG-INFO +0 -87
  8. duty-1.7.2/README.md +0 -52
  9. {duty-1.7.2 → duty-1.7.3}/CODE_OF_CONDUCT.md +0 -0
  10. {duty-1.7.2 → duty-1.7.3}/CONTRIBUTING.md +0 -0
  11. {duty-1.7.2 → duty-1.7.3}/LICENSE +0 -0
  12. {duty-1.7.2 → duty-1.7.3}/config/coverage.ini +0 -0
  13. {duty-1.7.2 → duty-1.7.3}/config/git-changelog.toml +0 -0
  14. {duty-1.7.2 → duty-1.7.3}/config/mypy.ini +0 -0
  15. {duty-1.7.2 → duty-1.7.3}/config/pytest.ini +0 -0
  16. {duty-1.7.2 → duty-1.7.3}/config/ruff.toml +0 -0
  17. {duty-1.7.2 → duty-1.7.3}/config/vscode/launch.json +0 -0
  18. {duty-1.7.2 → duty-1.7.3}/config/vscode/settings.json +0 -0
  19. {duty-1.7.2 → duty-1.7.3}/config/vscode/tasks.json +0 -0
  20. {duty-1.7.2 → duty-1.7.3}/docs/.overrides/main.html +0 -0
  21. {duty-1.7.2 → duty-1.7.3}/docs/.overrides/partials/comments.html +0 -0
  22. {duty-1.7.2 → duty-1.7.3}/docs/.overrides/partials/path-item.html +0 -0
  23. {duty-1.7.2 → duty-1.7.3}/docs/changelog.md +0 -0
  24. {duty-1.7.2 → duty-1.7.3}/docs/code_of_conduct.md +0 -0
  25. {duty-1.7.2 → duty-1.7.3}/docs/contributing.md +0 -0
  26. {duty-1.7.2 → duty-1.7.3}/docs/credits.md +0 -0
  27. {duty-1.7.2 → duty-1.7.3}/docs/css/material.css +0 -0
  28. {duty-1.7.2 → duty-1.7.3}/docs/css/mkdocstrings.css +0 -0
  29. {duty-1.7.2 → duty-1.7.3}/docs/demo.svg +0 -0
  30. {duty-1.7.2 → duty-1.7.3}/docs/gen_credits.py +0 -0
  31. {duty-1.7.2 → duty-1.7.3}/docs/index.md +0 -0
  32. {duty-1.7.2 → duty-1.7.3}/docs/js/feedback.js +0 -0
  33. {duty-1.7.2 → duty-1.7.3}/docs/license.md +0 -0
  34. {duty-1.7.2 → duty-1.7.3}/docs/reference/api.md +0 -0
  35. {duty-1.7.2 → duty-1.7.3}/docs/usage.md +0 -0
  36. {duty-1.7.2 → duty-1.7.3}/duties.py +0 -0
  37. {duty-1.7.2 → duty-1.7.3}/mkdocs.yml +0 -0
  38. {duty-1.7.2 → duty-1.7.3}/scripts/gen_credits.py +0 -0
  39. {duty-1.7.2 → duty-1.7.3}/scripts/get_version.py +0 -0
  40. {duty-1.7.2 → duty-1.7.3}/scripts/make +0 -0
  41. {duty-1.7.2 → duty-1.7.3}/scripts/make.py +0 -0
  42. {duty-1.7.2 → duty-1.7.3}/src/duty/__init__.py +0 -0
  43. {duty-1.7.2 → duty-1.7.3}/src/duty/__main__.py +0 -0
  44. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/__init__.py +0 -0
  45. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/__init__.py +0 -0
  46. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/_io.py +0 -0
  47. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/autoflake.py +0 -0
  48. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/black.py +0 -0
  49. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/blacken_docs.py +0 -0
  50. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/build.py +0 -0
  51. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/coverage.py +0 -0
  52. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/flake8.py +0 -0
  53. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/git_changelog.py +0 -0
  54. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/griffe.py +0 -0
  55. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/interrogate.py +0 -0
  56. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/isort.py +0 -0
  57. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/mkdocs.py +0 -0
  58. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/mypy.py +0 -0
  59. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/pytest.py +0 -0
  60. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/ruff.py +0 -0
  61. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/safety.py +0 -0
  62. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/ssort.py +0 -0
  63. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/callables/twine.py +0 -0
  64. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/cli.py +0 -0
  65. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/collection.py +0 -0
  66. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/context.py +0 -0
  67. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/debug.py +0 -0
  68. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/decorator.py +0 -0
  69. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/exceptions.py +0 -0
  70. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/__init__.py +0 -0
  71. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_autoflake.py +0 -0
  72. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_base.py +0 -0
  73. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_black.py +0 -0
  74. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_blacken_docs.py +0 -0
  75. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_build.py +0 -0
  76. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_coverage.py +0 -0
  77. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_flake8.py +0 -0
  78. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_git_changelog.py +0 -0
  79. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_griffe.py +0 -0
  80. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_interrogate.py +0 -0
  81. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_isort.py +0 -0
  82. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_mkdocs.py +0 -0
  83. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_mypy.py +0 -0
  84. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_pytest.py +0 -0
  85. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_safety.py +0 -0
  86. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_ssort.py +0 -0
  87. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_twine.py +0 -0
  88. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/tools/_yore.py +0 -0
  89. {duty-1.7.2 → duty-1.7.3}/src/duty/_internal/validation.py +0 -0
  90. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/__init__.py +0 -0
  91. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/autoflake.py +0 -0
  92. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/black.py +0 -0
  93. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/blacken_docs.py +0 -0
  94. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/build.py +0 -0
  95. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/coverage.py +0 -0
  96. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/flake8.py +0 -0
  97. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/git_changelog.py +0 -0
  98. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/griffe.py +0 -0
  99. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/interrogate.py +0 -0
  100. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/isort.py +0 -0
  101. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/mkdocs.py +0 -0
  102. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/mypy.py +0 -0
  103. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/pytest.py +0 -0
  104. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/ruff.py +0 -0
  105. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/safety.py +0 -0
  106. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/ssort.py +0 -0
  107. {duty-1.7.2 → duty-1.7.3}/src/duty/callables/twine.py +0 -0
  108. {duty-1.7.2 → duty-1.7.3}/src/duty/cli.py +0 -0
  109. {duty-1.7.2 → duty-1.7.3}/src/duty/collection.py +0 -0
  110. {duty-1.7.2 → duty-1.7.3}/src/duty/completions.bash +0 -0
  111. {duty-1.7.2 → duty-1.7.3}/src/duty/context.py +0 -0
  112. {duty-1.7.2 → duty-1.7.3}/src/duty/decorator.py +0 -0
  113. {duty-1.7.2 → duty-1.7.3}/src/duty/exceptions.py +0 -0
  114. {duty-1.7.2 → duty-1.7.3}/src/duty/py.typed +0 -0
  115. {duty-1.7.2 → duty-1.7.3}/src/duty/tools.py +0 -0
  116. {duty-1.7.2 → duty-1.7.3}/src/duty/validation.py +0 -0
  117. {duty-1.7.2 → duty-1.7.3}/tests/__init__.py +0 -0
  118. {duty-1.7.2 → duty-1.7.3}/tests/conftest.py +0 -0
  119. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/arguments.py +0 -0
  120. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/basic.py +0 -0
  121. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/booleans.py +0 -0
  122. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/code.py +0 -0
  123. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/list.py +0 -0
  124. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/multiple.py +0 -0
  125. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/precedence.py +0 -0
  126. {duty-1.7.2 → duty-1.7.3}/tests/fixtures/validation.py +0 -0
  127. {duty-1.7.2 → duty-1.7.3}/tests/test_api.py +0 -0
  128. {duty-1.7.2 → duty-1.7.3}/tests/test_cli.py +0 -0
  129. {duty-1.7.2 → duty-1.7.3}/tests/test_collection.py +0 -0
  130. {duty-1.7.2 → duty-1.7.3}/tests/test_context.py +0 -0
  131. {duty-1.7.2 → duty-1.7.3}/tests/test_decorator.py +0 -0
  132. {duty-1.7.2 → duty-1.7.3}/tests/test_running.py +0 -0
  133. {duty-1.7.2 → duty-1.7.3}/tests/test_validation.py +0 -0
@@ -5,6 +5,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  <!-- insertion marker -->
8
+ ## [1.7.3](https://github.com/pawamoy/duty/releases/tag/1.7.3) - 2026-02-02
9
+
10
+ <small>[Compare with 1.7.2](https://github.com/pawamoy/duty/compare/1.7.2...1.7.3)</small>
11
+
12
+ ### Bug Fixes
13
+
14
+ - Also print standard error of ruff and ty commands ([7d0b320](https://github.com/pawamoy/duty/commit/7d0b3203d183c4067e9deec8da64f754677a6987) by Timothée Mazzucotelli).
15
+
8
16
  ## [1.7.2](https://github.com/pawamoy/duty/releases/tag/1.7.2) - 2026-01-30
9
17
 
10
18
  <small>[Compare with 1.7.1](https://github.com/pawamoy/duty/compare/1.7.1...1.7.2)</small>
duty-1.7.3/PKG-INFO ADDED
@@ -0,0 +1,140 @@
1
+ Metadata-Version: 2.4
2
+ Name: duty
3
+ Version: 1.7.3
4
+ Summary: A simple task runner.
5
+ Keywords: task-runner,task,runner,cross-platform
6
+ Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>
7
+ License-Expression: ISC
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3 :: Only
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Topic :: Documentation
20
+ Classifier: Topic :: Software Development
21
+ Classifier: Topic :: Utilities
22
+ Classifier: Typing :: Typed
23
+ Project-URL: Homepage, https://pawamoy.github.io/duty
24
+ Project-URL: Documentation, https://pawamoy.github.io/duty
25
+ Project-URL: Changelog, https://pawamoy.github.io/duty/changelog
26
+ Project-URL: Repository, https://github.com/pawamoy/duty
27
+ Project-URL: Issues, https://github.com/pawamoy/duty/issues
28
+ Project-URL: Discussions, https://github.com/pawamoy/duty/discussions
29
+ Project-URL: Gitter, https://gitter.im/duty/community
30
+ Project-URL: Funding, https://github.com/sponsors/pawamoy
31
+ Requires-Python: >=3.10
32
+ Requires-Dist: failprint>=1.0.5
33
+ Requires-Dist: typing-extensions>=4.0; python_version < "3.11"
34
+ Description-Content-Type: text/markdown
35
+
36
+ # duty
37
+
38
+ [![ci](https://github.com/pawamoy/duty/workflows/ci/badge.svg)](https://github.com/pawamoy/duty/actions?query=workflow%3Aci)
39
+ [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://pawamoy.github.io/duty/)
40
+ [![pypi version](https://img.shields.io/pypi/v/duty.svg)](https://pypi.org/project/duty/)
41
+ [![gitter](https://img.shields.io/badge/matrix-chat-4DB798.svg?style=flat)](https://app.gitter.im/#/room/#duty:gitter.im)
42
+
43
+ A simple task runner.
44
+
45
+ Inspired by [Invoke](https://github.com/pyinvoke/invoke).
46
+
47
+ ![demo](demo.svg)
48
+
49
+ ## Installation
50
+
51
+ ```bash
52
+ pip install duty
53
+ ```
54
+
55
+ With [`uv`](https://docs.astral.sh/uv/):
56
+
57
+ ```bash
58
+ uv tool install duty
59
+ ```
60
+
61
+ ## Quick start
62
+
63
+ Create a `duties.py` file at the root of your repository.
64
+
65
+ ```python
66
+ from duty import duty
67
+
68
+ @duty
69
+ def docs(ctx):
70
+ ctx.run("mkdocs build", title="Building documentation")
71
+ ```
72
+
73
+ You can now use the command line tool to run it:
74
+
75
+ ```bash
76
+ duty docs
77
+ ```
78
+
79
+ See the [Usage](https://pawamoy.github.io/duty/usage/)
80
+ section in the documentation for more examples.
81
+
82
+ Also see ["Why choosing duty over..."](https://pawamoy.github.io/duty/#why-duty-over).
83
+
84
+ ## Sponsors
85
+
86
+ <!-- sponsors-start -->
87
+
88
+ <div id="premium-sponsors" style="text-align: center;">
89
+
90
+ <div id="silver-sponsors"><b>Silver sponsors</b><p>
91
+ <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a><br>
92
+ <a href="https://docs.pydantic.dev/latest/"><img alt="Pydantic" src="https://pydantic.dev/assets/for-external/pydantic_logfire_logo_endorsed_lithium_rgb.svg" style="height: 180px; "></a><br>
93
+ </p></div>
94
+
95
+ <div id="bronze-sponsors"><b>Bronze sponsors</b><p>
96
+ <a href="https://www.nixtla.io/"><picture><source media="(prefers-color-scheme: light)" srcset="https://www.nixtla.io/img/logo/full-black.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.nixtla.io/img/logo/full-white.svg"><img alt="Nixtla" src="https://www.nixtla.io/img/logo/full-black.svg" style="height: 60px; "></picture></a><br>
97
+ </p></div>
98
+ </div>
99
+
100
+ ---
101
+
102
+ <div id="sponsors"><p>
103
+ <a href="https://github.com/ofek"><img alt="ofek" src="https://avatars.githubusercontent.com/u/9677399?u=386c330f212ce467ce7119d9615c75d0e9b9f1ce&v=4" style="height: 32px; border-radius: 100%;"></a>
104
+ <a href="https://github.com/samuelcolvin"><img alt="samuelcolvin" src="https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4" style="height: 32px; border-radius: 100%;"></a>
105
+ <a href="https://github.com/tlambert03"><img alt="tlambert03" src="https://avatars.githubusercontent.com/u/1609449?u=922abf0524b47739b37095e553c99488814b05db&v=4" style="height: 32px; border-radius: 100%;"></a>
106
+ <a href="https://github.com/ssbarnea"><img alt="ssbarnea" src="https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4" style="height: 32px; border-radius: 100%;"></a>
107
+ <a href="https://github.com/femtomc"><img alt="femtomc" src="https://avatars.githubusercontent.com/u/34410036?u=f13a71daf2a9f0d2da189beaa94250daa629e2d8&v=4" style="height: 32px; border-radius: 100%;"></a>
108
+ <a href="https://github.com/cmarqu"><img alt="cmarqu" src="https://avatars.githubusercontent.com/u/360986?v=4" style="height: 32px; border-radius: 100%;"></a>
109
+ <a href="https://github.com/kolenaIO"><img alt="kolenaIO" src="https://avatars.githubusercontent.com/u/77010818?v=4" style="height: 32px; border-radius: 100%;"></a>
110
+ <a href="https://github.com/ramnes"><img alt="ramnes" src="https://avatars.githubusercontent.com/u/835072?u=3fca03c3ba0051e2eb652b1def2188a94d1e1dc2&v=4" style="height: 32px; border-radius: 100%;"></a>
111
+ <a href="https://github.com/machow"><img alt="machow" src="https://avatars.githubusercontent.com/u/2574498?u=c41e3d2f758a05102d8075e38d67b9c17d4189d7&v=4" style="height: 32px; border-radius: 100%;"></a>
112
+ <a href="https://github.com/BenHammersley"><img alt="BenHammersley" src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4" style="height: 32px; border-radius: 100%;"></a>
113
+ <a href="https://github.com/trevorWieland"><img alt="trevorWieland" src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4" style="height: 32px; border-radius: 100%;"></a>
114
+ <a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli" src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4" style="height: 32px; border-radius: 100%;"></a>
115
+ <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=642fc2bdcc9904089c62fe5aec4e03ace32da67d&v=4" style="height: 32px; border-radius: 100%;"></a>
116
+ <a href="https://github.com/OdinManiac"><img alt="OdinManiac" src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4" style="height: 32px; border-radius: 100%;"></a>
117
+ <a href="https://github.com/rstudio-sponsorship"><img alt="rstudio-sponsorship" src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4" style="height: 32px; border-radius: 100%;"></a>
118
+ <a href="https://github.com/schlich"><img alt="schlich" src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4" style="height: 32px; border-radius: 100%;"></a>
119
+ <a href="https://github.com/butterlyn"><img alt="butterlyn" src="https://avatars.githubusercontent.com/u/53323535?v=4" style="height: 32px; border-radius: 100%;"></a>
120
+ <a href="https://github.com/livingbio"><img alt="livingbio" src="https://avatars.githubusercontent.com/u/10329983?v=4" style="height: 32px; border-radius: 100%;"></a>
121
+ <a href="https://github.com/NemetschekAllplan"><img alt="NemetschekAllplan" src="https://avatars.githubusercontent.com/u/912034?v=4" style="height: 32px; border-radius: 100%;"></a>
122
+ <a href="https://github.com/EricJayHartman"><img alt="EricJayHartman" src="https://avatars.githubusercontent.com/u/9259499?u=7e58cc7ec0cd3e85b27aec33656aa0f6612706dd&v=4" style="height: 32px; border-radius: 100%;"></a>
123
+ <a href="https://github.com/15r10nk"><img alt="15r10nk" src="https://avatars.githubusercontent.com/u/44680962?u=f04826446ff165742efa81e314bd03bf1724d50e&v=4" style="height: 32px; border-radius: 100%;"></a>
124
+ <a href="https://github.com/activeloopai"><img alt="activeloopai" src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px; border-radius: 100%;"></a>
125
+ <a href="https://github.com/roboflow"><img alt="roboflow" src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px; border-radius: 100%;"></a>
126
+ <a href="https://github.com/cmclaughlin"><img alt="cmclaughlin" src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4" style="height: 32px; border-radius: 100%;"></a>
127
+ <a href="https://github.com/blaisep"><img alt="blaisep" src="https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4" style="height: 32px; border-radius: 100%;"></a>
128
+ <a href="https://github.com/RapidataAI"><img alt="RapidataAI" src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height: 32px; border-radius: 100%;"></a>
129
+ <a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau" src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4" style="height: 32px; border-radius: 100%;"></a>
130
+ <a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate" src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height: 32px; border-radius: 100%;"></a>
131
+ <a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato" src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4" style="height: 32px; border-radius: 100%;"></a>
132
+ <a href="https://github.com/ChargeStorm"><img alt="ChargeStorm" src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px; border-radius: 100%;"></a>
133
+ <a href="https://github.com/Alphadelta14"><img alt="Alphadelta14" src="https://avatars.githubusercontent.com/u/480845?v=4" style="height: 32px; border-radius: 100%;"></a>
134
+ <a href="https://github.com/Cusp-AI"><img alt="Cusp-AI" src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height: 32px; border-radius: 100%;"></a>
135
+ </p></div>
136
+
137
+
138
+ *And 7 more private sponsor(s).*
139
+
140
+ <!-- sponsors-end -->
duty-1.7.3/README.md ADDED
@@ -0,0 +1,105 @@
1
+ # duty
2
+
3
+ [![ci](https://github.com/pawamoy/duty/workflows/ci/badge.svg)](https://github.com/pawamoy/duty/actions?query=workflow%3Aci)
4
+ [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://pawamoy.github.io/duty/)
5
+ [![pypi version](https://img.shields.io/pypi/v/duty.svg)](https://pypi.org/project/duty/)
6
+ [![gitter](https://img.shields.io/badge/matrix-chat-4DB798.svg?style=flat)](https://app.gitter.im/#/room/#duty:gitter.im)
7
+
8
+ A simple task runner.
9
+
10
+ Inspired by [Invoke](https://github.com/pyinvoke/invoke).
11
+
12
+ ![demo](demo.svg)
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ pip install duty
18
+ ```
19
+
20
+ With [`uv`](https://docs.astral.sh/uv/):
21
+
22
+ ```bash
23
+ uv tool install duty
24
+ ```
25
+
26
+ ## Quick start
27
+
28
+ Create a `duties.py` file at the root of your repository.
29
+
30
+ ```python
31
+ from duty import duty
32
+
33
+ @duty
34
+ def docs(ctx):
35
+ ctx.run("mkdocs build", title="Building documentation")
36
+ ```
37
+
38
+ You can now use the command line tool to run it:
39
+
40
+ ```bash
41
+ duty docs
42
+ ```
43
+
44
+ See the [Usage](https://pawamoy.github.io/duty/usage/)
45
+ section in the documentation for more examples.
46
+
47
+ Also see ["Why choosing duty over..."](https://pawamoy.github.io/duty/#why-duty-over).
48
+
49
+ ## Sponsors
50
+
51
+ <!-- sponsors-start -->
52
+
53
+ <div id="premium-sponsors" style="text-align: center;">
54
+
55
+ <div id="silver-sponsors"><b>Silver sponsors</b><p>
56
+ <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a><br>
57
+ <a href="https://docs.pydantic.dev/latest/"><img alt="Pydantic" src="https://pydantic.dev/assets/for-external/pydantic_logfire_logo_endorsed_lithium_rgb.svg" style="height: 180px; "></a><br>
58
+ </p></div>
59
+
60
+ <div id="bronze-sponsors"><b>Bronze sponsors</b><p>
61
+ <a href="https://www.nixtla.io/"><picture><source media="(prefers-color-scheme: light)" srcset="https://www.nixtla.io/img/logo/full-black.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.nixtla.io/img/logo/full-white.svg"><img alt="Nixtla" src="https://www.nixtla.io/img/logo/full-black.svg" style="height: 60px; "></picture></a><br>
62
+ </p></div>
63
+ </div>
64
+
65
+ ---
66
+
67
+ <div id="sponsors"><p>
68
+ <a href="https://github.com/ofek"><img alt="ofek" src="https://avatars.githubusercontent.com/u/9677399?u=386c330f212ce467ce7119d9615c75d0e9b9f1ce&v=4" style="height: 32px; border-radius: 100%;"></a>
69
+ <a href="https://github.com/samuelcolvin"><img alt="samuelcolvin" src="https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4" style="height: 32px; border-radius: 100%;"></a>
70
+ <a href="https://github.com/tlambert03"><img alt="tlambert03" src="https://avatars.githubusercontent.com/u/1609449?u=922abf0524b47739b37095e553c99488814b05db&v=4" style="height: 32px; border-radius: 100%;"></a>
71
+ <a href="https://github.com/ssbarnea"><img alt="ssbarnea" src="https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4" style="height: 32px; border-radius: 100%;"></a>
72
+ <a href="https://github.com/femtomc"><img alt="femtomc" src="https://avatars.githubusercontent.com/u/34410036?u=f13a71daf2a9f0d2da189beaa94250daa629e2d8&v=4" style="height: 32px; border-radius: 100%;"></a>
73
+ <a href="https://github.com/cmarqu"><img alt="cmarqu" src="https://avatars.githubusercontent.com/u/360986?v=4" style="height: 32px; border-radius: 100%;"></a>
74
+ <a href="https://github.com/kolenaIO"><img alt="kolenaIO" src="https://avatars.githubusercontent.com/u/77010818?v=4" style="height: 32px; border-radius: 100%;"></a>
75
+ <a href="https://github.com/ramnes"><img alt="ramnes" src="https://avatars.githubusercontent.com/u/835072?u=3fca03c3ba0051e2eb652b1def2188a94d1e1dc2&v=4" style="height: 32px; border-radius: 100%;"></a>
76
+ <a href="https://github.com/machow"><img alt="machow" src="https://avatars.githubusercontent.com/u/2574498?u=c41e3d2f758a05102d8075e38d67b9c17d4189d7&v=4" style="height: 32px; border-radius: 100%;"></a>
77
+ <a href="https://github.com/BenHammersley"><img alt="BenHammersley" src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4" style="height: 32px; border-radius: 100%;"></a>
78
+ <a href="https://github.com/trevorWieland"><img alt="trevorWieland" src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4" style="height: 32px; border-radius: 100%;"></a>
79
+ <a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli" src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4" style="height: 32px; border-radius: 100%;"></a>
80
+ <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=642fc2bdcc9904089c62fe5aec4e03ace32da67d&v=4" style="height: 32px; border-radius: 100%;"></a>
81
+ <a href="https://github.com/OdinManiac"><img alt="OdinManiac" src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4" style="height: 32px; border-radius: 100%;"></a>
82
+ <a href="https://github.com/rstudio-sponsorship"><img alt="rstudio-sponsorship" src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4" style="height: 32px; border-radius: 100%;"></a>
83
+ <a href="https://github.com/schlich"><img alt="schlich" src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4" style="height: 32px; border-radius: 100%;"></a>
84
+ <a href="https://github.com/butterlyn"><img alt="butterlyn" src="https://avatars.githubusercontent.com/u/53323535?v=4" style="height: 32px; border-radius: 100%;"></a>
85
+ <a href="https://github.com/livingbio"><img alt="livingbio" src="https://avatars.githubusercontent.com/u/10329983?v=4" style="height: 32px; border-radius: 100%;"></a>
86
+ <a href="https://github.com/NemetschekAllplan"><img alt="NemetschekAllplan" src="https://avatars.githubusercontent.com/u/912034?v=4" style="height: 32px; border-radius: 100%;"></a>
87
+ <a href="https://github.com/EricJayHartman"><img alt="EricJayHartman" src="https://avatars.githubusercontent.com/u/9259499?u=7e58cc7ec0cd3e85b27aec33656aa0f6612706dd&v=4" style="height: 32px; border-radius: 100%;"></a>
88
+ <a href="https://github.com/15r10nk"><img alt="15r10nk" src="https://avatars.githubusercontent.com/u/44680962?u=f04826446ff165742efa81e314bd03bf1724d50e&v=4" style="height: 32px; border-radius: 100%;"></a>
89
+ <a href="https://github.com/activeloopai"><img alt="activeloopai" src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px; border-radius: 100%;"></a>
90
+ <a href="https://github.com/roboflow"><img alt="roboflow" src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px; border-radius: 100%;"></a>
91
+ <a href="https://github.com/cmclaughlin"><img alt="cmclaughlin" src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4" style="height: 32px; border-radius: 100%;"></a>
92
+ <a href="https://github.com/blaisep"><img alt="blaisep" src="https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4" style="height: 32px; border-radius: 100%;"></a>
93
+ <a href="https://github.com/RapidataAI"><img alt="RapidataAI" src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height: 32px; border-radius: 100%;"></a>
94
+ <a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau" src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4" style="height: 32px; border-radius: 100%;"></a>
95
+ <a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate" src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height: 32px; border-radius: 100%;"></a>
96
+ <a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato" src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4" style="height: 32px; border-radius: 100%;"></a>
97
+ <a href="https://github.com/ChargeStorm"><img alt="ChargeStorm" src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px; border-radius: 100%;"></a>
98
+ <a href="https://github.com/Alphadelta14"><img alt="Alphadelta14" src="https://avatars.githubusercontent.com/u/480845?v=4" style="height: 32px; border-radius: 100%;"></a>
99
+ <a href="https://github.com/Cusp-AI"><img alt="Cusp-AI" src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height: 32px; border-radius: 100%;"></a>
100
+ </p></div>
101
+
102
+
103
+ *And 7 more private sponsor(s).*
104
+
105
+ <!-- sponsors-end -->
@@ -43,7 +43,7 @@ dependencies = [
43
43
  "failprint>=1.0.5",
44
44
  "typing-extensions>=4.0; python_version < '3.11'",
45
45
  ]
46
- version = "1.7.2"
46
+ version = "1.7.3"
47
47
 
48
48
  [project.urls]
49
49
  Homepage = "https://pawamoy.github.io/duty"
@@ -449,7 +449,8 @@ class ruff(Tool): # noqa: N801
449
449
  """
450
450
  process = subprocess.run( # noqa: S603
451
451
  [_find_ruff(), *self.cli_args],
452
- capture_output=True,
452
+ stdout=subprocess.PIPE,
453
+ stderr=subprocess.STDOUT,
453
454
  text=True,
454
455
  check=False,
455
456
  )
@@ -188,7 +188,8 @@ class ty(Tool): # noqa: N801
188
188
  """
189
189
  process = subprocess.run( # noqa: S603
190
190
  [_find_ty(), *self.cli_args],
191
- capture_output=True,
191
+ stdout=subprocess.PIPE,
192
+ stderr=subprocess.STDOUT,
192
193
  text=True,
193
194
  check=False,
194
195
  )
duty-1.7.2/PKG-INFO DELETED
@@ -1,87 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: duty
3
- Version: 1.7.2
4
- Summary: A simple task runner.
5
- Keywords: task-runner,task,runner,cross-platform
6
- Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>
7
- License-Expression: ISC
8
- License-File: LICENSE
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Intended Audience :: Developers
11
- Classifier: Programming Language :: Python
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3 :: Only
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Programming Language :: Python :: 3.14
19
- Classifier: Topic :: Documentation
20
- Classifier: Topic :: Software Development
21
- Classifier: Topic :: Utilities
22
- Classifier: Typing :: Typed
23
- Project-URL: Homepage, https://pawamoy.github.io/duty
24
- Project-URL: Documentation, https://pawamoy.github.io/duty
25
- Project-URL: Changelog, https://pawamoy.github.io/duty/changelog
26
- Project-URL: Repository, https://github.com/pawamoy/duty
27
- Project-URL: Issues, https://github.com/pawamoy/duty/issues
28
- Project-URL: Discussions, https://github.com/pawamoy/duty/discussions
29
- Project-URL: Gitter, https://gitter.im/duty/community
30
- Project-URL: Funding, https://github.com/sponsors/pawamoy
31
- Requires-Python: >=3.10
32
- Requires-Dist: failprint>=1.0.5
33
- Requires-Dist: typing-extensions>=4.0; python_version < "3.11"
34
- Description-Content-Type: text/markdown
35
-
36
- # duty
37
-
38
- [![ci](https://github.com/pawamoy/duty/workflows/ci/badge.svg)](https://github.com/pawamoy/duty/actions?query=workflow%3Aci)
39
- [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://pawamoy.github.io/duty/)
40
- [![pypi version](https://img.shields.io/pypi/v/duty.svg)](https://pypi.org/project/duty/)
41
- [![gitter](https://img.shields.io/badge/matrix-chat-4DB798.svg?style=flat)](https://app.gitter.im/#/room/#duty:gitter.im)
42
-
43
- A simple task runner.
44
-
45
- Inspired by [Invoke](https://github.com/pyinvoke/invoke).
46
-
47
- ![demo](demo.svg)
48
-
49
- ## Installation
50
-
51
- ```bash
52
- pip install duty
53
- ```
54
-
55
- With [`uv`](https://docs.astral.sh/uv/):
56
-
57
- ```bash
58
- uv tool install duty
59
- ```
60
-
61
- ## Quick start
62
-
63
- Create a `duties.py` file at the root of your repository.
64
-
65
- ```python
66
- from duty import duty
67
-
68
- @duty
69
- def docs(ctx):
70
- ctx.run("mkdocs build", title="Building documentation")
71
- ```
72
-
73
- You can now use the command line tool to run it:
74
-
75
- ```bash
76
- duty docs
77
- ```
78
-
79
- See the [Usage](https://pawamoy.github.io/duty/usage/)
80
- section in the documentation for more examples.
81
-
82
- Also see ["Why choosing duty over..."](https://pawamoy.github.io/duty/#why-duty-over).
83
-
84
- ## Sponsors
85
-
86
- <!-- sponsors-start -->
87
- <!-- sponsors-end -->
duty-1.7.2/README.md DELETED
@@ -1,52 +0,0 @@
1
- # duty
2
-
3
- [![ci](https://github.com/pawamoy/duty/workflows/ci/badge.svg)](https://github.com/pawamoy/duty/actions?query=workflow%3Aci)
4
- [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://pawamoy.github.io/duty/)
5
- [![pypi version](https://img.shields.io/pypi/v/duty.svg)](https://pypi.org/project/duty/)
6
- [![gitter](https://img.shields.io/badge/matrix-chat-4DB798.svg?style=flat)](https://app.gitter.im/#/room/#duty:gitter.im)
7
-
8
- A simple task runner.
9
-
10
- Inspired by [Invoke](https://github.com/pyinvoke/invoke).
11
-
12
- ![demo](demo.svg)
13
-
14
- ## Installation
15
-
16
- ```bash
17
- pip install duty
18
- ```
19
-
20
- With [`uv`](https://docs.astral.sh/uv/):
21
-
22
- ```bash
23
- uv tool install duty
24
- ```
25
-
26
- ## Quick start
27
-
28
- Create a `duties.py` file at the root of your repository.
29
-
30
- ```python
31
- from duty import duty
32
-
33
- @duty
34
- def docs(ctx):
35
- ctx.run("mkdocs build", title="Building documentation")
36
- ```
37
-
38
- You can now use the command line tool to run it:
39
-
40
- ```bash
41
- duty docs
42
- ```
43
-
44
- See the [Usage](https://pawamoy.github.io/duty/usage/)
45
- section in the documentation for more examples.
46
-
47
- Also see ["Why choosing duty over..."](https://pawamoy.github.io/duty/#why-duty-over).
48
-
49
- ## Sponsors
50
-
51
- <!-- sponsors-start -->
52
- <!-- sponsors-end -->
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes