fastapi-cli 0.0.25__tar.gz → 0.0.26__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.
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/PKG-INFO +1 -1
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/pyproject.toml +1 -1
- fastapi_cli-0.0.26/src/fastapi_cli/__init__.py +1 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/cli.py +19 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_cli.py +14 -0
- fastapi_cli-0.0.25/src/fastapi_cli/__init__.py +0 -1
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/LICENSE +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/README.md +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/scripts/add_latest_release_date.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/scripts/format.sh +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/scripts/lint.sh +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/scripts/prepare_release.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/scripts/test-cov-html.sh +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/scripts/test.sh +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/__main__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/config.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/discover.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/exceptions.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/logging.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/py.typed +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/utils/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/src/fastapi_cli/utils/cli.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/broken_package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/broken_package/mod/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/broken_package/utils.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_api/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_api/app/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_api/app/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_app/app/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_app/app/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_app/app/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_main/app/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_main/app/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_main/app/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_main/app/main.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_non_default/app/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_non_default/app/nondefault.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_main/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_main/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_main/main.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/non_default/nonstandard.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/core/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/core/utils.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/mod/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/mod/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/mod/other.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/core/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/core/utils.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/mod/api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/mod/app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/package/mod/other.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/pyproject_config/another_module.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/pyproject_config/my_module.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/pyproject_config/pyproject.toml +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/single_file_api.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/single_file_app.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/single_file_other.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/conftest.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_cli_pyproject.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_discover.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_prepare_release.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_requirements.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_utils_cli.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_utils_default_dir.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_utils_default_file.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_utils_package.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/test_utils_single_file.py +0 -0
- {fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.26"
|
|
@@ -5,6 +5,7 @@ from typing import Annotated, Any
|
|
|
5
5
|
import typer
|
|
6
6
|
from pydantic import ValidationError
|
|
7
7
|
from rich import print
|
|
8
|
+
from rich.syntax import Syntax
|
|
8
9
|
from rich.tree import Tree
|
|
9
10
|
|
|
10
11
|
from fastapi_cli.config import FastAPIConfig
|
|
@@ -224,6 +225,24 @@ def _run(
|
|
|
224
225
|
toolkit.print(f" • Module: {mod_source_desc}")
|
|
225
226
|
toolkit.print(f" • App name: {app_source_desc}")
|
|
226
227
|
|
|
228
|
+
if import_data.module_config_source == "auto-discovery":
|
|
229
|
+
toolkit.print_line()
|
|
230
|
+
toolkit.print(
|
|
231
|
+
"You can configure an entrypoint in [blue]pyproject.toml[/] for this app with:",
|
|
232
|
+
tag="tip",
|
|
233
|
+
)
|
|
234
|
+
toolkit.print_line()
|
|
235
|
+
toolkit.print(
|
|
236
|
+
Syntax(
|
|
237
|
+
(
|
|
238
|
+
"[tool.fastapi]\n"
|
|
239
|
+
f'entrypoint = "{import_data.module_data.module_import_str}:{import_data.app_name}"'
|
|
240
|
+
),
|
|
241
|
+
"toml",
|
|
242
|
+
theme="ansi_light",
|
|
243
|
+
)
|
|
244
|
+
)
|
|
245
|
+
|
|
227
246
|
url = f"http://{host}:{port}"
|
|
228
247
|
url_docs = f"{url}/docs"
|
|
229
248
|
|
|
@@ -38,6 +38,7 @@ def test_dev() -> None:
|
|
|
38
38
|
assert "Configuration sources:" in result.output
|
|
39
39
|
assert "Module: path CLI argument" in result.output
|
|
40
40
|
assert "App name: auto-discovery" in result.output
|
|
41
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
41
42
|
assert "Starting development server 🚀" in result.output
|
|
42
43
|
assert "Server started at http://127.0.0.1:8000" in result.output
|
|
43
44
|
assert "Documentation at http://127.0.0.1:8000/docs" in result.output
|
|
@@ -64,6 +65,9 @@ def test_dev_no_args_auto_discovery() -> None:
|
|
|
64
65
|
assert "Using import string: main:app" in result.output
|
|
65
66
|
assert "Configuration sources:" in result.output
|
|
66
67
|
assert "Import string: auto-discovery" in result.output
|
|
68
|
+
assert "You can configure an entrypoint in pyproject.toml" in result.output
|
|
69
|
+
assert "[tool.fastapi]" in result.output
|
|
70
|
+
assert 'entrypoint = "main:app"' in result.output
|
|
67
71
|
|
|
68
72
|
|
|
69
73
|
def test_dev_package() -> None:
|
|
@@ -88,6 +92,7 @@ def test_dev_package() -> None:
|
|
|
88
92
|
assert "Using import string: nested_package.package:app" in result.output
|
|
89
93
|
assert "Module: path CLI argument" in result.output
|
|
90
94
|
assert "App name: auto-discovery" in result.output
|
|
95
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
91
96
|
assert "Starting development server 🚀" in result.output
|
|
92
97
|
assert "Server started at http://127.0.0.1:8000" in result.output
|
|
93
98
|
assert "Documentation at http://127.0.0.1:8000/docs" in result.output
|
|
@@ -140,6 +145,7 @@ def test_dev_args() -> None:
|
|
|
140
145
|
assert "Using import string: single_file_app:api" in result.output
|
|
141
146
|
assert "Module: path CLI argument" in result.output
|
|
142
147
|
assert "App name: --app CLI option" in result.output
|
|
148
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
143
149
|
assert "Starting development server 🚀" in result.output
|
|
144
150
|
assert "Server started at http://192.168.0.2:8080" in result.output
|
|
145
151
|
assert "Documentation at http://192.168.0.2:8080/docs" in result.output
|
|
@@ -173,6 +179,7 @@ def test_dev_env_vars() -> None:
|
|
|
173
179
|
assert "Using import string: single_file_app:app" in result.output
|
|
174
180
|
assert "Module: path CLI argument" in result.output
|
|
175
181
|
assert "App name: auto-discovery" in result.output
|
|
182
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
176
183
|
assert "Starting development server 🚀" in result.output
|
|
177
184
|
assert "Server started at http://127.0.0.1:8111" in result.output
|
|
178
185
|
assert "Documentation at http://127.0.0.1:8111/docs" in result.output
|
|
@@ -213,6 +220,7 @@ def test_dev_env_vars_and_args() -> None:
|
|
|
213
220
|
assert "Using import string: single_file_app:app" in result.output
|
|
214
221
|
assert "Module: path CLI argument" in result.output
|
|
215
222
|
assert "App name: auto-discovery" in result.output
|
|
223
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
216
224
|
assert "Starting development server 🚀" in result.output
|
|
217
225
|
assert "Server started at http://127.0.0.1:8080" in result.output
|
|
218
226
|
assert "Documentation at http://127.0.0.1:8080/docs" in result.output
|
|
@@ -261,6 +269,7 @@ def test_run() -> None:
|
|
|
261
269
|
assert "Using import string: single_file_app:app" in result.output
|
|
262
270
|
assert "Module: path CLI argument" in result.output
|
|
263
271
|
assert "App name: auto-discovery" in result.output
|
|
272
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
264
273
|
assert "Starting production server 🚀" in result.output
|
|
265
274
|
assert "Server started at http://0.0.0.0:8000" in result.output
|
|
266
275
|
assert "Documentation at http://0.0.0.0:8000/docs" in result.output
|
|
@@ -338,6 +347,7 @@ def test_run_args() -> None:
|
|
|
338
347
|
assert "Using import string: single_file_app:api" in result.output
|
|
339
348
|
assert "Module: path CLI argument" in result.output
|
|
340
349
|
assert "App name: --app CLI option" in result.output
|
|
350
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
341
351
|
assert "Starting production server 🚀" in result.output
|
|
342
352
|
assert "Server started at http://192.168.0.2:8080" in result.output
|
|
343
353
|
assert "Documentation at http://192.168.0.2:8080/docs" in result.output
|
|
@@ -371,6 +381,7 @@ def test_run_env_vars() -> None:
|
|
|
371
381
|
assert "Using import string: single_file_app:app" in result.output
|
|
372
382
|
assert "Module: path CLI argument" in result.output
|
|
373
383
|
assert "App name: auto-discovery" in result.output
|
|
384
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
374
385
|
assert "Starting production server 🚀" in result.output
|
|
375
386
|
assert "Server started at http://0.0.0.0:8111" in result.output
|
|
376
387
|
assert "Documentation at http://0.0.0.0:8111/docs" in result.output
|
|
@@ -407,6 +418,7 @@ def test_run_env_vars_and_args() -> None:
|
|
|
407
418
|
assert "Using import string: single_file_app:app" in result.output
|
|
408
419
|
assert "Module: path CLI argument" in result.output
|
|
409
420
|
assert "App name: auto-discovery" in result.output
|
|
421
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
410
422
|
assert "Starting production server 🚀" in result.output
|
|
411
423
|
assert "Server started at http://0.0.0.0:8080" in result.output
|
|
412
424
|
assert "Documentation at http://0.0.0.0:8080/docs" in result.output
|
|
@@ -521,6 +533,7 @@ def test_dev_with_import_string() -> None:
|
|
|
521
533
|
}
|
|
522
534
|
assert "Using import string: single_file_app:api" in result.output
|
|
523
535
|
assert "Import string: --entrypoint CLI option" in result.output
|
|
536
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
524
537
|
|
|
525
538
|
|
|
526
539
|
def test_run_with_import_string() -> None:
|
|
@@ -544,6 +557,7 @@ def test_run_with_import_string() -> None:
|
|
|
544
557
|
}
|
|
545
558
|
assert "Using import string: single_file_app:app" in result.output
|
|
546
559
|
assert "Import string: --entrypoint CLI option" in result.output
|
|
560
|
+
assert "You can configure an entrypoint in pyproject.toml" not in result.output
|
|
547
561
|
|
|
548
562
|
|
|
549
563
|
def test_script() -> None:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.0.25"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_api/app/api.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_app/app/api.py
RENAMED
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_app/app/app.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_main/app/api.py
RENAMED
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/default_app_dir_main/app/app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/default_files/non_default/nonstandard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.25 → fastapi_cli-0.0.26}/tests/assets/nested_package/package/mod/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|