instant-python 0.0.1__py3-none-any.whl

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 (149) hide show
  1. instant_python/__init__.py +0 -0
  2. instant_python/cli.py +11 -0
  3. instant_python/folder_cli.py +50 -0
  4. instant_python/installer/__init__.py +0 -0
  5. instant_python/installer/dependency_manager.py +15 -0
  6. instant_python/installer/dependency_manager_factory.py +14 -0
  7. instant_python/installer/git_configurer.py +47 -0
  8. instant_python/installer/installer.py +18 -0
  9. instant_python/installer/managers.py +7 -0
  10. instant_python/installer/operating_systems.py +7 -0
  11. instant_python/installer/pdm_manager.py +72 -0
  12. instant_python/installer/uv_manager.py +73 -0
  13. instant_python/project_cli.py +100 -0
  14. instant_python/project_generator/__init__.py +0 -0
  15. instant_python/project_generator/custom_template_manager.py +20 -0
  16. instant_python/project_generator/default_template_manager.py +45 -0
  17. instant_python/project_generator/directory.py +28 -0
  18. instant_python/project_generator/file.py +20 -0
  19. instant_python/project_generator/folder_tree.py +40 -0
  20. instant_python/project_generator/jinja_custom_filters.py +18 -0
  21. instant_python/project_generator/node.py +14 -0
  22. instant_python/project_generator/project_generator.py +31 -0
  23. instant_python/project_generator/template_manager.py +7 -0
  24. instant_python/question_prompter/__init__.py +0 -0
  25. instant_python/question_prompter/question/__init__.py +0 -0
  26. instant_python/question_prompter/question/boolean_question.py +13 -0
  27. instant_python/question_prompter/question/choice_question.py +18 -0
  28. instant_python/question_prompter/question/conditional_question.py +25 -0
  29. instant_python/question_prompter/question/dependencies_question.py +43 -0
  30. instant_python/question_prompter/question/free_text_question.py +13 -0
  31. instant_python/question_prompter/question/multiple_choice_question.py +13 -0
  32. instant_python/question_prompter/question/question.py +15 -0
  33. instant_python/question_prompter/question_wizard.py +15 -0
  34. instant_python/question_prompter/step/__init__.py +0 -0
  35. instant_python/question_prompter/step/dependencies_step.py +20 -0
  36. instant_python/question_prompter/step/general_custom_template_project_step.py +45 -0
  37. instant_python/question_prompter/step/general_project_step.py +50 -0
  38. instant_python/question_prompter/step/git_step.py +23 -0
  39. instant_python/question_prompter/step/steps.py +16 -0
  40. instant_python/question_prompter/step/template_step.py +63 -0
  41. instant_python/question_prompter/template_types.py +7 -0
  42. instant_python/question_prompter/user_requirements.py +39 -0
  43. instant_python/templates/__init__.py +0 -0
  44. instant_python/templates/boilerplate/.gitignore +164 -0
  45. instant_python/templates/boilerplate/.pre-commit-config.yml +33 -0
  46. instant_python/templates/boilerplate/.python-version +1 -0
  47. instant_python/templates/boilerplate/LICENSE +896 -0
  48. instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  49. instant_python/templates/boilerplate/event_bus/aggregate_root.py +19 -0
  50. instant_python/templates/boilerplate/event_bus/domain_event.py +15 -0
  51. instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +28 -0
  52. instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +17 -0
  53. instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +15 -0
  54. instant_python/templates/boilerplate/event_bus/event_bus.py +10 -0
  55. instant_python/templates/boilerplate/event_bus/exchange_type.py +7 -0
  56. instant_python/templates/boilerplate/event_bus/mock_event_bus.py +18 -0
  57. instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +54 -0
  58. instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +77 -0
  59. instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +58 -0
  60. instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +28 -0
  61. instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +22 -0
  62. instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +8 -0
  63. instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  64. instant_python/templates/boilerplate/exceptions/domain_error.py +17 -0
  65. instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +17 -0
  66. instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +21 -0
  67. instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +17 -0
  68. instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +17 -0
  69. instant_python/templates/boilerplate/exceptions/required_value_error.py +17 -0
  70. instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  71. instant_python/templates/boilerplate/fastapi/application.py +25 -0
  72. instant_python/templates/boilerplate/fastapi/http_response.py +45 -0
  73. instant_python/templates/boilerplate/fastapi/lifespan.py +14 -0
  74. instant_python/templates/boilerplate/fastapi/status_code.py +9 -0
  75. instant_python/templates/boilerplate/github/action.yml +22 -0
  76. instant_python/templates/boilerplate/github/test_lint.yml +36 -0
  77. instant_python/templates/boilerplate/logger/__init__.py +0 -0
  78. instant_python/templates/boilerplate/logger/json_formatter.py +16 -0
  79. instant_python/templates/boilerplate/logger/logger.py +39 -0
  80. instant_python/templates/boilerplate/mypy.ini +41 -0
  81. instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  82. instant_python/templates/boilerplate/persistence/alembic_migrator.py +20 -0
  83. instant_python/templates/boilerplate/persistence/async/README.md +1 -0
  84. instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  85. instant_python/templates/boilerplate/persistence/async/alembic.ini +124 -0
  86. instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +21 -0
  87. instant_python/templates/boilerplate/persistence/async/env.py +95 -0
  88. instant_python/templates/boilerplate/persistence/async/models_metadata.py +11 -0
  89. instant_python/templates/boilerplate/persistence/async/postgres_settings.py +15 -0
  90. instant_python/templates/boilerplate/persistence/async/script.py.mako +26 -0
  91. instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +30 -0
  92. instant_python/templates/boilerplate/persistence/base.py +4 -0
  93. instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  94. instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +22 -0
  95. instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +35 -0
  96. instant_python/templates/boilerplate/pyproject.toml +29 -0
  97. instant_python/templates/boilerplate/pytest.ini +10 -0
  98. instant_python/templates/boilerplate/random_generator.py +9 -0
  99. instant_python/templates/boilerplate/scripts/add_dependency.sh +37 -0
  100. instant_python/templates/boilerplate/scripts/create_aggregate.py +33 -0
  101. instant_python/templates/boilerplate/scripts/insert_template.py +90 -0
  102. instant_python/templates/boilerplate/scripts/integration.sh +39 -0
  103. instant_python/templates/boilerplate/scripts/local_setup.sh +15 -0
  104. instant_python/templates/boilerplate/scripts/makefile +137 -0
  105. instant_python/templates/boilerplate/scripts/post-merge +11 -0
  106. instant_python/templates/boilerplate/scripts/pre-commit +4 -0
  107. instant_python/templates/boilerplate/scripts/pre-push +6 -0
  108. instant_python/templates/boilerplate/scripts/remove_dependency.sh +36 -0
  109. instant_python/templates/boilerplate/scripts/unit.sh +40 -0
  110. instant_python/templates/boilerplate/value_object/__init__.py +0 -0
  111. instant_python/templates/boilerplate/value_object/int_value_object.py +11 -0
  112. instant_python/templates/boilerplate/value_object/string_value_object.py +19 -0
  113. instant_python/templates/boilerplate/value_object/uuid.py +17 -0
  114. instant_python/templates/boilerplate/value_object/value_object.py +21 -0
  115. instant_python/templates/project_structure/alembic_migrator.yml.j2 +3 -0
  116. instant_python/templates/project_structure/async_alembic.yml.j2 +20 -0
  117. instant_python/templates/project_structure/async_sqlalchemy.yml.j2 +17 -0
  118. instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +25 -0
  119. instant_python/templates/project_structure/clean_architecture/source.yml.j2 +51 -0
  120. instant_python/templates/project_structure/clean_architecture/test.yml.j2 +23 -0
  121. instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 +20 -0
  122. instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +25 -0
  123. instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +55 -0
  124. instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +26 -0
  125. instant_python/templates/project_structure/event_bus_domain.yml.j2 +26 -0
  126. instant_python/templates/project_structure/event_bus_infra.yml.j2 +32 -0
  127. instant_python/templates/project_structure/fastapi_app.yml.j2 +10 -0
  128. instant_python/templates/project_structure/fastapi_infra.yml.j2 +10 -0
  129. instant_python/templates/project_structure/github_action.yml.j2 +18 -0
  130. instant_python/templates/project_structure/gitignore.yml.j2 +2 -0
  131. instant_python/templates/project_structure/license.yml.j2 +2 -0
  132. instant_python/templates/project_structure/logger.yml.j2 +10 -0
  133. instant_python/templates/project_structure/macros.j2 +6 -0
  134. instant_python/templates/project_structure/makefile.yml.j2 +38 -0
  135. instant_python/templates/project_structure/mypy.yml.j2 +3 -0
  136. instant_python/templates/project_structure/pre_commit.yml.j2 +3 -0
  137. instant_python/templates/project_structure/pyproject.yml.j2 +3 -0
  138. instant_python/templates/project_structure/pytest.yml.j2 +3 -0
  139. instant_python/templates/project_structure/python_version.yml.j2 +2 -0
  140. instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +25 -0
  141. instant_python/templates/project_structure/standard_project/source.yml.j2 +30 -0
  142. instant_python/templates/project_structure/standard_project/test.yml.j2 +16 -0
  143. instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 +17 -0
  144. instant_python/templates/project_structure/value_objects.yml.j2 +35 -0
  145. instant_python-0.0.1.dist-info/METADATA +276 -0
  146. instant_python-0.0.1.dist-info/RECORD +149 -0
  147. instant_python-0.0.1.dist-info/WHEEL +4 -0
  148. instant_python-0.0.1.dist-info/entry_points.txt +2 -0
  149. instant_python-0.0.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,25 @@
1
+ {% import "project_structure/macros.j2" as macros with context %}
2
+ root:
3
+ {{ macros.include_and_indent("project_structure/domain_driven_design/source.yml.j2", 2) }}
4
+ {{ macros.include_and_indent("project_structure/domain_driven_design/test.yml.j2", 2) }}
5
+ {% if "github_actions" in built_in_features %}
6
+ {{ macros.include_and_indent("project_structure/github_action.yml.j2", 2) }}
7
+ {% endif %}
8
+ {% if "makefile" in built_in_features %}
9
+ {{ macros.include_and_indent("project_structure/makefile.yml.j2", 2) }}
10
+ {% endif %}
11
+ {{ macros.include_and_indent("project_structure/pyproject.yml.j2", 2) }}
12
+ {% if git %}
13
+ {{ macros.include_and_indent("project_structure/gitignore.yml.j2", 2) }}
14
+ {% endif %}
15
+ {{ macros.include_and_indent("project_structure/python_version.yml.j2", 2) }}
16
+ {% if "pytest" in dependencies %}
17
+ {{ macros.include_and_indent("project_structure/pytest.yml.j2", 2) }}
18
+ {% endif %}
19
+ {% if "mypy" in dependencies %}
20
+ {{ macros.include_and_indent("project_structure/mypy.yml.j2", 2) }}
21
+ {% endif %}
22
+ {{ macros.include_and_indent("project_structure/license.yml.j2", 2) }}
23
+ {% if "async_alembic" in built_in_features %}
24
+ {{ macros.include_and_indent("project_structure/async_alembic.yml.j2", 2) }}
25
+ {% endif %}
@@ -0,0 +1,55 @@
1
+ {% import "project_structure/macros.j2" as macros with context %}
2
+ - name: {{ source_name }}
3
+ type: directory
4
+ python: True
5
+ children:
6
+ - name: delivery
7
+ type: directory
8
+ python: True
9
+ {% if "fastapi_application" in built_in_features %}
10
+ children:
11
+ {{ macros.include_and_indent("project_structure/fastapi_app.yml.j2", 8) }}
12
+ {% endif %}
13
+ - name: shared
14
+ type: directory
15
+ python: True
16
+ {% if ["value_objects", "synchronous_sqlalchemy", "event_bus", "async_alembic"] | is_in(built_in_features) %}
17
+ children:
18
+ {% if ["value_objects", "event_bus"] | is_in(built_in_features) %}
19
+ - name: domain
20
+ type: directory
21
+ python: True
22
+ children:
23
+ {% if "value_objects" in built_in_features %}
24
+ {{ macros.include_and_indent("project_structure/value_objects.yml.j2", 12) }}
25
+ {% endif %}
26
+ {% if "event_bus" in built_in_features %}
27
+ {{ macros.include_and_indent("project_structure/event_bus_domain.yml.j2", 12) }}
28
+ {% endif %}
29
+ {% endif %}
30
+ {% if ["synchronous_sqlalchemy", "event_bus", "logger", "async_sqlalchemy", "async_alembic", "fastapi_application"] | is_in(built_in_features) %}
31
+ - name: infra
32
+ type: directory
33
+ python: True
34
+ children:
35
+ {% if "synchronous_sqlalchemy" in built_in_features %}
36
+ {{ macros.include_and_indent("project_structure/synchronous_sqlalchemy.yml.j2", 12) }}
37
+ {% endif %}
38
+ {% if "event_bus" in built_in_features %}
39
+ {{ macros.include_and_indent("project_structure/event_bus_infra.yml.j2", 12) }}
40
+ {% endif %}
41
+ {% if "logger" in built_in_features %}
42
+ {{ macros.include_and_indent("project_structure/logger.yml.j2", 12) }}
43
+ {% endif %}
44
+ {% if "async_sqlalchemy" in built_in_features %}
45
+ {{ macros.include_and_indent("project_structure/async_sqlalchemy.yml.j2", 12) }}
46
+ {% endif %}
47
+ {% if "async_alembic" in built_in_features %}
48
+ {{ macros.include_and_indent("project_structure/alembic_migrator.yml.j2", 12) }}
49
+ {% endif %}
50
+ {% if "fastapi_application" in built_in_features %}
51
+ {{ macros.include_and_indent("project_structure/fastapi_infra.yml.j2", 12) }}
52
+ {% endif %}
53
+ {% endif %}
54
+ {% endif %}
55
+ {{ macros.include_and_indent("project_structure/domain_driven_design/bounded_context.yml.j2", 4) }}
@@ -0,0 +1,26 @@
1
+ {% import "project_structure/macros.j2" as macros with context %}
2
+ - name: test
3
+ type: directory
4
+ python: True
5
+ children:
6
+ - name: shared
7
+ type: directory
8
+ python: True
9
+ children:
10
+ - name: domain
11
+ type: directory
12
+ python: True
13
+ children:
14
+ - name: random_generator
15
+ type: file
16
+ extension: .py
17
+ {% if "event_bus" in built_in_features %}
18
+ - name: infra
19
+ type: directory
20
+ python: True
21
+ children:
22
+ - name: event_bus/mock_event_bus
23
+ type: file
24
+ extension: .py
25
+ {% endif %}
26
+ {{ macros.include_and_indent("project_structure/domain_driven_design/bounded_context.yml.j2", 4) }}
@@ -0,0 +1,26 @@
1
+ - name: event_bus/aggregate_root
2
+ type: file
3
+ extension: .py
4
+ - name: event
5
+ type: directory
6
+ python: True
7
+ children:
8
+ - name: event_bus/domain_event
9
+ type: file
10
+ extension: .py
11
+ - name: event_bus/domain_event_subscriber
12
+ type: file
13
+ extension: .py
14
+ - name: event_bus/event_bus
15
+ type: file
16
+ extension: .py
17
+ - name: event_bus/exchange_type
18
+ type: file
19
+ extension: .py
20
+ - name: exceptions
21
+ type: directory
22
+ python: True
23
+ children:
24
+ - name: exceptions/domain_event_type_not_found_error
25
+ type: file
26
+ extension: .py
@@ -0,0 +1,32 @@
1
+ - name: event
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: event_bus/domain_event_json_deserializer
6
+ type: file
7
+ extension: .py
8
+ - name: event_bus/domain_event_json_serializer
9
+ type: file
10
+ extension: .py
11
+ - name: rabbit_mq
12
+ type: directory
13
+ python: True
14
+ children:
15
+ - name: event_bus/rabbit_mq_configurer
16
+ type: file
17
+ extension: .py
18
+ - name: event_bus/rabbit_mq_connection
19
+ type: file
20
+ extension: .py
21
+ - name: event_bus/rabbit_mq_consumer
22
+ type: file
23
+ extension: .py
24
+ - name: event_bus/rabbit_mq_event_bus
25
+ type: file
26
+ extension: .py
27
+ - name: event_bus/rabbit_mq_queue_formatter
28
+ type: file
29
+ extension: .py
30
+ - name: event_bus/rabbit_mq_settings
31
+ type: file
32
+ extension: .py
@@ -0,0 +1,10 @@
1
+ - name: api
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: fastapi/application
6
+ type: file
7
+ extension: .py
8
+ - name: fastapi/lifespan
9
+ type: file
10
+ extension: .py
@@ -0,0 +1,10 @@
1
+ - name: http
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: fastapi/http_response
6
+ type: file
7
+ extension: .py
8
+ - name: fastapi/status_code
9
+ type: file
10
+ extension: .py
@@ -0,0 +1,18 @@
1
+ - name: .github
2
+ type: directory
3
+ children:
4
+ - name: actions
5
+ type: directory
6
+ children:
7
+ - name: python_setup
8
+ type: directory
9
+ children:
10
+ - name: github/action
11
+ type: file
12
+ extension: .yml
13
+ - name: workflows
14
+ type: directory
15
+ children:
16
+ - name: github/test_lint
17
+ type: file
18
+ extension: .yml
@@ -0,0 +1,2 @@
1
+ - name: .gitignore
2
+ type: file
@@ -0,0 +1,2 @@
1
+ - name: LICENSE
2
+ type: file
@@ -0,0 +1,10 @@
1
+ - name: log
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: logger/json_formatter
6
+ type: file
7
+ extension: .py
8
+ - name: logger/logger
9
+ type: file
10
+ extension: .py
@@ -0,0 +1,6 @@
1
+ {% macro include_and_indent(template_name, indent) -%}
2
+ {%- set content -%}
3
+ {%- include template_name -%}
4
+ {%- endset -%}
5
+ {{ content | indent(indent, false) }}
6
+ {%- endmacro %}
@@ -0,0 +1,38 @@
1
+ {% import "project_structure/macros.j2" as macros with context %}
2
+ - name: scripts/makefile
3
+ type: file
4
+ - name: scripts
5
+ type: directory
6
+ children:
7
+ - name: scripts/add_dependency
8
+ type: file
9
+ extension: .sh
10
+ - name: scripts/remove_dependency
11
+ type: file
12
+ extension: .sh
13
+ - name: scripts/local_setup
14
+ type: file
15
+ extension: .sh
16
+ - name: hooks
17
+ type: directory
18
+ children:
19
+ - name: scripts/pre-commit
20
+ type: file
21
+ - name: scripts/pre-push
22
+ type: file
23
+ - name: scripts/post-merge
24
+ type: file
25
+ {% if template == "domain_driven_design" %}
26
+ - name: test
27
+ type: directory
28
+ children:
29
+ - name: scripts/unit
30
+ type: file
31
+ extension: .sh
32
+ - name: scripts/integration
33
+ type: file
34
+ extension: .sh
35
+ - name: scripts/create_aggregate
36
+ type: file
37
+ extension: .py
38
+ {% endif %}
@@ -0,0 +1,3 @@
1
+ - name: mypy
2
+ type: file
3
+ extension: .ini
@@ -0,0 +1,3 @@
1
+ - name: .pre-commit-config
2
+ type: file
3
+ extension: yml
@@ -0,0 +1,3 @@
1
+ - name: pyproject
2
+ type: file
3
+ extension: .toml
@@ -0,0 +1,3 @@
1
+ - name: pytest
2
+ type: file
3
+ extension: .ini
@@ -0,0 +1,2 @@
1
+ - name: .python-version
2
+ type: file
@@ -0,0 +1,25 @@
1
+ {% import "project_structure/macros.j2" as macros with context %}
2
+ root:
3
+ {{ macros.include_and_indent("project_structure/standard_project/source.yml.j2", 2) }}
4
+ {{ macros.include_and_indent("project_structure/standard_project/test.yml.j2", 2) }}
5
+ {% if "github_actions" in built_in_features %}
6
+ {{ macros.include_and_indent("project_structure/github_action.yml.j2", 2) }}
7
+ {% endif %}
8
+ {% if "makefile" in built_in_features %}
9
+ {{ macros.include_and_indent("project_structure/makefile.yml.j2", 2) }}
10
+ {% endif %}
11
+ {{ macros.include_and_indent("project_structure/pyproject.yml.j2", 2) }}
12
+ {% if git %}
13
+ {{ macros.include_and_indent("project_structure/gitignore.yml.j2", 2) }}
14
+ {% endif %}
15
+ {{ macros.include_and_indent("project_structure/python_version.yml.j2", 2) }}
16
+ {% if "pytest" in dependencies %}
17
+ {{ macros.include_and_indent("project_structure/pytest.yml.j2", 2) }}
18
+ {% endif %}
19
+ {% if "mypy" in dependencies %}
20
+ {{ macros.include_and_indent("project_structure/mypy.yml.j2", 2) }}
21
+ {% endif %}
22
+ {{ macros.include_and_indent("project_structure/license.yml.j2", 2) }}
23
+ {% if "async_alembic" in built_in_features %}
24
+ {{ macros.include_and_indent("project_structure/async_alembic.yml.j2", 2) }}
25
+ {% endif %}
@@ -0,0 +1,30 @@
1
+ {% import "project_structure/macros.j2" as macros with context %}
2
+ - name: {{ source_name }}
3
+ type: directory
4
+ python: True
5
+ {% if ["value_objects", "synchronous_sqlalchemy", "event_bus", "async_alembic", "logger", "async_sqlalchemy", "fastapi_application"] | is_in(built_in_features) %}
6
+ children:
7
+ {% if "value_objects" in built_in_features %}
8
+ {{ macros.include_and_indent("project_structure/value_objects.yml.j2", 4) }}
9
+ {% endif %}
10
+ {% if "event_bus" in built_in_features %}
11
+ {{ macros.include_and_indent("project_structure/event_bus_domain.yml.j2", 4) }}
12
+ {{ macros.include_and_indent("project_structure/event_bus_infra.yml.j2", 4) }}
13
+ {% endif %}
14
+ {% if "synchronous_sqlalchemy" in built_in_features %}
15
+ {{ macros.include_and_indent("project_structure/synchronous_sqlalchemy.yml.j2", 4) }}
16
+ {% endif %}
17
+ {% if "logger" in built_in_features %}
18
+ {{ macros.include_and_indent("project_structure/logger.yml.j2", 4) }}
19
+ {% endif %}
20
+ {% if "async_sqlalchemy" in built_in_features %}
21
+ {{ macros.include_and_indent("project_structure/async_sqlalchemy.yml.j2", 4) }}
22
+ {% endif %}
23
+ {% if "async_alembic" in built_in_features %}
24
+ {{ macros.include_and_indent("project_structure/alembic_migrator.yml.j2", 4) }}
25
+ {% endif %}
26
+ {% if "fastapi_application" in built_in_features %}
27
+ {{ macros.include_and_indent("project_structure/fastapi_app.yml.j2", 4) }}
28
+ {{ macros.include_and_indent("project_structure/fastapi_infra.yml.j2", 4) }}
29
+ {% endif %}
30
+ {% endif %}
@@ -0,0 +1,16 @@
1
+ - name: test
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: random_generator
6
+ type: file
7
+ extension: .py
8
+ {% if "event_bus" in built_in_features %}
9
+ - name: event
10
+ type: directory
11
+ python: True
12
+ children:
13
+ - name: event_bus/mock_event_bus
14
+ type: file
15
+ extension: .py
16
+ {% endif %}
@@ -0,0 +1,17 @@
1
+ - name: persistence
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: sqlalchemy
6
+ type: directory
7
+ python: True
8
+ children:
9
+ - name: persistence/base
10
+ type: file
11
+ extension: .py
12
+ - name: persistence/synchronous/session_maker
13
+ type: file
14
+ extension: .py
15
+ - name: persistence/synchronous/sqlalchemy_repository
16
+ type: file
17
+ extension: .py
@@ -0,0 +1,35 @@
1
+ - name: exceptions
2
+ type: directory
3
+ python: True
4
+ children:
5
+ - name: exceptions/domain_error
6
+ type: file
7
+ extension: .py
8
+ - name: exceptions/incorrect_value_type_error
9
+ type: file
10
+ extension: .py
11
+ - name: exceptions/invalid_negative_value_error
12
+ type: file
13
+ extension: .py
14
+ - name: exceptions/invalid_id_format_error
15
+ type: file
16
+ extension: .py
17
+ - name: exceptions/required_value_error
18
+ type: file
19
+ extension: .py
20
+ - name: value_object
21
+ type: directory
22
+ python: True
23
+ children:
24
+ - name: value_object/value_object
25
+ type: file
26
+ extension: .py
27
+ - name: value_object/string_value_object
28
+ type: file
29
+ extension: .py
30
+ - name: value_object/int_value_object
31
+ type: file
32
+ extension: .py
33
+ - name: value_object/uuid
34
+ type: file
35
+ extension: .py