makeapp 1.9.0__tar.gz → 2.0.0__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 (154) hide show
  1. makeapp-1.9.0/makeapp/app_templates/__default__/.hgignore → makeapp-2.0.0/.gitignore +5 -4
  2. {makeapp-1.9.0 → makeapp-2.0.0}/LICENSE +1 -1
  3. makeapp-2.0.0/PKG-INFO +115 -0
  4. makeapp-2.0.0/README.md +99 -0
  5. makeapp-2.0.0/pyproject.toml +91 -0
  6. makeapp-2.0.0/src/makeapp/__init__.py +3 -0
  7. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/__default__/.gitignore +5 -1
  8. makeapp-2.0.0/src/makeapp/app_templates/__default__/AUTHORS.md +13 -0
  9. makeapp-2.0.0/src/makeapp/app_templates/__default__/CHANGELOG.md +5 -0
  10. makeapp-1.9.0/makeapp/app_templates/__default__/CONTRIBUTING → makeapp-2.0.0/src/makeapp/app_templates/__default__/CONTRIBUTING.md +6 -8
  11. makeapp-1.9.0/makeapp/app_templates/__default__/INSTALL → makeapp-2.0.0/src/makeapp/app_templates/__default__/INSTALL.md +5 -10
  12. makeapp-2.0.0/src/makeapp/app_templates/__default__/README.md +22 -0
  13. makeapp-2.0.0/src/makeapp/app_templates/__default__/docs/index.md +37 -0
  14. makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/quickstart.rst → makeapp-2.0.0/src/makeapp/app_templates/__default__/docs/quickstart.md +1 -3
  15. makeapp-2.0.0/src/makeapp/app_templates/__default__/mkdocs.yml +33 -0
  16. makeapp-2.0.0/src/makeapp/app_templates/__default__/pyproject.toml +114 -0
  17. makeapp-2.0.0/src/makeapp/app_templates/__default__/ruff.toml +44 -0
  18. {makeapp-1.9.0/makeapp/app_templates/__default__/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/__default__/src/__package_name__}/__init__.py +1 -4
  19. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/__default__/tests/__init__.py +1 -2
  20. makeapp-2.0.0/src/makeapp/app_templates/click/pyproject.toml +6 -0
  21. {makeapp-1.9.0/makeapp/app_templates/click/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/click/src/__package_name__}/cli.py +3 -3
  22. makeapp-2.0.0/src/makeapp/app_templates/console/pyproject.toml +5 -0
  23. {makeapp-1.9.0/makeapp/app_templates/console/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/console/src/__package_name__}/cli.py +3 -3
  24. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/django/.github/workflows/python-package.yml +17 -14
  25. makeapp-2.0.0/src/makeapp/app_templates/django/makeappconf.py +9 -0
  26. makeapp-2.0.0/src/makeapp/app_templates/django/pyproject.toml +19 -0
  27. makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__/__init__.py +6 -0
  28. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/admin.py +1 -1
  29. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/apps.py +3 -3
  30. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/models.py +2 -2
  31. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/tests/conftest.py +0 -1
  32. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/views.py +2 -2
  33. makeapp-2.0.0/src/makeapp/app_templates/pytestplugin/pyproject.toml +13 -0
  34. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/makeappconf.py +15 -15
  35. makeapp-2.0.0/src/makeapp/app_templates/webscaff/pyproject.toml +9 -0
  36. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/requirements.txt +4 -4
  37. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/core/uwsgiinit.py +3 -3
  38. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/settings/auto.py +3 -4
  39. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/settings/sub_paths.py +3 -3
  40. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/tests/conftest.py +1 -1
  41. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/tests/requirements.txt +2 -2
  42. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/wscaff.yml +1 -1
  43. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/appconfig.py +6 -6
  44. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/appmaker.py +51 -38
  45. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/apptemplate.py +8 -8
  46. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/apptools.py +165 -101
  47. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/cli.py +76 -21
  48. makeapp-2.0.0/src/makeapp/helpers/dist.py +36 -0
  49. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/helpers/files.py +8 -8
  50. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/helpers/vcs.py +32 -58
  51. makeapp-2.0.0/src/makeapp/helpers/venvs.py +33 -0
  52. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/rendering.py +5 -17
  53. makeapp-2.0.0/src/makeapp/utils.py +191 -0
  54. makeapp-1.9.0/AUTHORS +0 -10
  55. makeapp-1.9.0/CHANGELOG +0 -281
  56. makeapp-1.9.0/INSTALL +0 -31
  57. makeapp-1.9.0/MANIFEST.in +0 -17
  58. makeapp-1.9.0/PKG-INFO +0 -143
  59. makeapp-1.9.0/README.rst +0 -120
  60. makeapp-1.9.0/docs/Makefile +0 -130
  61. makeapp-1.9.0/docs/source/conf.py +0 -216
  62. makeapp-1.9.0/docs/source/index.rst +0 -50
  63. makeapp-1.9.0/docs/source/quickstart.rst +0 -110
  64. makeapp-1.9.0/docs/source/rst_guide.rst +0 -80
  65. makeapp-1.9.0/docs/source/skeletons.rst +0 -74
  66. makeapp-1.9.0/docs/source/userconf.rst +0 -81
  67. makeapp-1.9.0/makeapp/__init__.py +0 -6
  68. makeapp-1.9.0/makeapp/app_templates/__default__/.coveragerc +0 -2
  69. makeapp-1.9.0/makeapp/app_templates/__default__/AUTHORS +0 -16
  70. makeapp-1.9.0/makeapp/app_templates/__default__/CHANGELOG +0 -6
  71. makeapp-1.9.0/makeapp/app_templates/__default__/MANIFEST.in +0 -16
  72. makeapp-1.9.0/makeapp/app_templates/__default__/README.rst +0 -28
  73. makeapp-1.9.0/makeapp/app_templates/__default__/docs/Makefile +0 -20
  74. makeapp-1.9.0/makeapp/app_templates/__default__/docs/requirements.txt +0 -1
  75. makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/conf.py +0 -160
  76. makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/index.rst +0 -29
  77. makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/rst_guide.rst +0 -103
  78. makeapp-1.9.0/makeapp/app_templates/__default__/setup.cfg +0 -4
  79. makeapp-1.9.0/makeapp/app_templates/__default__/setup.py +0 -69
  80. makeapp-1.9.0/makeapp/app_templates/__default__/tests/test_module.py +0 -18
  81. makeapp-1.9.0/makeapp/app_templates/__default__/tox.ini +0 -20
  82. makeapp-1.9.0/makeapp/app_templates/click/setup.py +0 -6
  83. makeapp-1.9.0/makeapp/app_templates/console/setup.py +0 -5
  84. makeapp-1.9.0/makeapp/app_templates/django/.coveragerc +0 -3
  85. makeapp-1.9.0/makeapp/app_templates/django/MANIFEST.in +0 -11
  86. makeapp-1.9.0/makeapp/app_templates/django/__module_name__/__init__.py +0 -6
  87. makeapp-1.9.0/makeapp/app_templates/django/makeappconf.py +0 -12
  88. makeapp-1.9.0/makeapp/app_templates/django/pytest.ini +0 -2
  89. makeapp-1.9.0/makeapp/app_templates/django/setup.py +0 -5
  90. makeapp-1.9.0/makeapp/app_templates/django/tox.ini +0 -20
  91. makeapp-1.9.0/makeapp/app_templates/pytest/setup.cfg +0 -6
  92. makeapp-1.9.0/makeapp/app_templates/pytest/setup.py +0 -14
  93. makeapp-1.9.0/makeapp/app_templates/pytestplugin/makeappconf.py +0 -9
  94. makeapp-1.9.0/makeapp/app_templates/pytestplugin/setup.py +0 -19
  95. makeapp-1.9.0/makeapp/app_templates/webscaff/.hgignore +0 -9
  96. makeapp-1.9.0/makeapp/app_templates/webscaff/setup.py +0 -12
  97. makeapp-1.9.0/makeapp/app_templates/webscaff/state/media/empty +0 -0
  98. makeapp-1.9.0/makeapp/app_templates/webscaff/state/spool/empty +0 -0
  99. makeapp-1.9.0/makeapp/app_templates/webscaff/state/static/empty +0 -0
  100. makeapp-1.9.0/makeapp/helpers/__init__.py +0 -0
  101. makeapp-1.9.0/makeapp/helpers/dist.py +0 -38
  102. makeapp-1.9.0/makeapp/utils.py +0 -133
  103. makeapp-1.9.0/makeapp.egg-info/PKG-INFO +0 -143
  104. makeapp-1.9.0/makeapp.egg-info/SOURCES.txt +0 -132
  105. makeapp-1.9.0/makeapp.egg-info/dependency_links.txt +0 -1
  106. makeapp-1.9.0/makeapp.egg-info/entry_points.txt +0 -3
  107. makeapp-1.9.0/makeapp.egg-info/not-zip-safe +0 -1
  108. makeapp-1.9.0/makeapp.egg-info/requires.txt +0 -6
  109. makeapp-1.9.0/makeapp.egg-info/top_level.txt +0 -1
  110. makeapp-1.9.0/setup.cfg +0 -11
  111. makeapp-1.9.0/setup.py +0 -68
  112. makeapp-1.9.0/tests/conftest.py +0 -56
  113. makeapp-1.9.0/tests/test_appmaker.py +0 -141
  114. makeapp-1.9.0/tests/test_apptools.py +0 -51
  115. makeapp-1.9.0/tests/test_helpers.py +0 -5
  116. /makeapp-1.9.0/makeapp/app_templates/pytest/tests/test_module.py → /makeapp-2.0.0/src/makeapp/app_templates/__default__/tests/test_basic.py +0 -0
  117. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/click/makeappconf.py +0 -0
  118. {makeapp-1.9.0/makeapp/app_templates/__default__/docs/build → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__/locale}/empty +0 -0
  119. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/management/__init__.py +0 -0
  120. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/management/commands/__init__.py +0 -0
  121. {makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/_static → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__/templates}/empty +0 -0
  122. {makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/_templates → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__/templatetags}/empty +0 -0
  123. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/tests/__init__.py +0 -0
  124. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__}/tests/test_basic.py +0 -0
  125. {makeapp-1.9.0/makeapp/app_templates/pytestplugin/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/pytestplugin/src/__package_name__}/entry.py +0 -0
  126. /makeapp-1.9.0/makeapp/app_templates/pytestplugin/tests/test_module.py → /makeapp-2.0.0/src/makeapp/app_templates/pytestplugin/tests/test_basic.py +0 -0
  127. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/.gitignore +0 -0
  128. /makeapp-1.9.0/makeapp/app_templates/webscaff/conf/__module_name__-certbot-hook.sh → /makeapp-2.0.0/src/makeapp/app_templates/webscaff/conf/__package_name__-certbot-hook.sh +0 -0
  129. /makeapp-1.9.0/makeapp/app_templates/webscaff/conf/__module_name__.service → /makeapp-2.0.0/src/makeapp/app_templates/webscaff/conf/__package_name__.service +0 -0
  130. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/conf/env_production.py +0 -0
  131. {makeapp-1.9.0/makeapp/app_templates/pytest/tests → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__/settings}/__init__.py +0 -0
  132. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/settings/base.py +0 -0
  133. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/settings/env_development.py +0 -0
  134. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/settings/env_testing.py +0 -0
  135. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__ → makeapp-2.0.0/src/makeapp/app_templates/webscaff/src/__package_name__}/uwsgicfg.py +0 -0
  136. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__/locale → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/certbot}/empty +0 -0
  137. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__/templates → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/dumps}/empty +0 -0
  138. {makeapp-1.9.0/makeapp/app_templates/django/__module_name__/templatetags → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/media}/empty +0 -0
  139. {makeapp-1.9.0/makeapp/app_templates/webscaff/state/certbot → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/spool}/empty +0 -0
  140. {makeapp-1.9.0/makeapp/app_templates/webscaff/state/dumps → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/static}/empty +0 -0
  141. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/tests/test_module.py +0 -0
  142. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/exceptions.py +0 -0
  143. {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__/settings → makeapp-2.0.0/src/makeapp/helpers}/__init__.py +0 -0
  144. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/apache2 +0 -0
  145. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/apache2_src +0 -0
  146. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/bsd2cl +0 -0
  147. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/bsd3cl +0 -0
  148. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl2 +0 -0
  149. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl2_src +0 -0
  150. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl3 +0 -0
  151. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl3_src +0 -0
  152. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/mit +0 -0
  153. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/no +0 -0
  154. {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/no_src +0 -0
@@ -1,12 +1,13 @@
1
- syntax:glob
2
- {% block contents %}
3
1
  .project
4
2
  .pydevproject
5
3
  .idea
6
4
  .tox
5
+ .venv
7
6
  __pycache__
8
7
  *.pyc
9
8
  *.pyo
10
9
  *.egg-info
11
- docs/_build/
12
- {% endblock %}
10
+ .mypy_cache
11
+ .ruff_cache
12
+ .pytest_cache
13
+ .env
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013-2023, Igor `idle sign` Starikov
1
+ Copyright (c) 2013-2025, Igor `idle sign` Starikov
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
makeapp-2.0.0/PKG-INFO ADDED
@@ -0,0 +1,115 @@
1
+ Metadata-Version: 2.4
2
+ Name: makeapp
3
+ Version: 2.0.0
4
+ Summary: Simplifies routine Python application development processes.
5
+ Project-URL: Homepage, https://github.com/idlesign/makeapp
6
+ Project-URL: Documentation, https://makeapp.readthedocs.io/
7
+ Author-email: Igor Starikov <idlesign@yandex.ru>
8
+ License-Expression: BSD-3-Clause
9
+ License-File: LICENSE
10
+ Keywords: development,scaffolding
11
+ Requires-Python: >=3.10
12
+ Requires-Dist: click
13
+ Requires-Dist: jinja2~=3.1
14
+ Requires-Dist: requests
15
+ Description-Content-Type: text/markdown
16
+
17
+ # makeapp
18
+
19
+ https://github.com/idlesign/makeapp
20
+
21
+ [![PyPI - Version](https://img.shields.io/pypi/v/makeapp)](https://pypi.python.org/pypi/makeapp)
22
+ [![License](https://img.shields.io/pypi/l/makeapp)](https://pypi.python.org/pypi/makeapp)
23
+ [![Coverage](https://img.shields.io/coverallsCoverage/github/idlesign/makeapp)](https://coveralls.io/r/idlesign/makeapp)
24
+ [![Docs](https://img.shields.io/readthedocs/makeapp)](https://makeapp.readthedocs.io/)
25
+
26
+ ## Description
27
+
28
+ *Simplifies routine Python application development processes.*
29
+
30
+ * Make a skeleton for your new application with one console command.
31
+ * Automatically create a VCS repository for your application.
32
+ * Automatically check whether the chosen application name is not already in use.
33
+ * Customize new application layouts with skeleton templates.
34
+ * Put some skeleton default settings into a configuration file not to mess with command line switches anymore.
35
+ * Easily add entries to your changelog.
36
+ * Publish your application to remotes (VCS, PyPI) with a single command.
37
+ * Easily bootstrap your development environment.
38
+ * Run code styling/linting.
39
+
40
+ ## Application scaffolding
41
+
42
+ Scaffold a new application:
43
+
44
+ ``` bash
45
+ ma new shiny_app /home/librarian/shiny/ --description "My app." --author "I am"
46
+ ```
47
+
48
+ !!! note
49
+ `ma` is a convenient alias for `makeapp` command.
50
+
51
+ This will create a decent application skeleton using the default skeleton template (``pyproject.toml``, docs, tests, etc.)
52
+ and initialize Git repository.
53
+
54
+ `makeapp` also bundles templates for commonly used application types:
55
+
56
+ * `click` powered app
57
+ * `pytest` plugin
58
+ * `Django` app
59
+ * `webscaff` project [here](https://github.com/idlesign/webscaff)
60
+ * etc.
61
+
62
+ Multiple templates can be used together. Complete list of featured templates can be found in the documentation.
63
+ User-made templates are also supported.
64
+
65
+
66
+ ## Adding changes
67
+
68
+ When you're ready to add another entry to your changelog use `change` command:
69
+
70
+ ``` bash
71
+ ma change "+ New 'change' command implemented"
72
+ ```
73
+
74
+ This will also stage and commit all changed files.
75
+
76
+ ## Application publishing
77
+
78
+ When you're ready to publish issue the following command:
79
+
80
+ ``` bash
81
+ ma release
82
+ ; Bump version number part manually: major, minor, patch
83
+ ma release --increment major
84
+ ```
85
+
86
+ This will automatically:
87
+
88
+ * bump up application version number
89
+ * tag version in VCS
90
+ * push sources to remote repository
91
+ * upload application package to PyPI
92
+
93
+
94
+ ## Dev environment bootstrap
95
+
96
+ Or you just want to participate in the development of some other app.
97
+
98
+ Use `tools` and `up` commands to initialize tools and the environment to develop the application.
99
+
100
+ ``` bash
101
+ ma tools
102
+ ma up
103
+ ```
104
+
105
+ ## Code style
106
+
107
+ Apply code style with `style` command:
108
+
109
+ ``` bash
110
+ ma style
111
+ ```
112
+
113
+ ## Documentation
114
+
115
+ https://makeapp.readthedocs.io/
@@ -0,0 +1,99 @@
1
+ # makeapp
2
+
3
+ https://github.com/idlesign/makeapp
4
+
5
+ [![PyPI - Version](https://img.shields.io/pypi/v/makeapp)](https://pypi.python.org/pypi/makeapp)
6
+ [![License](https://img.shields.io/pypi/l/makeapp)](https://pypi.python.org/pypi/makeapp)
7
+ [![Coverage](https://img.shields.io/coverallsCoverage/github/idlesign/makeapp)](https://coveralls.io/r/idlesign/makeapp)
8
+ [![Docs](https://img.shields.io/readthedocs/makeapp)](https://makeapp.readthedocs.io/)
9
+
10
+ ## Description
11
+
12
+ *Simplifies routine Python application development processes.*
13
+
14
+ * Make a skeleton for your new application with one console command.
15
+ * Automatically create a VCS repository for your application.
16
+ * Automatically check whether the chosen application name is not already in use.
17
+ * Customize new application layouts with skeleton templates.
18
+ * Put some skeleton default settings into a configuration file not to mess with command line switches anymore.
19
+ * Easily add entries to your changelog.
20
+ * Publish your application to remotes (VCS, PyPI) with a single command.
21
+ * Easily bootstrap your development environment.
22
+ * Run code styling/linting.
23
+
24
+ ## Application scaffolding
25
+
26
+ Scaffold a new application:
27
+
28
+ ``` bash
29
+ ma new shiny_app /home/librarian/shiny/ --description "My app." --author "I am"
30
+ ```
31
+
32
+ !!! note
33
+ `ma` is a convenient alias for `makeapp` command.
34
+
35
+ This will create a decent application skeleton using the default skeleton template (``pyproject.toml``, docs, tests, etc.)
36
+ and initialize Git repository.
37
+
38
+ `makeapp` also bundles templates for commonly used application types:
39
+
40
+ * `click` powered app
41
+ * `pytest` plugin
42
+ * `Django` app
43
+ * `webscaff` project [here](https://github.com/idlesign/webscaff)
44
+ * etc.
45
+
46
+ Multiple templates can be used together. Complete list of featured templates can be found in the documentation.
47
+ User-made templates are also supported.
48
+
49
+
50
+ ## Adding changes
51
+
52
+ When you're ready to add another entry to your changelog use `change` command:
53
+
54
+ ``` bash
55
+ ma change "+ New 'change' command implemented"
56
+ ```
57
+
58
+ This will also stage and commit all changed files.
59
+
60
+ ## Application publishing
61
+
62
+ When you're ready to publish issue the following command:
63
+
64
+ ``` bash
65
+ ma release
66
+ ; Bump version number part manually: major, minor, patch
67
+ ma release --increment major
68
+ ```
69
+
70
+ This will automatically:
71
+
72
+ * bump up application version number
73
+ * tag version in VCS
74
+ * push sources to remote repository
75
+ * upload application package to PyPI
76
+
77
+
78
+ ## Dev environment bootstrap
79
+
80
+ Or you just want to participate in the development of some other app.
81
+
82
+ Use `tools` and `up` commands to initialize tools and the environment to develop the application.
83
+
84
+ ``` bash
85
+ ma tools
86
+ ma up
87
+ ```
88
+
89
+ ## Code style
90
+
91
+ Apply code style with `style` command:
92
+
93
+ ``` bash
94
+ ma style
95
+ ```
96
+
97
+ ## Documentation
98
+
99
+ https://makeapp.readthedocs.io/
@@ -0,0 +1,91 @@
1
+ [project]
2
+ name = "makeapp"
3
+ dynamic = ["version"]
4
+ description = "Simplifies routine Python application development processes."
5
+ authors = [
6
+ { name = "Igor Starikov", email = "idlesign@yandex.ru" }
7
+ ]
8
+ readme = "README.md"
9
+ license = "BSD-3-Clause"
10
+ license-files = ["LICENSE"]
11
+ requires-python = ">=3.10"
12
+ keywords = ["scaffolding", "development"]
13
+ dependencies = [
14
+ "requests",
15
+ "click",
16
+ "jinja2~=3.1",
17
+ ]
18
+
19
+ [project.urls]
20
+ Homepage = "https://github.com/idlesign/makeapp"
21
+ Documentation = "https://makeapp.readthedocs.io/"
22
+
23
+ [project.scripts]
24
+ makeapp = "makeapp.cli:main"
25
+ ma = "makeapp.cli:main"
26
+
27
+ [dependency-groups]
28
+ dev = [
29
+ {include-group = "docs"},
30
+ {include-group = "linters"},
31
+ {include-group = "tests"},
32
+ ]
33
+ docs = [
34
+ "mkdocs-material",
35
+ "mkdocs-navsorted-plugin",
36
+ ]
37
+ linters = [
38
+ ]
39
+ tests = [
40
+ "pytest",
41
+ ]
42
+
43
+ [build-system]
44
+ requires = ["hatchling"]
45
+ build-backend = "hatchling.build"
46
+
47
+ [tool.hatch.version]
48
+ path = "src/makeapp/__init__.py"
49
+
50
+ [tool.hatch.build.targets.wheel]
51
+ packages = ["src/makeapp"]
52
+
53
+ [tool.hatch.build.targets.sdist]
54
+ packages = ["src/"]
55
+
56
+ [tool.pytest.ini_options]
57
+ testpaths = [
58
+ "tests",
59
+ ]
60
+
61
+ [tool.coverage.run]
62
+ source = [
63
+ "src/",
64
+ ]
65
+ omit = [
66
+ "*/app_templates/*",
67
+ "*/license_templates/*",
68
+ "*/cli.py",
69
+ ]
70
+
71
+ [tool.coverage.report]
72
+ fail_under = 90.00
73
+ exclude_also = [
74
+ "raise NotImplementedError",
75
+ "if TYPE_CHECKING:",
76
+ ]
77
+
78
+ [tool.tox]
79
+ skip_missing_interpreters = true
80
+ env_list = [
81
+ "py310",
82
+ "py311",
83
+ "py312",
84
+ "py313",
85
+ ]
86
+
87
+ [tool.tox.env_run_base]
88
+ dependency_groups = ["tests"]
89
+ commands = [
90
+ ["pytest", { replace = "posargs", default = ["tests"], extend = true }],
91
+ ]
@@ -0,0 +1,3 @@
1
+
2
+ VERSION = '2.0.0'
3
+ """Application version number tuple."""
@@ -3,9 +3,13 @@
3
3
  .pydevproject
4
4
  .idea
5
5
  .tox
6
+ .venv
6
7
  __pycache__
7
8
  *.pyc
8
9
  *.pyo
9
10
  *.egg-info
10
- docs/_build/
11
+ .mypy_cache
12
+ .ruff_cache
13
+ .pytest_cache
14
+ .env
11
15
  {% endblock %}
@@ -0,0 +1,13 @@
1
+ # {{ app_name }} authors
2
+
3
+ Created by {{ author }}.
4
+
5
+
6
+ ## Contributors
7
+
8
+ Here could be your name.
9
+
10
+
11
+ ## Translators
12
+
13
+ Here could be your name.
@@ -0,0 +1,5 @@
1
+ # {{ app_name }} changelog
2
+
3
+
4
+ ### Unreleased
5
+ * ++ Basic functionality.
@@ -1,22 +1,20 @@
1
- {{ get_app_title_rst('contributing') }}
1
+ # contributing {{ app_name }}
2
2
 
3
3
 
4
- Submit issues
5
- -------------
4
+ ## Submit issues
6
5
 
7
6
  If you spotted something weird in application behavior or want to propose a feature you are welcome.
8
7
 
9
8
 
10
- Write code
11
- ----------
9
+ ## Write code
10
+
12
11
  If you are eager to participate in application development and to work on an existing issue (whether it should
13
12
  be a bugfix or a feature implementation), fork, write code, and make a pull request right from the forked project page.
14
13
 
15
14
 
16
- Spread the word
17
- ---------------
15
+ ## Spread the word
18
16
 
19
- If you have some tips and tricks or any other words that you think might be of interest for the others publish it
17
+ If you have some tips and tricks or any other words that you think might be of interest for the others --- publish it
20
18
  wherever you find convenient.
21
19
 
22
20
 
@@ -1,23 +1,18 @@
1
- {{ get_app_title_rst('installation') }}
1
+ # {{ app_name }} installation
2
2
 
3
3
 
4
4
  Python ``pip`` package is required to install ``{{ app_name }}``.
5
5
 
6
6
 
7
- From sources
8
- ------------
7
+ ## From sources
9
8
 
10
- Use the following command line to install ``{{ app_name }}`` from sources directory (containing setup.py):
11
9
 
12
- pip install .
13
-
14
- or
10
+ Use the following command line to install ``{{ app_name }}`` from sources directory (containing ``pyproject.toml``):
15
11
 
16
- python setup.py install
12
+ pip install .
17
13
 
18
14
 
19
- From PyPI
20
- ---------
15
+ ## From PyPI
21
16
 
22
17
  Alternatively you can install ``{{ app_name }}`` from PyPI:
23
18
 
@@ -0,0 +1,22 @@
1
+ # {{ app_name }}
2
+
3
+ {{ url }}
4
+
5
+ [![PyPI - Version](https://img.shields.io/pypi/v/{{ app_name }})](https://pypi.python.org/pypi/{{ app_name }})
6
+ [![License](https://img.shields.io/pypi/l/{{ app_name }})](https://pypi.python.org/pypi/{{ app_name }})
7
+ [![Docs](https://img.shields.io/readthedocs/{{ app_name }})](https://{{ app_name }}.readthedocs.io/)
8
+ {% block badges %}
9
+ {% endblock %}
10
+
11
+ **Work in progress. Stay tuned.**
12
+
13
+ ## Description
14
+
15
+ *{{ description }}*
16
+
17
+ Here will be an introductory description.
18
+
19
+
20
+ ## Documentation
21
+
22
+ https://{{ app_name }}.readthedocs.io/
@@ -0,0 +1,37 @@
1
+ # Introduction
2
+
3
+ <{{ url }}>
4
+
5
+
6
+ ## Description
7
+
8
+ *{{ description }}*
9
+
10
+ Here will be an introductory description.
11
+
12
+
13
+ ## Requirements
14
+
15
+ 1. Python {{ python_version }}+
16
+
17
+ ## Installation
18
+
19
+ ``` shell
20
+ pip install {{ app_name }}
21
+ ```
22
+
23
+
24
+ ## Get involved into {{ app_name }}
25
+
26
+ !!! success "Submit issues"
27
+ If you spotted something weird in application behavior or want to propose a feature you are welcome.
28
+
29
+ !!! tip "Write code"
30
+ If you are eager to participate in application development,
31
+ fork it, write
32
+ your code, whether it should be a bugfix or a feature implementation,
33
+ and make a pull request right from the forked project page.
34
+
35
+ !!! info "Spread the word"
36
+ If you have some tips and tricks or any other words in mind that
37
+ you think might be of interest for the others --- publish it.
@@ -1,5 +1,3 @@
1
- Quickstart
2
- ==========
1
+ # Quickstart
3
2
 
4
3
  Here will be a short and basic usage sample.
5
-
@@ -0,0 +1,33 @@
1
+ site_name: {{ app_name }}
2
+ #site_url: !ENV READTHEDOCS_CANONICAL_URL
3
+
4
+ copyright: Copyright &copy; {{ year }}, {{ author }}
5
+
6
+ #repo_url: https://some.com/user/repo
7
+ #edit_uri: edit/master/docs/
8
+
9
+ plugins:
10
+ - search
11
+
12
+ theme:
13
+ name: material
14
+ palette:
15
+ primary: indigo
16
+ features:
17
+ - navigation.top
18
+ - toc.follow
19
+ - content.action.view
20
+ - content.action.edit
21
+ - content.code.copy
22
+
23
+ markdown_extensions:
24
+ - admonition
25
+ - pymdownx.highlight:
26
+ anchor_linenums: true
27
+ line_spans: __span
28
+ pygments_lang_class: true
29
+ - pymdownx.inlinehilite
30
+ - pymdownx.snippets
31
+ - pymdownx.superfences
32
+ - toc:
33
+ permalink: true
@@ -0,0 +1,114 @@
1
+ [project]
2
+ name = "{{ app_name }}"
3
+ dynamic = ["version"]
4
+ description = "{{ description }}"
5
+ authors = [
6
+ { name = "{{ author }}", email = "{{ author_email }}" }
7
+ ]
8
+ readme = "README.md"
9
+
10
+ classifiers = [
11
+ {% block classifiers %}
12
+ "Development Status :: 4 - Beta", # 3 - Alpha; 5 - Production/Stable
13
+ "Operating System :: OS Independent",
14
+ "Programming Language :: Python :: 3",
15
+ "Programming Language :: Python :: {{ python_version }}",
16
+ {% endblock %}
17
+ ]
18
+
19
+ license = "{{ license_ident }}"
20
+ license-files = ["LICENSE"]
21
+
22
+ requires-python = ">={{ python_version }}"
23
+ dependencies = [
24
+ {% block deps %}
25
+ {% endblock %}
26
+ ]
27
+
28
+ [project.urls]
29
+ Homepage = "{{ url }}"
30
+
31
+ [project.scripts]
32
+ {% block scripts %}
33
+ {% endblock %}
34
+
35
+ {% block entry_points_custom %}{% endblock %}
36
+
37
+ [project.optional-dependencies]
38
+ {% block deps_opts %}
39
+ {% endblock %}
40
+
41
+ [dependency-groups]
42
+ dev = [
43
+ {include-group = "linters"},
44
+ {include-group = "tests"},
45
+ {% block deps_dev %}
46
+ {% endblock %}
47
+ ]
48
+ linters = [
49
+ {% block deps_linters %}
50
+ {% endblock %}
51
+ ]
52
+ tests = [
53
+ {% block deps_tests %}
54
+ "pytest",
55
+ {% endblock %}
56
+ ]
57
+
58
+ [build-system]
59
+ requires = ["hatchling"]
60
+ build-backend = "hatchling.build"
61
+
62
+ [tool.hatch.version]
63
+ path = "src/{{ package_name }}/__init__.py"
64
+
65
+ [tool.hatch.build.targets.wheel]
66
+ packages = ["src/{{ package_name }}"]
67
+
68
+ [tool.hatch.build.targets.sdist]
69
+ packages = ["src/"]
70
+
71
+ [tool.pytest.ini_options]
72
+ testpaths = [
73
+ "tests",
74
+ ]
75
+
76
+ [tool.coverage.run]
77
+ source = [
78
+ "src/",
79
+ ]
80
+ omit = [
81
+ {% block cov_omit %}
82
+ {% endblock %}
83
+ ]
84
+
85
+ [tool.coverage.report]
86
+ fail_under = 90.00
87
+ exclude_also = [
88
+ "raise NotImplementedError",
89
+ "if TYPE_CHECKING:",
90
+ ]
91
+
92
+ [tool.tox]
93
+ skip_missing_interpreters = true
94
+ env_list = [
95
+ {% block tox_envlist %}
96
+ "py310",
97
+ "py311",
98
+ "py312",
99
+ "py313",
100
+ {% endblock %}
101
+ ]
102
+
103
+ [tool.tox.env_run_base]
104
+ dependency_groups = ["tests"]
105
+ deps = [
106
+ {% block tox_deps %}
107
+ {% endblock %}
108
+ ]
109
+ commands = [
110
+ ["pytest", { replace = "posargs", default = ["tests"], extend = true }],
111
+ ]
112
+
113
+ {% block tools_ext %}
114
+ {% endblock %}
@@ -0,0 +1,44 @@
1
+ target-version = "py310"
2
+ line-length = 120
3
+
4
+ [format]
5
+ quote-style = "single"
6
+ exclude = []
7
+
8
+ [lint]
9
+ select = [
10
+ "B", # possible bugs
11
+ "BLE", # broad exception
12
+ "C4", # comprehensions
13
+ "DTZ", # work with datetimes
14
+ "E", # code style
15
+ "ERA", # commented code
16
+ "EXE", # check executables
17
+ "F", # misc
18
+ "FA", # future annotations
19
+ "FBT", # booleans
20
+ "FURB", # modernizing
21
+ "G", # logging format
22
+ "I", # imports
23
+ "ICN", # import conventions
24
+ "INT", # i18n
25
+ "ISC", # stringc concat
26
+ "PERF", # perfomance
27
+ "PIE", # misc
28
+ "PLC", # misc
29
+ "PLE", # misc err
30
+ "PT", # pytest
31
+ "PTH", # pathlib
32
+ "PYI", # typing
33
+ "RSE", # exc raise
34
+ "RUF", # misc
35
+ "SLOT", # slots related
36
+ "TC", # typing
37
+ "UP", # py upgrade
38
+ ]
39
+
40
+ ignore = []
41
+
42
+
43
+ [lint.extend-per-file-ignores]
44
+ "tests/*" = []