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.
- makeapp-1.9.0/makeapp/app_templates/__default__/.hgignore → makeapp-2.0.0/.gitignore +5 -4
- {makeapp-1.9.0 → makeapp-2.0.0}/LICENSE +1 -1
- makeapp-2.0.0/PKG-INFO +115 -0
- makeapp-2.0.0/README.md +99 -0
- makeapp-2.0.0/pyproject.toml +91 -0
- makeapp-2.0.0/src/makeapp/__init__.py +3 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/__default__/.gitignore +5 -1
- makeapp-2.0.0/src/makeapp/app_templates/__default__/AUTHORS.md +13 -0
- makeapp-2.0.0/src/makeapp/app_templates/__default__/CHANGELOG.md +5 -0
- makeapp-1.9.0/makeapp/app_templates/__default__/CONTRIBUTING → makeapp-2.0.0/src/makeapp/app_templates/__default__/CONTRIBUTING.md +6 -8
- makeapp-1.9.0/makeapp/app_templates/__default__/INSTALL → makeapp-2.0.0/src/makeapp/app_templates/__default__/INSTALL.md +5 -10
- makeapp-2.0.0/src/makeapp/app_templates/__default__/README.md +22 -0
- makeapp-2.0.0/src/makeapp/app_templates/__default__/docs/index.md +37 -0
- 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
- makeapp-2.0.0/src/makeapp/app_templates/__default__/mkdocs.yml +33 -0
- makeapp-2.0.0/src/makeapp/app_templates/__default__/pyproject.toml +114 -0
- makeapp-2.0.0/src/makeapp/app_templates/__default__/ruff.toml +44 -0
- {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
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/__default__/tests/__init__.py +1 -2
- makeapp-2.0.0/src/makeapp/app_templates/click/pyproject.toml +6 -0
- {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
- makeapp-2.0.0/src/makeapp/app_templates/console/pyproject.toml +5 -0
- {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
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/django/.github/workflows/python-package.yml +17 -14
- makeapp-2.0.0/src/makeapp/app_templates/django/makeappconf.py +9 -0
- makeapp-2.0.0/src/makeapp/app_templates/django/pyproject.toml +19 -0
- makeapp-2.0.0/src/makeapp/app_templates/django/src/__package_name__/__init__.py +6 -0
- {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
- {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
- {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
- {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
- {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
- makeapp-2.0.0/src/makeapp/app_templates/pytestplugin/pyproject.toml +13 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/makeappconf.py +15 -15
- makeapp-2.0.0/src/makeapp/app_templates/webscaff/pyproject.toml +9 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/requirements.txt +4 -4
- {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
- {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
- {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
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/tests/conftest.py +1 -1
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/tests/requirements.txt +2 -2
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/wscaff.yml +1 -1
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/appconfig.py +6 -6
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/appmaker.py +51 -38
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/apptemplate.py +8 -8
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/apptools.py +165 -101
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/cli.py +76 -21
- makeapp-2.0.0/src/makeapp/helpers/dist.py +36 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/helpers/files.py +8 -8
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/helpers/vcs.py +32 -58
- makeapp-2.0.0/src/makeapp/helpers/venvs.py +33 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/rendering.py +5 -17
- makeapp-2.0.0/src/makeapp/utils.py +191 -0
- makeapp-1.9.0/AUTHORS +0 -10
- makeapp-1.9.0/CHANGELOG +0 -281
- makeapp-1.9.0/INSTALL +0 -31
- makeapp-1.9.0/MANIFEST.in +0 -17
- makeapp-1.9.0/PKG-INFO +0 -143
- makeapp-1.9.0/README.rst +0 -120
- makeapp-1.9.0/docs/Makefile +0 -130
- makeapp-1.9.0/docs/source/conf.py +0 -216
- makeapp-1.9.0/docs/source/index.rst +0 -50
- makeapp-1.9.0/docs/source/quickstart.rst +0 -110
- makeapp-1.9.0/docs/source/rst_guide.rst +0 -80
- makeapp-1.9.0/docs/source/skeletons.rst +0 -74
- makeapp-1.9.0/docs/source/userconf.rst +0 -81
- makeapp-1.9.0/makeapp/__init__.py +0 -6
- makeapp-1.9.0/makeapp/app_templates/__default__/.coveragerc +0 -2
- makeapp-1.9.0/makeapp/app_templates/__default__/AUTHORS +0 -16
- makeapp-1.9.0/makeapp/app_templates/__default__/CHANGELOG +0 -6
- makeapp-1.9.0/makeapp/app_templates/__default__/MANIFEST.in +0 -16
- makeapp-1.9.0/makeapp/app_templates/__default__/README.rst +0 -28
- makeapp-1.9.0/makeapp/app_templates/__default__/docs/Makefile +0 -20
- makeapp-1.9.0/makeapp/app_templates/__default__/docs/requirements.txt +0 -1
- makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/conf.py +0 -160
- makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/index.rst +0 -29
- makeapp-1.9.0/makeapp/app_templates/__default__/docs/source/rst_guide.rst +0 -103
- makeapp-1.9.0/makeapp/app_templates/__default__/setup.cfg +0 -4
- makeapp-1.9.0/makeapp/app_templates/__default__/setup.py +0 -69
- makeapp-1.9.0/makeapp/app_templates/__default__/tests/test_module.py +0 -18
- makeapp-1.9.0/makeapp/app_templates/__default__/tox.ini +0 -20
- makeapp-1.9.0/makeapp/app_templates/click/setup.py +0 -6
- makeapp-1.9.0/makeapp/app_templates/console/setup.py +0 -5
- makeapp-1.9.0/makeapp/app_templates/django/.coveragerc +0 -3
- makeapp-1.9.0/makeapp/app_templates/django/MANIFEST.in +0 -11
- makeapp-1.9.0/makeapp/app_templates/django/__module_name__/__init__.py +0 -6
- makeapp-1.9.0/makeapp/app_templates/django/makeappconf.py +0 -12
- makeapp-1.9.0/makeapp/app_templates/django/pytest.ini +0 -2
- makeapp-1.9.0/makeapp/app_templates/django/setup.py +0 -5
- makeapp-1.9.0/makeapp/app_templates/django/tox.ini +0 -20
- makeapp-1.9.0/makeapp/app_templates/pytest/setup.cfg +0 -6
- makeapp-1.9.0/makeapp/app_templates/pytest/setup.py +0 -14
- makeapp-1.9.0/makeapp/app_templates/pytestplugin/makeappconf.py +0 -9
- makeapp-1.9.0/makeapp/app_templates/pytestplugin/setup.py +0 -19
- makeapp-1.9.0/makeapp/app_templates/webscaff/.hgignore +0 -9
- makeapp-1.9.0/makeapp/app_templates/webscaff/setup.py +0 -12
- makeapp-1.9.0/makeapp/app_templates/webscaff/state/media/empty +0 -0
- makeapp-1.9.0/makeapp/app_templates/webscaff/state/spool/empty +0 -0
- makeapp-1.9.0/makeapp/app_templates/webscaff/state/static/empty +0 -0
- makeapp-1.9.0/makeapp/helpers/__init__.py +0 -0
- makeapp-1.9.0/makeapp/helpers/dist.py +0 -38
- makeapp-1.9.0/makeapp/utils.py +0 -133
- makeapp-1.9.0/makeapp.egg-info/PKG-INFO +0 -143
- makeapp-1.9.0/makeapp.egg-info/SOURCES.txt +0 -132
- makeapp-1.9.0/makeapp.egg-info/dependency_links.txt +0 -1
- makeapp-1.9.0/makeapp.egg-info/entry_points.txt +0 -3
- makeapp-1.9.0/makeapp.egg-info/not-zip-safe +0 -1
- makeapp-1.9.0/makeapp.egg-info/requires.txt +0 -6
- makeapp-1.9.0/makeapp.egg-info/top_level.txt +0 -1
- makeapp-1.9.0/setup.cfg +0 -11
- makeapp-1.9.0/setup.py +0 -68
- makeapp-1.9.0/tests/conftest.py +0 -56
- makeapp-1.9.0/tests/test_appmaker.py +0 -141
- makeapp-1.9.0/tests/test_apptools.py +0 -51
- makeapp-1.9.0/tests/test_helpers.py +0 -5
- /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
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/click/makeappconf.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- /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
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/.gitignore +0 -0
- /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
- /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
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/conf/env_production.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {makeapp-1.9.0/makeapp/app_templates/webscaff/state/certbot → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/spool}/empty +0 -0
- {makeapp-1.9.0/makeapp/app_templates/webscaff/state/dumps → makeapp-2.0.0/src/makeapp/app_templates/webscaff/state/static}/empty +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/app_templates/webscaff/tests/test_module.py +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/exceptions.py +0 -0
- {makeapp-1.9.0/makeapp/app_templates/webscaff/__module_name__/settings → makeapp-2.0.0/src/makeapp/helpers}/__init__.py +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/apache2 +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/apache2_src +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/bsd2cl +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/bsd3cl +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl2 +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl2_src +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl3 +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/gpl3_src +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/mit +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/no +0 -0
- {makeapp-1.9.0 → makeapp-2.0.0/src}/makeapp/license_templates/no_src +0 -0
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
|
+
[](https://pypi.python.org/pypi/makeapp)
|
|
22
|
+
[](https://pypi.python.org/pypi/makeapp)
|
|
23
|
+
[](https://coveralls.io/r/idlesign/makeapp)
|
|
24
|
+
[](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/
|
makeapp-2.0.0/README.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# makeapp
|
|
2
|
+
|
|
3
|
+
https://github.com/idlesign/makeapp
|
|
4
|
+
|
|
5
|
+
[](https://pypi.python.org/pypi/makeapp)
|
|
6
|
+
[](https://pypi.python.org/pypi/makeapp)
|
|
7
|
+
[](https://coveralls.io/r/idlesign/makeapp)
|
|
8
|
+
[](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
|
+
]
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
{{
|
|
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
|
|
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
|
-
{{
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
or
|
|
10
|
+
Use the following command line to install ``{{ app_name }}`` from sources directory (containing ``pyproject.toml``):
|
|
15
11
|
|
|
16
|
-
|
|
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
|
+
[](https://pypi.python.org/pypi/{{ app_name }})
|
|
6
|
+
[](https://pypi.python.org/pypi/{{ app_name }})
|
|
7
|
+
[](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.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
site_name: {{ app_name }}
|
|
2
|
+
#site_url: !ENV READTHEDOCS_CANONICAL_URL
|
|
3
|
+
|
|
4
|
+
copyright: Copyright © {{ 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/*" = []
|