instant-python 0.6.1__py3-none-any.whl → 0.7.0__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.
- instant_python/commands/init.py +4 -0
- instant_python/configuration/configuration_schema.py +2 -2
- instant_python/configuration/step/template_step.py +35 -36
- instant_python/formatter/__init__.py +0 -0
- instant_python/formatter/project_formatter.py +19 -0
- instant_python/templates/boilerplate/github/{test_lint.yml → lint.yml} +4 -10
- instant_python/templates/boilerplate/github/test.yml +30 -0
- instant_python/templates/boilerplate/pyproject.toml +24 -1
- instant_python/templates/boilerplate/scripts/makefile +16 -28
- instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +1 -0
- instant_python/templates/project_structure/clean_architecture/source.yml.j2 +4 -1
- instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +1 -0
- instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +5 -2
- instant_python/templates/project_structure/fastapi_domain.yml.j2 +7 -0
- instant_python/templates/project_structure/github_action.yml.j2 +4 -1
- instant_python/templates/project_structure/logger.yml.j2 +1 -1
- instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +1 -0
- instant_python/templates/project_structure/standard_project/source.yml.j2 +1 -0
- {instant_python-0.6.1.dist-info → instant_python-0.7.0.dist-info}/METADATA +1 -1
- {instant_python-0.6.1.dist-info → instant_python-0.7.0.dist-info}/RECORD +23 -19
- {instant_python-0.6.1.dist-info → instant_python-0.7.0.dist-info}/WHEEL +0 -0
- {instant_python-0.6.1.dist-info → instant_python-0.7.0.dist-info}/entry_points.txt +0 -0
- {instant_python-0.6.1.dist-info → instant_python-0.7.0.dist-info}/licenses/LICENSE +0 -0
instant_python/commands/init.py
CHANGED
|
@@ -2,6 +2,7 @@ import typer
|
|
|
2
2
|
|
|
3
3
|
from instant_python.configuration.parser.parser import Parser
|
|
4
4
|
from instant_python.dependency_manager.dependency_manager_factory import DependencyManagerFactory
|
|
5
|
+
from instant_python.formatter.project_formatter import ProjectFormatter
|
|
5
6
|
from instant_python.git.git_configurer import GitConfigurer
|
|
6
7
|
from instant_python.project_creator.file_system import FileSystem
|
|
7
8
|
from instant_python.render.custom_project_renderer import CustomProjectRenderer
|
|
@@ -44,6 +45,9 @@ def create_new_project(
|
|
|
44
45
|
dependencies=configuration.dependencies,
|
|
45
46
|
)
|
|
46
47
|
|
|
48
|
+
formatter = ProjectFormatter(project_directory=configuration.project_folder_name)
|
|
49
|
+
formatter.format()
|
|
50
|
+
|
|
47
51
|
git_configurer = GitConfigurer(project_directory=configuration.project_folder_name)
|
|
48
52
|
git_configurer.setup_repository(configuration.git)
|
|
49
53
|
configuration.save_on_project_folder()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import shutil
|
|
2
2
|
from dataclasses import dataclass, field
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import TypedDict,
|
|
4
|
+
from typing import TypedDict, Union
|
|
5
5
|
|
|
6
6
|
import yaml
|
|
7
7
|
|
|
@@ -33,7 +33,7 @@ class ConfigurationSchema:
|
|
|
33
33
|
dependencies: list[DependencyConfiguration],
|
|
34
34
|
template: TemplateConfiguration,
|
|
35
35
|
git: GitConfiguration,
|
|
36
|
-
) ->
|
|
36
|
+
) -> "ConfigurationSchema":
|
|
37
37
|
return cls(
|
|
38
38
|
general=general,
|
|
39
39
|
dependencies=dependencies,
|
|
@@ -14,50 +14,49 @@ from instant_python.shared.supported_templates import SupportedTemplates
|
|
|
14
14
|
class TemplateStep(Step):
|
|
15
15
|
def __init__(self, questionary: Questionary) -> None:
|
|
16
16
|
super().__init__(questionary)
|
|
17
|
-
self.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
self._built_in_features_question = MultipleChoiceQuestion(
|
|
18
|
+
key="built_in_features",
|
|
19
|
+
message="Select the built-in features you want to include",
|
|
20
|
+
options=SupportedBuiltInFeatures.get_supported_built_in_features(),
|
|
21
|
+
questionary=self._questionary,
|
|
22
|
+
)
|
|
23
|
+
self._template_question = ConditionalQuestion(
|
|
24
|
+
base_question=ChoiceQuestion(
|
|
25
|
+
key="name",
|
|
26
|
+
message="Select a template",
|
|
27
|
+
options=SupportedTemplates.get_supported_templates(),
|
|
22
28
|
questionary=self._questionary,
|
|
23
29
|
),
|
|
24
|
-
ConditionalQuestion(
|
|
25
|
-
base_question=
|
|
26
|
-
key="
|
|
27
|
-
message="
|
|
28
|
-
|
|
30
|
+
subquestions=ConditionalQuestion(
|
|
31
|
+
base_question=BooleanQuestion(
|
|
32
|
+
key="specify_bounded_context",
|
|
33
|
+
message="Do you want to specify your first bounded context?",
|
|
34
|
+
default=True,
|
|
29
35
|
questionary=self._questionary,
|
|
30
36
|
),
|
|
31
|
-
subquestions=
|
|
32
|
-
|
|
33
|
-
key="
|
|
34
|
-
message="
|
|
35
|
-
default=
|
|
37
|
+
subquestions=[
|
|
38
|
+
FreeTextQuestion(
|
|
39
|
+
key="bounded_context",
|
|
40
|
+
message="Enter the bounded context name",
|
|
41
|
+
default="backoffice",
|
|
36
42
|
questionary=self._questionary,
|
|
37
43
|
),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
key="aggregate_name",
|
|
47
|
-
message="Enter the aggregate name",
|
|
48
|
-
default="user",
|
|
49
|
-
questionary=self._questionary,
|
|
50
|
-
),
|
|
51
|
-
],
|
|
52
|
-
condition=True,
|
|
53
|
-
),
|
|
54
|
-
condition=SupportedTemplates.DDD,
|
|
44
|
+
FreeTextQuestion(
|
|
45
|
+
key="aggregate_name",
|
|
46
|
+
message="Enter the aggregate name",
|
|
47
|
+
default="user",
|
|
48
|
+
questionary=self._questionary,
|
|
49
|
+
),
|
|
50
|
+
],
|
|
51
|
+
condition=True,
|
|
55
52
|
),
|
|
56
|
-
|
|
53
|
+
condition=SupportedTemplates.DDD,
|
|
54
|
+
)
|
|
57
55
|
|
|
58
56
|
def run(self) -> dict[str, dict[str, Union[str, list[str]]]]:
|
|
59
|
-
answers =
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
answers = self._template_question.ask()
|
|
58
|
+
|
|
59
|
+
if answers["name"] != SupportedTemplates.CUSTOM:
|
|
60
|
+
answers.update(self._built_in_features_question.ask())
|
|
62
61
|
|
|
63
62
|
return {"template": answers}
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ProjectFormatter:
|
|
5
|
+
def __init__(self, project_directory: str) -> None:
|
|
6
|
+
self._project_directory = project_directory
|
|
7
|
+
|
|
8
|
+
def format(self) -> None:
|
|
9
|
+
self._run_command(command="uvx ruff format")
|
|
10
|
+
|
|
11
|
+
def _run_command(self, command: str) -> None:
|
|
12
|
+
subprocess.run(
|
|
13
|
+
command,
|
|
14
|
+
shell=True,
|
|
15
|
+
check=True,
|
|
16
|
+
cwd=self._project_directory,
|
|
17
|
+
stdout=subprocess.DEVNULL,
|
|
18
|
+
stderr=subprocess.PIPE,
|
|
19
|
+
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Run lint, format and type checks
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
@@ -13,24 +13,18 @@ jobs:
|
|
|
13
13
|
lint:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
17
|
- uses: ./.github/actions/python_setup
|
|
18
18
|
- run: make check-lint
|
|
19
19
|
format:
|
|
20
20
|
runs-on: ubuntu-latest
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
23
|
- uses: ./.github/actions/python_setup
|
|
24
24
|
- run: make check-format
|
|
25
25
|
typing:
|
|
26
26
|
runs-on: ubuntu-latest
|
|
27
27
|
steps:
|
|
28
|
-
- uses: actions/checkout@
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
29
|
- uses: ./.github/actions/python_setup
|
|
30
30
|
- run: make check-typing
|
|
31
|
-
test:
|
|
32
|
-
runs-on: ubuntu-latest
|
|
33
|
-
steps:
|
|
34
|
-
- uses: actions/checkout@v5
|
|
35
|
-
- uses: ./.github/actions/python_setup
|
|
36
|
-
- run: make test
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: Run tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
unit:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: ./.github/actions/python_setup
|
|
18
|
+
- run: make unit
|
|
19
|
+
integration:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
- uses: ./.github/actions/python_setup
|
|
24
|
+
- run: make integration
|
|
25
|
+
acceptance:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- uses: ./.github/actions/python_setup
|
|
30
|
+
- run: make acceptance
|
|
@@ -28,13 +28,36 @@ license = { file = "LICENSE" }
|
|
|
28
28
|
distribution = false
|
|
29
29
|
{% endif %}
|
|
30
30
|
|
|
31
|
-
{% if "github_actions"
|
|
31
|
+
{% if ["github_actions", "makefile"] | is_in(template.built_in_features) or dependencies | has_dependency("pytest") and template.name != template_types.CUSTOM %}
|
|
32
32
|
[dependency-groups]
|
|
33
|
+
{% if ["github_actions", "makefile"] | is_in(template.built_in_features) and dependencies | has_dependency("pytest") %}
|
|
33
34
|
lint = [
|
|
34
35
|
"mypy",
|
|
35
36
|
"ruff",
|
|
36
37
|
]
|
|
37
38
|
test = [
|
|
39
|
+
"faker",
|
|
38
40
|
"pytest",
|
|
41
|
+
"pytest-asyncio",
|
|
39
42
|
]
|
|
43
|
+
{% elif ["github_actions", "makefile"] | is_in(template.built_in_features) %}
|
|
44
|
+
lint = [
|
|
45
|
+
"mypy",
|
|
46
|
+
"ruff",
|
|
47
|
+
]
|
|
48
|
+
test = [
|
|
49
|
+
"faker",
|
|
50
|
+
"pytest",
|
|
51
|
+
"pytest-asyncio",
|
|
52
|
+
]
|
|
53
|
+
{% elif dependencies | has_dependency("pytest") %}
|
|
54
|
+
test = [
|
|
55
|
+
"faker",
|
|
56
|
+
"pytest-asyncio",
|
|
57
|
+
]
|
|
58
|
+
{% elif template.name != template_types.CUSTOM %}
|
|
59
|
+
test = [
|
|
60
|
+
"faker",
|
|
61
|
+
]
|
|
62
|
+
{% endif %}
|
|
40
63
|
{% endif %}
|
|
@@ -7,31 +7,23 @@ help: ## Show this help.
|
|
|
7
7
|
|
|
8
8
|
.PHONY: test
|
|
9
9
|
test: ## Run all test.
|
|
10
|
-
@{{ general.dependency_manager }} run pytest
|
|
10
|
+
@{{ general.dependency_manager }} run pytest test -ra
|
|
11
11
|
|
|
12
12
|
.PHONY: unit
|
|
13
|
-
unit: ## Run unit test
|
|
14
|
-
@
|
|
13
|
+
unit: ## Run all unit test.
|
|
14
|
+
@{{ general.dependency_manager }} run pytest -m "unit" -ra
|
|
15
15
|
|
|
16
16
|
.PHONY: integration
|
|
17
|
-
integration: ## Run integration test
|
|
18
|
-
@scripts/tests/integration.sh
|
|
19
|
-
|
|
20
|
-
.PHONY: all-unit
|
|
21
|
-
all-unit: ## Run all unit test.
|
|
22
|
-
@{{ general.dependency_manager }} run pytest -n auto -m "unit" -ra
|
|
23
|
-
|
|
24
|
-
.PHONY: all-integration
|
|
25
|
-
all-integration: ## Run all integration test.
|
|
17
|
+
integration: ## Run all integration test.
|
|
26
18
|
@{{ general.dependency_manager }} run pytest -m "integration" -ra
|
|
27
19
|
|
|
28
|
-
.PHONY:
|
|
29
|
-
|
|
20
|
+
.PHONY: acceptance
|
|
21
|
+
acceptance: ## Run all acceptance test.
|
|
30
22
|
@{{ general.dependency_manager }} run pytest -m "acceptance" -ra
|
|
31
23
|
|
|
32
24
|
.PHONY: coverage
|
|
33
25
|
coverage: ## Run all test with coverage.
|
|
34
|
-
@{{ general.dependency_manager }} run coverage run --branch -m pytest
|
|
26
|
+
@{{ general.dependency_manager }} run coverage run --branch -m pytest test
|
|
35
27
|
@{{ general.dependency_manager }} run coverage html
|
|
36
28
|
@$(BROWSER) htmlcov/index.html
|
|
37
29
|
|
|
@@ -71,33 +63,33 @@ check-typing: ## Run mypy type checking.
|
|
|
71
63
|
.PHONY: check-lint
|
|
72
64
|
check-lint: ## Run ruff linting check.
|
|
73
65
|
{% if general.dependency_manager == "pdm" %}
|
|
74
|
-
@pdm run ruff check src
|
|
66
|
+
@pdm run ruff check src test
|
|
75
67
|
{% elif general.dependency_manager == "uv" %}
|
|
76
|
-
@uvx ruff check src
|
|
68
|
+
@uvx ruff check src test
|
|
77
69
|
{% endif %}
|
|
78
70
|
|
|
79
71
|
.PHONY: lint
|
|
80
72
|
lint: ## Apply ruff linting fix.
|
|
81
73
|
{% if general.dependency_manager == "pdm" %}
|
|
82
|
-
@pdm run ruff check --fix src
|
|
74
|
+
@pdm run ruff check --fix src test
|
|
83
75
|
{% elif general.dependency_manager == "uv" %}
|
|
84
|
-
@uvx ruff check --fix src
|
|
76
|
+
@uvx ruff check --fix src test
|
|
85
77
|
{% endif %}
|
|
86
78
|
|
|
87
79
|
.PHONY: check-format
|
|
88
80
|
check-format: ## Run ruff format check.
|
|
89
81
|
{% if general.dependency_manager == "pdm" %}
|
|
90
|
-
@pdm run ruff format --check src
|
|
82
|
+
@pdm run ruff format --check src test
|
|
91
83
|
{% elif general.dependency_manager == "uv" %}
|
|
92
|
-
@uvx ruff format --check src
|
|
84
|
+
@uvx ruff format --check src test
|
|
93
85
|
{% endif %}
|
|
94
86
|
|
|
95
87
|
.PHONY: format
|
|
96
88
|
format: ## Apply ruff format fix.
|
|
97
89
|
{% if general.dependency_manager == "pdm" %}
|
|
98
|
-
@pdm run ruff format src
|
|
90
|
+
@pdm run ruff format src test
|
|
99
91
|
{% elif general.dependency_manager == "uv" %}
|
|
100
|
-
@uvx ruff format src
|
|
92
|
+
@uvx ruff format src test
|
|
101
93
|
{% endif %}
|
|
102
94
|
|
|
103
95
|
.PHONY: pre-commit
|
|
@@ -108,11 +100,7 @@ pre-push: all-integration all-acceptance ## Run pre-push checks.
|
|
|
108
100
|
|
|
109
101
|
.PHONY: watch
|
|
110
102
|
watch: ## Run all test with every change.
|
|
111
|
-
@{{ general.dependency_manager }} run ptw --runner "pytest -n auto
|
|
112
|
-
|
|
113
|
-
.PHONY: insert-template
|
|
114
|
-
insert-template: ## Insert a template class among the existing ones.
|
|
115
|
-
@{{ general.dependency_manager }} run python -m scripts.insert_template
|
|
103
|
+
@{{ general.dependency_manager }} run ptw --runner "pytest -n auto test -ra"
|
|
116
104
|
|
|
117
105
|
.PHONY: create-aggregate
|
|
118
106
|
create-aggregate: ## Create a new aggregate inside contexts folder.
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
{{ macros.include_and_indent("project_structure/clean_architecture/test.yml.j2", 0) }}
|
|
4
4
|
{% if "github_actions" in template.built_in_features %}
|
|
5
5
|
{{ macros.include_and_indent("project_structure/github_action.yml.j2", 0) }}
|
|
6
|
+
{{ macros.include_and_indent("project_structure/makefile.yml.j2", 0) }}
|
|
6
7
|
{% endif %}
|
|
7
8
|
{% if "makefile" in template.built_in_features %}
|
|
8
9
|
{{ macros.include_and_indent("project_structure/makefile.yml.j2", 0) }}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
- name: domain
|
|
14
14
|
type: directory
|
|
15
15
|
python: True
|
|
16
|
-
{% if ["value_objects", "event_bus"] | is_in(template.built_in_features) %}
|
|
16
|
+
{% if ["value_objects", "event_bus", "fastapi_application"] | is_in(template.built_in_features) %}
|
|
17
17
|
children:
|
|
18
18
|
{% if "value_objects" in template.built_in_features %}
|
|
19
19
|
{{ macros.include_and_indent("project_structure/value_objects.yml.j2", 8) }}
|
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
{% if "event_bus" in template.built_in_features %}
|
|
22
22
|
{{ macros.include_and_indent("project_structure/event_bus_domain.yml.j2", 8) }}
|
|
23
23
|
{% endif %}
|
|
24
|
+
{% if "fastapi_application" in template.built_in_features %}
|
|
25
|
+
{{ macros.include_and_indent("project_structure/fastapi_domain.yml.j2", 8) }}
|
|
26
|
+
{% endif %}
|
|
24
27
|
{% endif %}
|
|
25
28
|
- name: application
|
|
26
29
|
type: directory
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
{{ macros.include_and_indent("project_structure/domain_driven_design/test.yml.j2", 0) }}
|
|
4
4
|
{% if "github_actions" in template.built_in_features %}
|
|
5
5
|
{{ macros.include_and_indent("project_structure/github_action.yml.j2", 0) }}
|
|
6
|
+
{{ macros.include_and_indent("project_structure/makefile.yml.j2", 0) }}
|
|
6
7
|
{% endif %}
|
|
7
8
|
{% if "makefile" in template.built_in_features %}
|
|
8
9
|
{{ macros.include_and_indent("project_structure/makefile.yml.j2", 0) }}
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
- name: shared
|
|
14
14
|
type: directory
|
|
15
15
|
python: True
|
|
16
|
-
{% if ["value_objects", "synchronous_sqlalchemy", "event_bus", "async_alembic"] | is_in(template.built_in_features) %}
|
|
16
|
+
{% if ["value_objects", "synchronous_sqlalchemy", "event_bus", "async_alembic", "fastapi_application"] | is_in(template.built_in_features) %}
|
|
17
17
|
children:
|
|
18
|
-
{% if ["value_objects", "event_bus"] | is_in(template.built_in_features) %}
|
|
18
|
+
{% if ["value_objects", "event_bus", "fastapi_application"] | is_in(template.built_in_features) %}
|
|
19
19
|
- name: domain
|
|
20
20
|
type: directory
|
|
21
21
|
python: True
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
{% if "event_bus" in template.built_in_features %}
|
|
27
27
|
{{ macros.include_and_indent("project_structure/event_bus_domain.yml.j2", 12) }}
|
|
28
28
|
{% endif %}
|
|
29
|
+
{% if "fastapi_application" in template.built_in_features %}
|
|
30
|
+
{{ macros.include_and_indent("project_structure/fastapi_domain.yml.j2", 12) }}
|
|
31
|
+
{% endif %}
|
|
29
32
|
{% endif %}
|
|
30
33
|
{% if ["synchronous_sqlalchemy", "event_bus", "logger", "async_sqlalchemy", "async_alembic", "fastapi_application"] | is_in(template.built_in_features) %}
|
|
31
34
|
- name: infra
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
{{ macros.include_and_indent("project_structure/standard_project/test.yml.j2", 0) }}
|
|
4
4
|
{% if "github_actions" in template.built_in_features %}
|
|
5
5
|
{{ macros.include_and_indent("project_structure/github_action.yml.j2", 0) }}
|
|
6
|
+
{{ macros.include_and_indent("project_structure/makefile.yml.j2", 0) }}
|
|
6
7
|
{% endif %}
|
|
7
8
|
{% if "makefile" in template.built_in_features %}
|
|
8
9
|
{{ macros.include_and_indent("project_structure/makefile.yml.j2", 0) }}
|
|
@@ -26,5 +26,6 @@
|
|
|
26
26
|
{% if "fastapi_application" in template.built_in_features %}
|
|
27
27
|
{{ macros.include_and_indent("project_structure/fastapi_app.yml.j2", 4) }}
|
|
28
28
|
{{ macros.include_and_indent("project_structure/fastapi_infra.yml.j2", 4) }}
|
|
29
|
+
{{ macros.include_and_indent("project_structure/fastapi_domain.yml.j2", 4) }}
|
|
29
30
|
{% endif %}
|
|
30
31
|
{% endif %}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: instant-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Instant boilerplate generation for Python projects
|
|
5
5
|
Project-URL: documentation, https://dimanu-py.github.io/instant-python/
|
|
6
6
|
Project-URL: repository, https://github.com/dimanu-py/instant-python/
|
|
@@ -3,9 +3,9 @@ instant_python/cli.py,sha256=gjBeCHZzuG1OHw0gZ_2gBByZ9UB_yq6JPSVUz3pLo3c,804
|
|
|
3
3
|
instant_python/instant_python_typer.py,sha256=jVk2VV8O4WHbyVGGn56D8Id-oo03KriwfmxgPTQOdy4,1230
|
|
4
4
|
instant_python/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
instant_python/commands/config.py,sha256=m62zbX9A_dKaYdLmYaG89kZqRQmqtVQZyeHCyJOP9pU,1169
|
|
6
|
-
instant_python/commands/init.py,sha256=
|
|
6
|
+
instant_python/commands/init.py,sha256=jdRQufnBG-29abOOkYeVJ8FwrRarQkRSMqsYZ2CGFNw,2356
|
|
7
7
|
instant_python/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
instant_python/configuration/configuration_schema.py,sha256=
|
|
8
|
+
instant_python/configuration/configuration_schema.py,sha256=KjZsLgY8IQynHaNIvhdBjFfvoVrtxMonkGuPijIrJTw,2680
|
|
9
9
|
instant_python/configuration/question_wizard.py,sha256=mK_tWJ88g-wETNxlW6n9OXCmzZ32177u56TM42OdOtA,347
|
|
10
10
|
instant_python/configuration/dependency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
instant_python/configuration/dependency/dependency_configuration.py,sha256=uNkvPjZkPmS3d_FdpiDB-zq41ME_jkijhvTu1dAe3Tg,1098
|
|
@@ -37,7 +37,7 @@ instant_python/configuration/step/dependencies_step.py,sha256=61V142RE6OGHv9zx3P
|
|
|
37
37
|
instant_python/configuration/step/general_step.py,sha256=Unel2DQo1f_dknx9I22jb9dtHfue5XzA5Md5ZWUUOn0,2701
|
|
38
38
|
instant_python/configuration/step/git_step.py,sha256=-B0PXgXT8q0bTHndrX4YBlYqnyFuBG5m9AmE1XmH67A,1589
|
|
39
39
|
instant_python/configuration/step/steps.py,sha256=65vt0yyQur39ZAkuv3ThEvI25UyhhtgW0uZdorKTMEk,527
|
|
40
|
-
instant_python/configuration/step/template_step.py,sha256=
|
|
40
|
+
instant_python/configuration/step/template_step.py,sha256=_x3X-mk2rrf4fN9H4O0r60e5gpPhwlFWLCsw9okIbRk,2789
|
|
41
41
|
instant_python/configuration/template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
42
|
instant_python/configuration/template/bounded_context_not_applicable.py,sha256=YtfMAWu7X-zvq4gwSecIjVWR8BF4dDfV8XnEKlcvb50,453
|
|
43
43
|
instant_python/configuration/template/bounded_context_not_especified.py,sha256=U0MoQxN5JMWlZQoksGwVpULFXVJLhOhhbc_XytBZJMY,430
|
|
@@ -51,6 +51,8 @@ instant_python/dependency_manager/dependency_manager_factory.py,sha256=WRP7LwPho
|
|
|
51
51
|
instant_python/dependency_manager/pdm_dependency_manager.py,sha256=O5EjtA0QeBNU81nhFYfzzrqZnyB-hdodQ6F2R3HJqyM,2064
|
|
52
52
|
instant_python/dependency_manager/unknown_dependency_manager_error.py,sha256=WYV3MGRgzHwJ5HwSOIPBowfIxadg_L6VdbNOKHRbNTE,396
|
|
53
53
|
instant_python/dependency_manager/uv_dependency_manager.py,sha256=U9glowDvi0JA4MSoeGANKYeoeE5grTHSXdWj3Rw5GVw,2039
|
|
54
|
+
instant_python/formatter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
instant_python/formatter/project_formatter.py,sha256=EeAlb7_LA6ZaBLopzx3ZA1p3q-Fgi7gEi5sxzDkVWsU,506
|
|
54
56
|
instant_python/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
57
|
instant_python/git/git_configurer.py,sha256=Z6sQpvAk_BYB_eGzJuAomPY0nu2dPPxOsDh3dUPeuuA,1422
|
|
56
58
|
instant_python/project_creator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -81,7 +83,7 @@ instant_python/templates/boilerplate/.python-version,sha256=7b_kfEdqh7QsWx4IDCSW
|
|
|
81
83
|
instant_python/templates/boilerplate/LICENSE,sha256=wzw1JFV1qGbnRMfokpku4CO4ZKvtreFsyIksljC7hLI,47428
|
|
82
84
|
instant_python/templates/boilerplate/README.md,sha256=qlaO6Tnd8k0A_ccRNVI8yt5Vn1dQP6AwxW_WH80P8Is,238
|
|
83
85
|
instant_python/templates/boilerplate/mypy.ini,sha256=unPeeeN5XStcdwqobdxtHsPj-Ru1NWPyZ5WF4PbQqik,889
|
|
84
|
-
instant_python/templates/boilerplate/pyproject.toml,sha256=
|
|
86
|
+
instant_python/templates/boilerplate/pyproject.toml,sha256=uta5rbctMyXOzyH7TBdDcN96elaJknoVGnpa19T_ZEw,1578
|
|
85
87
|
instant_python/templates/boilerplate/pytest.ini,sha256=UKGay9Gune7ft1FAy1O4VyVmnuLunQW5YeZfcuOKTZg,249
|
|
86
88
|
instant_python/templates/boilerplate/random_generator.py,sha256=WHyhk9xfRsziGH1PtVFSZavQGy5LzJkWLN8wwyKz3As,134
|
|
87
89
|
instant_python/templates/boilerplate/event_bus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -113,7 +115,8 @@ instant_python/templates/boilerplate/fastapi/http_response.py,sha256=xbxY3erNh8l
|
|
|
113
115
|
instant_python/templates/boilerplate/fastapi/lifespan.py,sha256=zbsmwtC_9PWJnGlO__5yOqLdEBklnl6f_FUOumy80oE,444
|
|
114
116
|
instant_python/templates/boilerplate/fastapi/status_code.py,sha256=bXHig0TFnfwGb_DmvQX3ovwWPWdI03mDmVb2Y-Oi7so,143
|
|
115
117
|
instant_python/templates/boilerplate/github/action.yml,sha256=52HH17dcMu2NOBUbydPP7nOkV2DZxzu7gX4IwYwjYts,668
|
|
116
|
-
instant_python/templates/boilerplate/github/
|
|
118
|
+
instant_python/templates/boilerplate/github/lint.yml,sha256=liaEzb_S4NKXgOtnwenp1J-Y9l5UhJOj580bPghSxHI,603
|
|
119
|
+
instant_python/templates/boilerplate/github/test.yml,sha256=jlPPZQra5EQH05HHqov8fBZ_inBg4BP6lwNFn0-zvWY,580
|
|
117
120
|
instant_python/templates/boilerplate/logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
121
|
instant_python/templates/boilerplate/logger/json_formatter.py,sha256=8usKxcT3-dZ7CeRExOES7NVq13pXmJnGVZyw129CDJ0,383
|
|
119
122
|
instant_python/templates/boilerplate/logger/logger.py,sha256=6UrnlWzSepJvKmK_39cXKEHDFB6Os5s5uV4c-cjYTjc,1210
|
|
@@ -137,7 +140,7 @@ instant_python/templates/boilerplate/scripts/create_aggregate.py,sha256=dgMCAtJE
|
|
|
137
140
|
instant_python/templates/boilerplate/scripts/insert_template.py,sha256=nkzSXIIj-KdQ30B_4tjut0LKeZNPUyy419A7YU6hVCw,4276
|
|
138
141
|
instant_python/templates/boilerplate/scripts/integration.sh,sha256=bQe0acRChPrdBqzeEIviZezfZxlt8CeibHj1QXjLyZE,972
|
|
139
142
|
instant_python/templates/boilerplate/scripts/local_setup.sh,sha256=XfH8vmHOPYfob6TTgnLQZsudOZ8hoAilndS1fKXDPFQ,261
|
|
140
|
-
instant_python/templates/boilerplate/scripts/makefile,sha256=
|
|
143
|
+
instant_python/templates/boilerplate/scripts/makefile,sha256=sXy4n44XyitaEAfYhpsmhcM-N97uv1Y9IzLn8bvhvyo,3474
|
|
141
144
|
instant_python/templates/boilerplate/scripts/post-merge,sha256=s1yHZr5sAb-4aGya6xZivChBx6ZVYEZHQ-57Ds7P0w8,380
|
|
142
145
|
instant_python/templates/boilerplate/scripts/pre-commit,sha256=t5DTgY4IyBcS4obd22-DKqUmmiGgBGW_jCckytdOG78,35
|
|
143
146
|
instant_python/templates/boilerplate/scripts/pre-push,sha256=2UpPIkPTnwO8UusCAij18JSSzYArrYBqFEQWjaXG1Po,50
|
|
@@ -154,11 +157,12 @@ instant_python/templates/project_structure/async_sqlalchemy.yml.j2,sha256=XaOKwR
|
|
|
154
157
|
instant_python/templates/project_structure/event_bus_domain.yml.j2,sha256=kqnY9EZaZ2O3HWaQb16jISpR287tBAKxyiq6IaPt1PA,769
|
|
155
158
|
instant_python/templates/project_structure/event_bus_infra.yml.j2,sha256=pCKtjiIfi6VSBdM7n1QL7lQgM-lRqm2_7eOXYOstwaQ,971
|
|
156
159
|
instant_python/templates/project_structure/fastapi_app.yml.j2,sha256=e3n1OXSea7LkOPlRCIbKwzyT6n-Y_YhSXwF1-TWX34Y,217
|
|
160
|
+
instant_python/templates/project_structure/fastapi_domain.yml.j2,sha256=21fFqN6Ncm_9pQ5eUH2mwZe73B8d3YGf7q4cSebBQfw,149
|
|
157
161
|
instant_python/templates/project_structure/fastapi_infra.yml.j2,sha256=VJg6fLYL20iYugnE-Q4QpZg7TfM62zKdkuAxE_gWWmI,223
|
|
158
|
-
instant_python/templates/project_structure/github_action.yml.j2,sha256=
|
|
162
|
+
instant_python/templates/project_structure/github_action.yml.j2,sha256=rMEddCYNUWE3kda2LhBu85FpxEWHZqQrOPBTm8mekkk,513
|
|
159
163
|
instant_python/templates/project_structure/gitignore.yml.j2,sha256=Ex3A7rvCvuIqxTVdeHxM3DPyTl73AcrHyiceHOIzFuw,43
|
|
160
164
|
instant_python/templates/project_structure/license.yml.j2,sha256=0h2OAyK4-HKWsM6Gllkh1wGRXmEl2mRJLlKgOPlyCY0,40
|
|
161
|
-
instant_python/templates/project_structure/logger.yml.j2,sha256=
|
|
165
|
+
instant_python/templates/project_structure/logger.yml.j2,sha256=VRZHVXjFWJsGXgLh8m5YJWS9tuOApWPXnb48bvClRvQ,219
|
|
162
166
|
instant_python/templates/project_structure/macros.j2,sha256=oAvJhQDJsk6yLm1r6P_kUdKAuLpOmuqmMauJdhKYv0U,173
|
|
163
167
|
instant_python/templates/project_structure/makefile.yml.j2,sha256=OBxI5k7ybQZ0NQWOItPiWUgRJDGKbH-60ur_M3E1wWY,1066
|
|
164
168
|
instant_python/templates/project_structure/mypy.yml.j2,sha256=Th3HkMdEu2xgORRhMV5QoqkilF90xfKb8JAEOXmEGUc,55
|
|
@@ -169,18 +173,18 @@ instant_python/templates/project_structure/python_version.yml.j2,sha256=zlkshfPr
|
|
|
169
173
|
instant_python/templates/project_structure/readme.yml.j2,sha256=Km1zSVKfGwx7GHn0CMMAKQieCO089wKb8QoPVUnoDUU,56
|
|
170
174
|
instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2,sha256=mC7WBchO0bzHcGkTw0k4woDstUvoQaJKlrCW82A96o8,467
|
|
171
175
|
instant_python/templates/project_structure/value_objects.yml.j2,sha256=X5AyyZoRllCYdvRUaXSYlcZk_EQg2OyfdCS8pejjFpc,963
|
|
172
|
-
instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2,sha256=
|
|
173
|
-
instant_python/templates/project_structure/clean_architecture/source.yml.j2,sha256=
|
|
176
|
+
instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2,sha256=hh4bYTAmrOPWugWqDXX3qPrRJiTUG8iUNPKSo2RBwfQ,1395
|
|
177
|
+
instant_python/templates/project_structure/clean_architecture/source.yml.j2,sha256=EOlKRnuYigc49LqLFhCKlCrfrdW673doyGryWnQhHhU,2505
|
|
174
178
|
instant_python/templates/project_structure/clean_architecture/test.yml.j2,sha256=q2Yqa4SXgEkg_xErGgESkObhRhPluA1fzKJgPMNIEOk,580
|
|
175
179
|
instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2,sha256=BTuT5fQBdw4o3Ev-iN8THAr2-bLlLG8mgLpbQOcL0x4,471
|
|
176
|
-
instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2,sha256=
|
|
177
|
-
instant_python/templates/project_structure/domain_driven_design/source.yml.j2,sha256=
|
|
180
|
+
instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2,sha256=NxA5Nw84DvJvfnag6-9jssZbe416fHXBzq4u1WeiDEY,1399
|
|
181
|
+
instant_python/templates/project_structure/domain_driven_design/source.yml.j2,sha256=L5N-C5EAQI8Nn4Nx6zEgTeaDbxHEm-zLKGEoFIcsdqA,2997
|
|
178
182
|
instant_python/templates/project_structure/domain_driven_design/test.yml.j2,sha256=sUVO0jWeDEoShMXIDSTBw-14vStjoHCcTm5DuuI9V2A,841
|
|
179
|
-
instant_python/templates/project_structure/standard_project/main_structure.yml.j2,sha256=
|
|
180
|
-
instant_python/templates/project_structure/standard_project/source.yml.j2,sha256=
|
|
183
|
+
instant_python/templates/project_structure/standard_project/main_structure.yml.j2,sha256=Gy11qNOtTDzGgIbhDPmAUkipmjwJPHa33-_WL_xlR3U,1381
|
|
184
|
+
instant_python/templates/project_structure/standard_project/source.yml.j2,sha256=8QdB1AY22BzHRCidNdEJ9a6PRzq9ZWRPKIpqyoD6tmE,1748
|
|
181
185
|
instant_python/templates/project_structure/standard_project/test.yml.j2,sha256=NxzsDeBKYzNaR3t8BY2VOuyhzwlp3Pa49OQNDF78gas,381
|
|
182
|
-
instant_python-0.
|
|
183
|
-
instant_python-0.
|
|
184
|
-
instant_python-0.
|
|
185
|
-
instant_python-0.
|
|
186
|
-
instant_python-0.
|
|
186
|
+
instant_python-0.7.0.dist-info/METADATA,sha256=xe10FPc5bRWfdm6kwwcJhBZxTwq1Phlc2cmtt8g73ew,17574
|
|
187
|
+
instant_python-0.7.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
188
|
+
instant_python-0.7.0.dist-info/entry_points.txt,sha256=EdBTj3b3N9Pa4oNzPLPivE_AnMcQIFsmRC3RsSkoLLA,47
|
|
189
|
+
instant_python-0.7.0.dist-info/licenses/LICENSE,sha256=kf7wA-1IsqXkzXjlsG95sdQJtsqUON_lNXombfPlklo,11353
|
|
190
|
+
instant_python-0.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|