instant-python 0.0.1__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 (173) hide show
  1. instant_python-0.0.1/.github/FUNDING.yml +3 -0
  2. instant_python-0.0.1/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
  3. instant_python-0.0.1/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  4. instant_python-0.0.1/.github/actions/python_setup/action.yml +20 -0
  5. instant_python-0.0.1/.github/workflows/publish.yml +21 -0
  6. instant_python-0.0.1/.github/workflows/release.yml +43 -0
  7. instant_python-0.0.1/.gitignore +141 -0
  8. instant_python-0.0.1/.python-version +1 -0
  9. instant_python-0.0.1/CHANGELOG.md +348 -0
  10. instant_python-0.0.1/LICENSE +201 -0
  11. instant_python-0.0.1/PKG-INFO +276 -0
  12. instant_python-0.0.1/README.md +62 -0
  13. instant_python-0.0.1/cz.yaml +21 -0
  14. instant_python-0.0.1/docs/assets/favicon.svg +27 -0
  15. instant_python-0.0.1/docs/assets/logo.svg +27 -0
  16. instant_python-0.0.1/docs/contributing.md +10 -0
  17. instant_python-0.0.1/docs/getting-started/features.md +24 -0
  18. instant_python-0.0.1/docs/getting-started/first-steps.md +15 -0
  19. instant_python-0.0.1/docs/getting-started/index.md +11 -0
  20. instant_python-0.0.1/docs/getting-started/installation.md +34 -0
  21. instant_python-0.0.1/docs/guide/creating-a-project.md +71 -0
  22. instant_python-0.0.1/docs/guide/custom-templates.md +55 -0
  23. instant_python-0.0.1/docs/guide/features.md +248 -0
  24. instant_python-0.0.1/docs/guide/folder-structure.md +55 -0
  25. instant_python-0.0.1/docs/guide/index.md +6 -0
  26. instant_python-0.0.1/docs/index.md +7 -0
  27. instant_python-0.0.1/instant_python/__init__.py +0 -0
  28. instant_python-0.0.1/instant_python/cli.py +11 -0
  29. instant_python-0.0.1/instant_python/folder_cli.py +50 -0
  30. instant_python-0.0.1/instant_python/installer/__init__.py +0 -0
  31. instant_python-0.0.1/instant_python/installer/dependency_manager.py +15 -0
  32. instant_python-0.0.1/instant_python/installer/dependency_manager_factory.py +14 -0
  33. instant_python-0.0.1/instant_python/installer/git_configurer.py +47 -0
  34. instant_python-0.0.1/instant_python/installer/installer.py +18 -0
  35. instant_python-0.0.1/instant_python/installer/managers.py +7 -0
  36. instant_python-0.0.1/instant_python/installer/operating_systems.py +7 -0
  37. instant_python-0.0.1/instant_python/installer/pdm_manager.py +72 -0
  38. instant_python-0.0.1/instant_python/installer/uv_manager.py +73 -0
  39. instant_python-0.0.1/instant_python/project_cli.py +100 -0
  40. instant_python-0.0.1/instant_python/project_generator/__init__.py +0 -0
  41. instant_python-0.0.1/instant_python/project_generator/custom_template_manager.py +20 -0
  42. instant_python-0.0.1/instant_python/project_generator/default_template_manager.py +45 -0
  43. instant_python-0.0.1/instant_python/project_generator/directory.py +28 -0
  44. instant_python-0.0.1/instant_python/project_generator/file.py +20 -0
  45. instant_python-0.0.1/instant_python/project_generator/folder_tree.py +40 -0
  46. instant_python-0.0.1/instant_python/project_generator/jinja_custom_filters.py +18 -0
  47. instant_python-0.0.1/instant_python/project_generator/node.py +14 -0
  48. instant_python-0.0.1/instant_python/project_generator/project_generator.py +31 -0
  49. instant_python-0.0.1/instant_python/project_generator/template_manager.py +7 -0
  50. instant_python-0.0.1/instant_python/question_prompter/__init__.py +0 -0
  51. instant_python-0.0.1/instant_python/question_prompter/question/__init__.py +0 -0
  52. instant_python-0.0.1/instant_python/question_prompter/question/boolean_question.py +13 -0
  53. instant_python-0.0.1/instant_python/question_prompter/question/choice_question.py +18 -0
  54. instant_python-0.0.1/instant_python/question_prompter/question/conditional_question.py +25 -0
  55. instant_python-0.0.1/instant_python/question_prompter/question/dependencies_question.py +43 -0
  56. instant_python-0.0.1/instant_python/question_prompter/question/free_text_question.py +13 -0
  57. instant_python-0.0.1/instant_python/question_prompter/question/multiple_choice_question.py +13 -0
  58. instant_python-0.0.1/instant_python/question_prompter/question/question.py +15 -0
  59. instant_python-0.0.1/instant_python/question_prompter/question_wizard.py +15 -0
  60. instant_python-0.0.1/instant_python/question_prompter/step/__init__.py +0 -0
  61. instant_python-0.0.1/instant_python/question_prompter/step/dependencies_step.py +20 -0
  62. instant_python-0.0.1/instant_python/question_prompter/step/general_custom_template_project_step.py +45 -0
  63. instant_python-0.0.1/instant_python/question_prompter/step/general_project_step.py +50 -0
  64. instant_python-0.0.1/instant_python/question_prompter/step/git_step.py +23 -0
  65. instant_python-0.0.1/instant_python/question_prompter/step/steps.py +16 -0
  66. instant_python-0.0.1/instant_python/question_prompter/step/template_step.py +63 -0
  67. instant_python-0.0.1/instant_python/question_prompter/template_types.py +7 -0
  68. instant_python-0.0.1/instant_python/question_prompter/user_requirements.py +39 -0
  69. instant_python-0.0.1/instant_python/templates/__init__.py +0 -0
  70. instant_python-0.0.1/instant_python/templates/boilerplate/.gitignore +164 -0
  71. instant_python-0.0.1/instant_python/templates/boilerplate/.pre-commit-config.yml +33 -0
  72. instant_python-0.0.1/instant_python/templates/boilerplate/.python-version +1 -0
  73. instant_python-0.0.1/instant_python/templates/boilerplate/LICENSE +896 -0
  74. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  75. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/aggregate_root.py +19 -0
  76. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/domain_event.py +15 -0
  77. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +28 -0
  78. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +17 -0
  79. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +15 -0
  80. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/event_bus.py +10 -0
  81. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/exchange_type.py +7 -0
  82. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +18 -0
  83. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +54 -0
  84. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +77 -0
  85. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +58 -0
  86. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +28 -0
  87. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +22 -0
  88. instant_python-0.0.1/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +8 -0
  89. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  90. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/domain_error.py +17 -0
  91. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +17 -0
  92. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +21 -0
  93. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +17 -0
  94. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +17 -0
  95. instant_python-0.0.1/instant_python/templates/boilerplate/exceptions/required_value_error.py +17 -0
  96. instant_python-0.0.1/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  97. instant_python-0.0.1/instant_python/templates/boilerplate/fastapi/application.py +25 -0
  98. instant_python-0.0.1/instant_python/templates/boilerplate/fastapi/http_response.py +45 -0
  99. instant_python-0.0.1/instant_python/templates/boilerplate/fastapi/lifespan.py +14 -0
  100. instant_python-0.0.1/instant_python/templates/boilerplate/fastapi/status_code.py +9 -0
  101. instant_python-0.0.1/instant_python/templates/boilerplate/github/action.yml +22 -0
  102. instant_python-0.0.1/instant_python/templates/boilerplate/github/test_lint.yml +36 -0
  103. instant_python-0.0.1/instant_python/templates/boilerplate/logger/__init__.py +0 -0
  104. instant_python-0.0.1/instant_python/templates/boilerplate/logger/json_formatter.py +16 -0
  105. instant_python-0.0.1/instant_python/templates/boilerplate/logger/logger.py +39 -0
  106. instant_python-0.0.1/instant_python/templates/boilerplate/mypy.ini +41 -0
  107. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  108. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/alembic_migrator.py +20 -0
  109. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/README.md +1 -0
  110. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  111. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/alembic.ini +124 -0
  112. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +21 -0
  113. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/env.py +95 -0
  114. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/models_metadata.py +11 -0
  115. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +15 -0
  116. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/script.py.mako +26 -0
  117. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +30 -0
  118. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/base.py +4 -0
  119. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  120. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +22 -0
  121. instant_python-0.0.1/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +35 -0
  122. instant_python-0.0.1/instant_python/templates/boilerplate/pyproject.toml +29 -0
  123. instant_python-0.0.1/instant_python/templates/boilerplate/pytest.ini +10 -0
  124. instant_python-0.0.1/instant_python/templates/boilerplate/random_generator.py +9 -0
  125. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/add_dependency.sh +37 -0
  126. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/create_aggregate.py +33 -0
  127. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/insert_template.py +90 -0
  128. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/integration.sh +39 -0
  129. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/local_setup.sh +15 -0
  130. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/makefile +137 -0
  131. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/post-merge +11 -0
  132. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/pre-commit +4 -0
  133. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/pre-push +6 -0
  134. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/remove_dependency.sh +36 -0
  135. instant_python-0.0.1/instant_python/templates/boilerplate/scripts/unit.sh +40 -0
  136. instant_python-0.0.1/instant_python/templates/boilerplate/value_object/__init__.py +0 -0
  137. instant_python-0.0.1/instant_python/templates/boilerplate/value_object/int_value_object.py +11 -0
  138. instant_python-0.0.1/instant_python/templates/boilerplate/value_object/string_value_object.py +19 -0
  139. instant_python-0.0.1/instant_python/templates/boilerplate/value_object/uuid.py +17 -0
  140. instant_python-0.0.1/instant_python/templates/boilerplate/value_object/value_object.py +21 -0
  141. instant_python-0.0.1/instant_python/templates/project_structure/alembic_migrator.yml.j2 +3 -0
  142. instant_python-0.0.1/instant_python/templates/project_structure/async_alembic.yml.j2 +20 -0
  143. instant_python-0.0.1/instant_python/templates/project_structure/async_sqlalchemy.yml.j2 +17 -0
  144. instant_python-0.0.1/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +25 -0
  145. instant_python-0.0.1/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +51 -0
  146. instant_python-0.0.1/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +23 -0
  147. instant_python-0.0.1/instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 +20 -0
  148. instant_python-0.0.1/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +25 -0
  149. instant_python-0.0.1/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +55 -0
  150. instant_python-0.0.1/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +26 -0
  151. instant_python-0.0.1/instant_python/templates/project_structure/event_bus_domain.yml.j2 +26 -0
  152. instant_python-0.0.1/instant_python/templates/project_structure/event_bus_infra.yml.j2 +32 -0
  153. instant_python-0.0.1/instant_python/templates/project_structure/fastapi_app.yml.j2 +10 -0
  154. instant_python-0.0.1/instant_python/templates/project_structure/fastapi_infra.yml.j2 +10 -0
  155. instant_python-0.0.1/instant_python/templates/project_structure/github_action.yml.j2 +18 -0
  156. instant_python-0.0.1/instant_python/templates/project_structure/gitignore.yml.j2 +2 -0
  157. instant_python-0.0.1/instant_python/templates/project_structure/license.yml.j2 +2 -0
  158. instant_python-0.0.1/instant_python/templates/project_structure/logger.yml.j2 +10 -0
  159. instant_python-0.0.1/instant_python/templates/project_structure/macros.j2 +6 -0
  160. instant_python-0.0.1/instant_python/templates/project_structure/makefile.yml.j2 +38 -0
  161. instant_python-0.0.1/instant_python/templates/project_structure/mypy.yml.j2 +3 -0
  162. instant_python-0.0.1/instant_python/templates/project_structure/pre_commit.yml.j2 +3 -0
  163. instant_python-0.0.1/instant_python/templates/project_structure/pyproject.yml.j2 +3 -0
  164. instant_python-0.0.1/instant_python/templates/project_structure/pytest.yml.j2 +3 -0
  165. instant_python-0.0.1/instant_python/templates/project_structure/python_version.yml.j2 +2 -0
  166. instant_python-0.0.1/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +25 -0
  167. instant_python-0.0.1/instant_python/templates/project_structure/standard_project/source.yml.j2 +30 -0
  168. instant_python-0.0.1/instant_python/templates/project_structure/standard_project/test.yml.j2 +16 -0
  169. instant_python-0.0.1/instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 +17 -0
  170. instant_python-0.0.1/instant_python/templates/project_structure/value_objects.yml.j2 +35 -0
  171. instant_python-0.0.1/mkdocs.yml +71 -0
  172. instant_python-0.0.1/pyproject.toml +33 -0
  173. instant_python-0.0.1/uv.lock +605 -0
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ buy_me_a_coffee: dimanu.py
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## :writing_hand: Describe the bug
11
+
12
+ A clear and concise description of what the bug is.
13
+
14
+ ## :ballot_box_with_check: Steps To Reproduce
15
+
16
+ Steps to reproduce the behavior:
17
+ 1. Go to '...'
18
+ 2. Click on '....'
19
+ 3. Scroll down to '....'
20
+ 4. See error
21
+
22
+ ## :heavy_check_mark: Expected behavior
23
+
24
+ A clear and concise description of what you expected to happen.
25
+
26
+ ## :camera: Screenshots
27
+
28
+ If applicable, add screenshots to help explain your problem.
29
+
30
+
31
+ ## 🗞️ Additional context
32
+ Add any other context about the problem here.
33
+
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## ✍️ Describe your proposal
11
+
12
+ **Is your feature request related to a problem?**
13
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14
+
15
+ **Describe the solution you'd like**
16
+ A clear and concise description of what you want to happen.
17
+
18
+ **Describe alternatives you've considered**
19
+ A clear and concise description of any alternative solutions or features you've considered.
20
+
21
+ ## 🗞️ Additional context
22
+
23
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,20 @@
1
+ name: Install Python and setup environment
2
+
3
+ inputs:
4
+ python-version:
5
+ description: 'The version of Python to use'
6
+ required: false
7
+ default: "3.12"
8
+ outputs: {}
9
+ runs:
10
+ using: composite
11
+ steps:
12
+ - uses: actions/setup-python@v5
13
+ with:
14
+ python-version: ${{ inputs.python-version }}
15
+ - name: Install dependency manager
16
+ run: python -m pip install uv
17
+ shell: bash
18
+ - name: Install dependencies
19
+ run: uv sync --all-groups
20
+ shell: bash
@@ -0,0 +1,21 @@
1
+ name: Publish Release
2
+
3
+ on:
4
+ release:
5
+ types: [ created ]
6
+
7
+ jobs:
8
+ build-and-publish:
9
+ runs-on: ubuntu-latest
10
+ environment: release
11
+ permissions:
12
+ id-token: write
13
+ steps:
14
+ - name: Checkout repository
15
+ uses: actions/checkout@v4
16
+ - name: Set up Python environment
17
+ uses: ./.github/actions/python_setup
18
+ - name: Build package
19
+ run: uv build
20
+ - name: Publish
21
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ name: Generate Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ bump-version:
10
+ if: "!startsWith(github.event.head_commit.message, 'bump:')"
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Check out
14
+ uses: actions/checkout@v3
15
+ with:
16
+ token: ${{ secrets.CHANGELOG_TOKEN }}
17
+ fetch-depth: 0
18
+
19
+ - name: Bump version and update changelog
20
+ uses: commitizen-tools/commitizen-action@master
21
+ with:
22
+ github_token: ${{ secrets.CHANGELOG_TOKEN }}
23
+
24
+ create-release:
25
+ needs: bump-version
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - name: Check out
29
+ uses: actions/checkout@v3
30
+ with:
31
+ token: ${{ secrets.CHANGELOG_TOKEN }}
32
+ fetch-depth: 0
33
+ - name: Get last tag
34
+ id: last_tag
35
+ run: echo "tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
36
+
37
+ - name: Create release
38
+ uses: ncipollo/release-action@v1
39
+ with:
40
+ token: ${{ secrets.CHANGELOG_TOKEN }}
41
+ tag: ${{ steps.last_tag.outputs.tag }}
42
+ name: Release ${{ steps.last_tag.outputs.tag }}
43
+ bodyFile: CHANGELOG.md
@@ -0,0 +1,141 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ docs/build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pdm
91
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
92
+ #pdm.lock
93
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
94
+ # in version control.
95
+ # https://pdm-project.org/#use-with-ide
96
+ .pdm.toml
97
+ .pdm-python
98
+ .pdm-build/
99
+
100
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
101
+ __pypackages__/
102
+
103
+ # Celery stuff
104
+ celerybeat-schedule
105
+ celerybeat.pid
106
+
107
+ # SageMath parsed files
108
+ *.sage.py
109
+
110
+ # Environments
111
+ .env
112
+ .venv
113
+ env/
114
+ venv/
115
+ ENV/
116
+ env.bak/
117
+ venv.bak/
118
+
119
+ # Spyder project settings
120
+ .spyderproject
121
+ .spyproject
122
+
123
+ # Rope project settings
124
+ .ropeproject
125
+
126
+ # mkdocs documentation
127
+ /site
128
+
129
+ # mypy
130
+ .mypy_cache/
131
+ .dmypy.json
132
+ dmypy.json
133
+
134
+ # Pyre type checker
135
+ .pyre/
136
+
137
+ # pytype static type analyzer
138
+ .pytype/
139
+
140
+ # Cython debug symbols
141
+ cython_debug/
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,348 @@
1
+ ## 0.12.1 (2025-04-06)
2
+
3
+ ### 🐛 Bug Fixes
4
+
5
+ - **project-generator**: add template types values to be able to use enum in jinja templates
6
+ - **template**: write correct option when fastapi built in feature is selected
7
+
8
+ ### ♻️ Code Refactoring
9
+
10
+ - **template**: include mypy, git and pytest configuration files only when the user has selected these options
11
+ - **template**: include dependencies depending on user built in features selection
12
+
13
+ ## 0.12.0 (2025-04-06)
14
+
15
+ ### ✨ Features
16
+
17
+ - **project-generator**: create new custom function to generate import path in templates
18
+
19
+ ### 🐛 Bug Fixes
20
+
21
+ - **template**: generate correctly the import statement in templates depending on the user selection
22
+
23
+ ## 0.11.0 (2025-03-24)
24
+
25
+ ## 0.10.4 (2025-03-24)
26
+
27
+ ### 🐛 Bug Fixes
28
+
29
+ - correct pages workflow
30
+
31
+ ## 0.10.3 (2025-03-24)
32
+
33
+ ### 🐛 Bug Fixes
34
+
35
+ - correct pages workflow
36
+
37
+ ## 0.10.2 (2025-03-24)
38
+
39
+ ### 🐛 Bug Fixes
40
+
41
+ - **installer**: correct answers when installing dependencies
42
+
43
+ ## 0.10.1 (2025-03-24)
44
+
45
+ ### 🐛 Bug Fixes
46
+
47
+ - **prompter**: modify DependenciesQuestion to not enter an infinite loop of asking the user
48
+
49
+ ## 0.10.0 (2025-03-23)
50
+
51
+ ### ✨ Features
52
+
53
+ - **prompter**: implement general project step that will only be used when custom template is passed
54
+ - **cli**: add template command for project_cli.py to let users create a project using a custom template
55
+ - **prompter**: implement ConditionalQuestion
56
+ - **prompter**: implement TemplateStep to group all questions related to default template management
57
+ - **project-generator**: implement CustomTemplateManager to manage when user passes a custom template file
58
+ - **project-generator**: create TemplateManager interface
59
+ - **cli**: add folder command to allow users to just generate the folder structure of the project
60
+
61
+ ### 🐛 Bug Fixes
62
+
63
+ - **cli**: temporarily disable template commands
64
+ - **prompter**: extract the value of the base answer to check it with condition
65
+ - **prompter**: remove init argument from year field
66
+ - **cli**: access project_name value when using custom template command
67
+ - **prompter**: set default value for git field in UserRequirements to avoid failing when executing folder command
68
+ - **prompter**: include last question in TemplateStep if selected template is domain_driven_design
69
+ - **project-generator**: instantiate DefaultTemplateManager inside File class
70
+
71
+ ### ♻️ Code Refactoring
72
+
73
+ - **prompter**: update answers dictionary instead of add manually question key and answer
74
+ - **prompter**: return a dictionary with the key of the question and the answer instead of just the answer
75
+ - **cli**: modify cli help commands and descriptions
76
+ - **prompter**: modify default values for UserRequirements
77
+ - **cli**: use new GeneralCustomTemplateProjectStep in template command
78
+ - **cli**: add name to command and rename command function
79
+ - **prompter**: substitute template and ddd specific questions in TemplateStep for ConditionalQuestion
80
+ - **prompter**: substitute set of question in GitStep for ConditionalQuestion
81
+ - **prompter**: remove should_not_ask method from Step interface
82
+ - **prompter**: remove DomainDrivenDesignStep
83
+ - **cli**: remove DDD step and add TemplateStep
84
+ - **prompter**: remove boilerplate question from DependenciesStep
85
+ - **prompter**: remove template related questions from GeneralProjectStep
86
+ - **prompter**: move git question to GitStep and remove auxiliar continue_git question
87
+ - **cli**: rename function names for better clarity
88
+ - **cli**: move new command to its own typer app
89
+ - **cli**: move folder command to its own typer app and separate the app in two commands
90
+ - **project-generator**: let DefaultTemplateManager implement TemplateManager interface
91
+ - **project-generator**: rename TemplateManager to DefaultTemplateManager
92
+ - **cli**: add template argument to both command to begin allow the user to pass a custom path for the project structure
93
+ - **cli**: add help description to both commands
94
+ - **prompter**: move python and dependency manager from dependencies step to general project step as it's information that is needed in general to fill all files information
95
+ - **cli**: rename generate_project command to new
96
+
97
+ ## 0.9.0 (2025-03-14)
98
+
99
+ ### ✨ Features
100
+
101
+ - **project-generator**: format all project files with ruff once everything is generated
102
+ - **cli**: remove user_requirements file once project has been generated
103
+ - **prompter**: add remove method to UserRequirements class
104
+
105
+ ### 🐛 Bug Fixes
106
+
107
+ - **build**: change build system and ensure templates directory gets included
108
+ - **project-generator**: substitute FileSystemLoader for PackageLoader to safer load when using it as a package
109
+
110
+ ### ♻️ Code Refactoring
111
+
112
+ - **prompter**: add file_path field to user requirements class
113
+
114
+ ## 0.8.1 (2025-03-14)
115
+
116
+ ### 🐛 Bug Fixes
117
+
118
+ - **prompter**: correct default source folder name
119
+ - **template**: correct license field from pyproject.toml template
120
+
121
+ ### ♻️ Code Refactoring
122
+
123
+ - **cli**: pass project slug name as the project directory that will be created
124
+ - **project-generator**: pass the directory where the project will be created to FolderTree
125
+ - **cli**: remove checking if a user_requirements file exists
126
+ - **template**: remove writing author and email info only if manager is pdm
127
+
128
+ ## 0.8.0 (2025-03-11)
129
+
130
+ ### ✨ Features
131
+
132
+ - **cli**: call to git configurer when user wants to initialize a git repository
133
+ - **installer**: implement GitConfigurer
134
+ - **cli**: include git step into cli steps
135
+ - **prompter**: implement step to ask the user information to initialize a git repository
136
+
137
+ ### ♻️ Code Refactoring
138
+
139
+ - **installer**: avoid printing executed commands output by stdout
140
+ - **template**: use git_email field in pyproject.toml
141
+ - **prompter**: remove email field from UserRequirements and add git_email and git_user_name
142
+ - **prompter**: remove email question from general project step
143
+
144
+ ## 0.7.0 (2025-03-11)
145
+
146
+ ### ✨ Features
147
+
148
+ - **template**: add clean architecture template project structure
149
+
150
+ ## 0.6.0 (2025-03-11)
151
+
152
+ ### ✨ Features
153
+
154
+ - **template**: add standard project project structure templates
155
+
156
+ ### ♻️ Code Refactoring
157
+
158
+ - **project-generator**: remove condition of loading the template only when is domain driven design
159
+ - **template**: use include_and_indent custom macro inside domain_driven_design/test template
160
+ - **template**: include always mypy and pytest ini configuration
161
+ - **prompter**: rename empty project template to standard project
162
+
163
+ ## 0.5.0 (2025-03-10)
164
+
165
+ ### ✨ Features
166
+
167
+ - **installer**: create factory method to choose which dependency manager gets instantiated
168
+ - **installer**: implement PdmInstaller
169
+
170
+ ### 🐛 Bug Fixes
171
+
172
+ - **template**: use project_slug for project name inside pyproject.toml
173
+
174
+ ### ♻️ Code Refactoring
175
+
176
+ - **cli**: use DependencyManagerFactory instead of always instantiating UvManager
177
+ - **installer**: remove ShellConfigurator and ZshConfigurator
178
+ - **cli**: remove shell configurator injection
179
+ - **installer**: remove the use of ShellConfigurator inside installer
180
+ - **prompter**: warn the user that project name cannot contain spaces
181
+ - **prompter**: remove project name question and just leave project slug
182
+ - **installer**: remove executable attribute from UvManager
183
+
184
+ ## 0.4.0 (2025-03-09)
185
+
186
+ ### ✨ Features
187
+
188
+ - **project-generator**: expose generated project path through ProjectGenerator
189
+ - **installer**: add project_directory field to UvManager to know where to create the virtual environment
190
+ - **installer**: add install_dependencies step to Installer
191
+ - **installer**: implement logic to install dependencies selected by the user in UvManager
192
+ - **installer**: add install_dependencies method to DependencyManger interface
193
+ - **prompter**: implement DependencyQuestion to manage recursive question about what dependencies to install
194
+ - **prompter**: implement DependenciesStep with all questions related to python versions, dependencies etc.
195
+ - **prompter**: implement DomainDrivenDesignStep with bounded context questions.
196
+ - **prompter**: implement GeneralProjectStep that will have common questions such as project name, slug, license etc.
197
+ - **prompter**: implement Steps collection and Step interface
198
+ - **prompter**: implement QuestionWizard to separate questions into steps and be more flexible and dynamic
199
+ - **cli**: install uv by default and python version specified by the user
200
+ - **installer**: implement Installer that will act as the manager class that coordinates all operation required to fully install the project
201
+ - **installer**: implement zsh shell configurator
202
+ - **installer**: create ShellConfigurator interface
203
+ - **installer**: implement UvManager that is in charge of installing uv and the python version required by the user
204
+ - **installer**: add dependency manager interface
205
+ - **installer**: include enums for managers options and operating systems
206
+ - **prompter**: add question to know user's operating system
207
+ - **prompter**: create MultipleChoiceQuestion for questions where the user can select zero, one or more options
208
+ - **prompter**: create BooleanQuestion for yes or no questions
209
+ - **prompter**: create FreeTextQuestion for those questions where the user has to write something
210
+ - **prompter**: create ChoiceQuestion to encapsulate questions that have different options the user needs to choose from
211
+ - **project-generator**: create custom exception when node type does not exist
212
+ - **cli**: make sure user_requirements are loaded
213
+ - **prompter**: add load_from_file method to UserRequirements
214
+
215
+ ### 🐛 Bug Fixes
216
+
217
+ - **project-generator**: correct path to templates
218
+
219
+ ### ♻️ Code Refactoring
220
+
221
+ - **installer**: specify working directory to UvManager so it installs everything at the generated project
222
+ - **cli**: pass generated project path to UvManager
223
+ - **installer**: inline uv install command attribute as is not something reusable
224
+ - **cli**: inject folder tree and template manager to project generator
225
+ - **project-generator**: set the directory where user project will be generated as FolderTree attribute and expose it through a property
226
+ - **project-generator**: pass folder_tree and template_manager injected into ProjectGenerator
227
+ - **cli**: pass user dependencies to installer
228
+ - **prompter**: substitute fixed default dependencies by dynamic ones that will be asked to the user
229
+ - **prompter**: remove question definition lists and basic prompter
230
+ - **cli**: substitute BasicPrompter for QuestionWizard
231
+ - **prompter**: remove python manager and operating system questions
232
+ - **prompter**: extract helper method to know if template is ddd
233
+ - **prompter**: delegate ask logic to each question instead of letting prompter what to do depending on flags
234
+ - **prompter**: redefine questions using concrete implementations
235
+ - **prompter**: make Question abstract and add ask abstract method
236
+ - **project-generator**: rename Directory's init attribute to python_module and remove default value for children
237
+ - **project-generator**: move children extraction only when node is a directory
238
+ - **src**: remove old src folder with cookiecutter project and convert current instant_python module into src
239
+
240
+ ## 0.3.0 (2025-03-01)
241
+
242
+ ### ✨ Features
243
+
244
+ - **template**: include mock event bus template for testing
245
+ - **template**: add scripts templates
246
+ - **prompter**: add fastapi option to built in features
247
+ - **template**: include templates for fasta api application with error handlers, http response modelled with logger
248
+ - **prompter**: add async alembic to built in features options
249
+ - **template**: include templates for async alembic
250
+ - **prompter**: add async sqlalchemy to built in features options
251
+ - **template**: add templates for async sqlalchemy
252
+ - **prompter**: include logger as built in feature
253
+ - **template**: add template for logger
254
+ - **prompter**: include event bus as built in feature
255
+ - **templates**: add project structure template for event bus
256
+ - **templates**: add LICENSE template
257
+ - **prompter**: add year to user requirements fields with automatic computation
258
+ - **templates**: include mypy and pytest init files when default dependencies are selected
259
+ - **templates**: add .python-version template
260
+ - **templates**: add .gitignore template
261
+ - **templates**: add pyproject template
262
+ - **templates**: add makefile template
263
+
264
+ ### ♻️ Code Refactoring
265
+
266
+ - **cli**: generate user requirements only if no other file has been already generated.
267
+ - **template**: move makefile template to scripts folder as this folder only makes sense if it's use with the makefile
268
+ - **template**: move base from sync sqlalchemy to persistence folder as it would be the same for both sync and async
269
+ - **template**: move sqlalchemy sync templates to specific folder
270
+ - **template**: move exceptions templates to specific folder
271
+ - **template**: move value object templates to specific folder
272
+ - **template**: move github actions templates to specific folder
273
+ - **template**: move logger templates to specific folder
274
+ - **project-generator**: modify File class to be able to manage the difference between the path to the template and the path where the file should be written
275
+ - **template**: change all yml templates to point to inner event_bus folder boilerplate
276
+ - **template**: move all boilerplate related to event bus inside specific folder
277
+ - **prompter**: change github information for basic name and email
278
+ - **prompter**: move default dependencies question to general questions and include the default dependencies that will be included
279
+ - **prompter**: remove converting to snake case all answers and set directly those answers in snake case if needed
280
+ - **templates**: use raw command inside github action instead of make
281
+
282
+ ## 0.2.0 (2025-02-27)
283
+
284
+ ### ✨ Features
285
+
286
+ - **templates**: add invalid id format error template
287
+ - **templates**: add domain error template
288
+ - **prompter**: add synchronous sqlalchemy option to built in features question
289
+ - **templates**: add synchronous sqlalchemy template
290
+ - **project-generator**: create custom operator to be applied to jinja templates
291
+ - **prompter**: add pre commit option to built in features question
292
+ - **templates**: add pre commit template
293
+ - **prompter**: add makefile option to built in features question
294
+ - **templates**: add makefile template
295
+ - **templates**: separate value objects folder template in a single yml file
296
+ - **templates**: add macro to include files easier and more readable
297
+ - **project-generator**: add TemplateTypes enum to avoid magic strings
298
+ - **prompter**: add question to know which features the user wants to include
299
+ - **prompter**: implement new function to have multiselect questions
300
+ - **prompter**: define all questions in a separate file
301
+ - **prompter**: create Question class to encapsulate questions information
302
+ - **project-generator**: create YamlFile class to create yaml files
303
+ - **project-generator**: create Directory class to create simple folders
304
+ - **templates**: add templates to create github actions and workflows
305
+ - **project-generator**: create NodeType enum to avoid magic strings
306
+ - **templates**: add python files boilerplate
307
+ - **project-generator**: implement logic to create python files with boilerplate content
308
+ - **project-generator**: create specific class to manage jinja templates
309
+ - **prompter**: add save_in_memory method to UserRequirements
310
+ - **project-generator**: implement logic to create python modules
311
+ - **templates**: create DSL to set the folder structure
312
+ - **project-generator**: create classes to model how python files and modules would be created
313
+ - **project-generator**: delegate folder generation to folder tree class
314
+ - **project-generator**: create manager class in charge of creating all project files and folders
315
+ - **prompter**: create class to encapsulate user answers
316
+ - **prompter**: create basic class that asks project requirements to user
317
+ - **cli**: create basic typer application with no implementation
318
+
319
+ ### 🐛 Bug Fixes
320
+
321
+ - **project-generator**: correct extra blocks that where being created when including templates
322
+
323
+ ### ♻️ Code Refactoring
324
+
325
+ - **templates**: modify error templates to use DomainError
326
+ - **templates**: change all python-module types to directory and add python flag when need it
327
+ - **project-generator**: make Directory general for any type of folder and remove python module class
328
+ - **project-generator**: remove python_module node type
329
+ - **templates**: set all files of type file and add them the extension variable
330
+ - **project-generator**: add extension field to node and remove deprecated options
331
+ - **project-generator**: create a single node type File that will work with any kind of file
332
+ - **project-generator**: substitute python file and yml file node type for single file
333
+ - **templates**: use new operator to write a single children command in source
334
+ - **project-generator**: include new custom operator in jinja environment
335
+ - **templates**: remove populated shared template
336
+ - **templates**: include value objects template when is specified by the user
337
+ - **templates**: import and call macro inside project structures templates
338
+ - **prompter**: format all answers to snake case
339
+ - use TemplateTypes instead of literal string
340
+ - **project-generator**: change template path name when generating project
341
+ - **templates**: move ddd templates inside project_structure folder
342
+ - **prompter**: migrate BasicPrompter to use questionary instead of typer to make the questions as it manages multiple selections better
343
+ - **cli**: instantiate BasicPrompter instead of using class method
344
+ - **prompter**: simplify ask method by using Question object an iterating over the list of defined questions
345
+ - **templates**: modularize main_structure file
346
+ - **project-generator**: create project structure inside a temporary directory
347
+ - **project-generator**: delegate template management to TemplateManager
348
+ - **cli**: call BasicPrompter and ProjectGenerator inside cli app