fastapi-cli 0.0.32__tar.gz → 0.0.34__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.32 → fastapi_cli-0.0.34}/PKG-INFO +5 -6
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/pyproject.toml +7 -7
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/scripts/prepare_release.py +2 -2
- fastapi_cli-0.0.34/src/fastapi_cli/__init__.py +1 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/cli.py +1 -1
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/config.py +1 -12
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/discover.py +1 -1
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_requirements.py +2 -2
- fastapi_cli-0.0.32/src/fastapi_cli/__init__.py +0 -1
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/LICENSE +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/README.md +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/scripts/add_latest_release_date.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/scripts/format.sh +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/scripts/lint.sh +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/scripts/test-cov-html.sh +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/scripts/test.sh +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/__main__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/exceptions.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/logging.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/py.typed +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/utils/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/src/fastapi_cli/utils/cli.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/broken_package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/broken_package/mod/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/broken_package/utils.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_api/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_api/app/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_api/app/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_app/app/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_app/app/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_app/app/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_main/app/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_main/app/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_main/app/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_main/app/main.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_non_default/app/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_non_default/app/nondefault.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_main/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_main/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_main/main.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/non_default/nonstandard.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/environment_app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/core/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/core/utils.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/mod/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/mod/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/mod/other.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/core/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/core/utils.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/mod/api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/mod/app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/package/mod/other.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/pyproject_config/another_module.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/pyproject_config/my_module.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/pyproject_config/pyproject.toml +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/single_file_api.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/single_file_app.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/single_file_other.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/conftest.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_cli.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_cli_pyproject.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_discover.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_prepare_release.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_utils_cli.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_utils_default_dir.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_utils_default_file.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_utils_package.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/test_utils_single_file.py +0 -0
- {fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/utils.py +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.34
|
|
4
4
|
Summary: Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀
|
|
5
|
-
Author-Email:
|
|
5
|
+
Author-Email: Sebastián Ramírez <tiangolo@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
License-File: LICENSE
|
|
8
8
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -19,21 +19,20 @@ Classifier: Development Status :: 4 - Beta
|
|
|
19
19
|
Classifier: Framework :: FastAPI
|
|
20
20
|
Classifier: Intended Audience :: Developers
|
|
21
21
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.13
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.14
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
27
27
|
Project-URL: Homepage, https://github.com/fastapi/fastapi-cli
|
|
28
28
|
Project-URL: Documentation, https://fastapi.tiangolo.com/fastapi-cli/
|
|
29
29
|
Project-URL: Repository, https://github.com/fastapi/fastapi-cli
|
|
30
30
|
Project-URL: Issues, https://github.com/fastapi/fastapi-cli/issues
|
|
31
31
|
Project-URL: Changelog, https://github.com/fastapi/fastapi-cli/blob/main/release-notes.md
|
|
32
|
-
Requires-Python: >=3.
|
|
33
|
-
Requires-Dist: typer>=0.
|
|
32
|
+
Requires-Python: >=3.11
|
|
33
|
+
Requires-Dist: typer>=0.26.1
|
|
34
34
|
Requires-Dist: uvicorn[standard]>=0.15.0
|
|
35
35
|
Requires-Dist: rich-toolkit>=0.14.8
|
|
36
|
-
Requires-Dist: tomli>=2.0.0; python_version < "3.11"
|
|
37
36
|
Provides-Extra: standard
|
|
38
37
|
Requires-Dist: uvicorn[standard]>=0.15.0; extra == "standard"
|
|
39
38
|
Requires-Dist: fastapi-cloud-cli>=0.1.1; extra == "standard"
|
|
@@ -5,7 +5,7 @@ description = "Run and manage FastAPI apps from the command line with FastAPI CL
|
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Sebastián Ramírez", email = "tiangolo@gmail.com" },
|
|
7
7
|
]
|
|
8
|
-
requires-python = ">=3.
|
|
8
|
+
requires-python = ">=3.11"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
11
11
|
license-files = [
|
|
@@ -26,19 +26,18 @@ classifiers = [
|
|
|
26
26
|
"Framework :: FastAPI",
|
|
27
27
|
"Intended Audience :: Developers",
|
|
28
28
|
"Programming Language :: Python :: 3 :: Only",
|
|
29
|
-
"Programming Language :: Python :: 3.10",
|
|
30
29
|
"Programming Language :: Python :: 3.11",
|
|
31
30
|
"Programming Language :: Python :: 3.12",
|
|
32
31
|
"Programming Language :: Python :: 3.13",
|
|
33
32
|
"Programming Language :: Python :: 3.14",
|
|
33
|
+
"Programming Language :: Python :: 3.15",
|
|
34
34
|
]
|
|
35
35
|
dependencies = [
|
|
36
|
-
"typer >= 0.
|
|
36
|
+
"typer >= 0.26.1",
|
|
37
37
|
"uvicorn[standard] >= 0.15.0",
|
|
38
38
|
"rich-toolkit >= 0.14.8",
|
|
39
|
-
"tomli >= 2.0.0; python_version < '3.11'",
|
|
40
39
|
]
|
|
41
|
-
version = "0.0.
|
|
40
|
+
version = "0.0.34"
|
|
42
41
|
|
|
43
42
|
[project.optional-dependencies]
|
|
44
43
|
standard = [
|
|
@@ -69,9 +68,9 @@ github-actions = [
|
|
|
69
68
|
"smokeshow>=0.5.0",
|
|
70
69
|
]
|
|
71
70
|
tests = [
|
|
72
|
-
"coverage[toml]>=
|
|
71
|
+
"coverage[toml]>=7.9,<8.0",
|
|
73
72
|
"fastapi>=0.128.0",
|
|
74
|
-
"mypy==2.
|
|
73
|
+
"mypy==2.4.0",
|
|
75
74
|
"pytest>=7.4.0,<10.0.0",
|
|
76
75
|
"ruff>=0.15.15",
|
|
77
76
|
"uvicorn>=0.39.0",
|
|
@@ -106,6 +105,7 @@ xfail_strict = true
|
|
|
106
105
|
junit_family = "xunit2"
|
|
107
106
|
|
|
108
107
|
[tool.coverage.run]
|
|
108
|
+
core = "ctrace"
|
|
109
109
|
parallel = true
|
|
110
110
|
data_file = "coverage/.coverage"
|
|
111
111
|
source = [
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import re
|
|
4
4
|
from datetime import date
|
|
5
|
-
from enum import
|
|
5
|
+
from enum import StrEnum
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
from typing import Annotated
|
|
8
8
|
|
|
@@ -14,7 +14,7 @@ RELEASE_NOTES_HEADER = "# Release Notes\n\n"
|
|
|
14
14
|
LATEST_CHANGES_HEADER = "## Latest Changes"
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class BumpType(
|
|
17
|
+
class BumpType(StrEnum):
|
|
18
18
|
major = "major"
|
|
19
19
|
minor = "minor"
|
|
20
20
|
patch = "patch"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.34"
|
|
@@ -45,7 +45,7 @@ SOURCE_DESCRIPTIONS: dict[ModuleConfigSource | AppConfigSource, str] = {
|
|
|
45
45
|
try:
|
|
46
46
|
import uvicorn
|
|
47
47
|
except ImportError: # pragma: no cover
|
|
48
|
-
uvicorn = None # type: ignore[assignment]
|
|
48
|
+
uvicorn = None # type: ignore[assignment]
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
try:
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import tomllib
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel, StrictStr
|
|
6
6
|
|
|
7
|
-
logger = logging.getLogger(__name__)
|
|
8
|
-
|
|
9
7
|
|
|
10
8
|
class FastAPIConfig(BaseModel):
|
|
11
9
|
entrypoint: StrictStr | None = None
|
|
@@ -19,15 +17,6 @@ class FastAPIConfig(BaseModel):
|
|
|
19
17
|
if not pyproject_path.exists():
|
|
20
18
|
return {}
|
|
21
19
|
|
|
22
|
-
try:
|
|
23
|
-
import tomllib # type: ignore[import-not-found, unused-ignore] # ty: ignore[unresolved-import]
|
|
24
|
-
except ImportError:
|
|
25
|
-
try:
|
|
26
|
-
import tomli as tomllib # type: ignore[no-redef, import-not-found, unused-ignore]
|
|
27
|
-
except ImportError: # pragma: no cover
|
|
28
|
-
logger.debug("tomli not available, skipping pyproject.toml")
|
|
29
|
-
return {}
|
|
30
|
-
|
|
31
20
|
with open(pyproject_path, "rb") as f:
|
|
32
21
|
data = tomllib.load(f)
|
|
33
22
|
|
|
@@ -12,7 +12,7 @@ logger = getLogger(__name__)
|
|
|
12
12
|
try:
|
|
13
13
|
from fastapi import FastAPI
|
|
14
14
|
except ImportError: # pragma: no cover
|
|
15
|
-
FastAPI = None # type: ignore[misc, assignment]
|
|
15
|
+
FastAPI = None # type: ignore[misc, assignment]
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def get_default_path() -> Path:
|
|
@@ -18,7 +18,7 @@ def test_no_uvicorn() -> None:
|
|
|
18
18
|
|
|
19
19
|
import fastapi_cli.cli
|
|
20
20
|
|
|
21
|
-
fastapi_cli.cli.uvicorn = None # type: ignore[attr-defined, assignment]
|
|
21
|
+
fastapi_cli.cli.uvicorn = None # type: ignore[attr-defined, assignment]
|
|
22
22
|
|
|
23
23
|
with changing_dir(assets_path):
|
|
24
24
|
result = runner.invoke(fastapi_cli.cli.app, ["dev", "single_file_app.py"])
|
|
@@ -37,7 +37,7 @@ def test_no_fastapi() -> None:
|
|
|
37
37
|
|
|
38
38
|
import fastapi_cli.discover
|
|
39
39
|
|
|
40
|
-
fastapi_cli.discover.FastAPI = None # type: ignore[attr-defined, assignment]
|
|
40
|
+
fastapi_cli.discover.FastAPI = None # type: ignore[attr-defined, assignment]
|
|
41
41
|
with changing_dir(assets_path):
|
|
42
42
|
with pytest.raises(FastAPICLIException) as exc_info:
|
|
43
43
|
get_import_data(path=Path("single_file_app.py"))
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.0.32"
|
|
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.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_api/app/api.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_app/app/api.py
RENAMED
|
File without changes
|
{fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_app/app/app.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/default_files/default_app_dir_main/app/api.py
RENAMED
|
File without changes
|
{fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/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.32 → fastapi_cli-0.0.34}/tests/assets/default_files/non_default/nonstandard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/tests/assets/nested_package/package/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.32 → fastapi_cli-0.0.34}/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
|