fastapi-cli 0.0.4__tar.gz → 0.0.5__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 (60) hide show
  1. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/PKG-INFO +13 -14
  2. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/README.md +8 -8
  3. fastapi_cli-0.0.5/pdm_build.py +20 -0
  4. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/pyproject.toml +4 -10
  5. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/requirements-tests.txt +2 -2
  6. fastapi_cli-0.0.5/src/fastapi_cli/__init__.py +1 -0
  7. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/src/fastapi_cli/discover.py +14 -18
  8. fastapi_cli-0.0.4/pdm_build.py +0 -39
  9. fastapi_cli-0.0.4/src/fastapi_cli/__init__.py +0 -1
  10. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/LICENSE +0 -0
  11. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/requirements.txt +0 -0
  12. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/scripts/format.sh +0 -0
  13. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/scripts/lint.sh +0 -0
  14. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/scripts/test-cov-html.sh +0 -0
  15. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/scripts/test.sh +0 -0
  16. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/src/fastapi_cli/__main__.py +0 -0
  17. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/src/fastapi_cli/cli.py +0 -0
  18. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/src/fastapi_cli/exceptions.py +0 -0
  19. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/src/fastapi_cli/logging.py +0 -0
  20. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/src/fastapi_cli/py.typed +0 -0
  21. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/__init__.py +0 -0
  22. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/broken_package/mod/__init__.py +0 -0
  23. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/broken_package/mod/app.py +0 -0
  24. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/broken_package/utils.py +0 -0
  25. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_api/api.py +0 -0
  26. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app/api.py +0 -0
  27. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app/app.py +0 -0
  28. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_api/app/__init__.py +0 -0
  29. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_api/app/api.py +0 -0
  30. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_app/app/__init__.py +0 -0
  31. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_app/app/api.py +0 -0
  32. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_app/app/app.py +0 -0
  33. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/__init__.py +0 -0
  34. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/api.py +0 -0
  35. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/app.py +0 -0
  36. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/main.py +0 -0
  37. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_non_default/app/__init__.py +0 -0
  38. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_non_default/app/nondefault.py +0 -0
  39. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_main/api.py +0 -0
  40. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_main/app.py +0 -0
  41. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/default_main/main.py +0 -0
  42. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/default_files/non_default/nonstandard.py +0 -0
  43. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/__init__.py +0 -0
  44. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/core/__init__.py +0 -0
  45. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/core/utils.py +0 -0
  46. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/mod/__init__.py +0 -0
  47. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/mod/api.py +0 -0
  48. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/mod/app.py +0 -0
  49. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/package/mod/other.py +0 -0
  50. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/single_file_api.py +0 -0
  51. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/single_file_app.py +0 -0
  52. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/assets/single_file_other.py +0 -0
  53. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/conftest.py +0 -0
  54. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/test_cli.py +0 -0
  55. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/test_requirements.py +0 -0
  56. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/test_utils_default_dir.py +0 -0
  57. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/test_utils_default_file.py +0 -0
  58. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/test_utils_package.py +0 -0
  59. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/test_utils_single_file.py +0 -0
  60. {fastapi_cli-0.0.4 → fastapi_cli-0.0.5}/tests/utils.py +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastapi-cli
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀
5
- Home-page: https://github.com/tiangolo/fastapi-cli
5
+ Home-page: https://github.com/fastapi/fastapi-cli
6
6
  Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
7
7
  License: MIT
8
8
  Classifier: Intended Audience :: Information Technology
@@ -20,7 +20,6 @@ Classifier: Framework :: FastAPI
20
20
  Classifier: Intended Audience :: Developers
21
21
  Classifier: License :: OSI Approved :: MIT License
22
22
  Classifier: Programming Language :: Python :: 3 :: Only
23
- Classifier: Programming Language :: Python :: 3.7
24
23
  Classifier: Programming Language :: Python :: 3.8
25
24
  Classifier: Programming Language :: Python :: 3.9
26
25
  Classifier: Programming Language :: Python :: 3.10
@@ -28,32 +27,32 @@ Classifier: Programming Language :: Python :: 3.11
28
27
  Classifier: Programming Language :: Python :: 3.12
29
28
  Classifier: License :: OSI Approved :: MIT License
30
29
  Project-URL: Documentation, https://fastapi.tiangolo.com
31
- Project-URL: Homepage, https://github.com/tiangolo/fastapi-cli
32
- Project-URL: Repository, https://github.com/tiangolo/fastapi-cli
30
+ Project-URL: Homepage, https://github.com/fastapi/fastapi-cli
31
+ Project-URL: Repository, https://github.com/fastapi/fastapi-cli
33
32
  Requires-Python: >=3.8
34
33
  Requires-Dist: typer>=0.12.3
35
- Requires-Dist: fastapi; extra == "standard"
34
+ Requires-Dist: uvicorn[standard]>=0.15.0
36
35
  Requires-Dist: uvicorn[standard]>=0.15.0; extra == "standard"
37
36
  Provides-Extra: standard
38
37
  Description-Content-Type: text/markdown
39
38
 
40
39
  # FastAPI CLI
41
40
 
42
- <a href="https://github.com/tiangolo/fastapi-cli/actions/workflows/test.yml" target="_blank">
43
- <img src="https://github.com/tiangolo/fastapi-cli/actions/workflows/test.yml/badge.svg" alt="Test">
41
+ <a href="https://github.com/fastapi/fastapi-cli/actions/workflows/test.yml" target="_blank">
42
+ <img src="https://github.com/fastapi/fastapi-cli/actions/workflows/test.yml/badge.svg" alt="Test">
44
43
  </a>
45
- <a href="https://github.com/tiangolo/fastapi-cli/actions/workflows/publish.yml" target="_blank">
46
- <img src="https://github.com/tiangolo/fastapi-cli/actions/workflows/publish.yml/badge.svg" alt="Publish">
44
+ <a href="https://github.com/fastapi/fastapi-cli/actions/workflows/publish.yml" target="_blank">
45
+ <img src="https://github.com/fastapi/fastapi-cli/actions/workflows/publish.yml/badge.svg" alt="Publish">
47
46
  </a>
48
- <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/tiangolo/fastapi-cli" target="_blank">
49
- <img src="https://coverage-badge.samuelcolvin.workers.dev/tiangolo/fastapi-cli.svg" alt="Coverage">
47
+ <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/fastapi-cli" target="_blank">
48
+ <img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/fastapi-cli.svg" alt="Coverage">
50
49
  <a href="https://pypi.org/project/fastapi-cli" target="_blank">
51
50
  <img src="https://img.shields.io/pypi/v/fastapi-cli?color=%2334D058&label=pypi%20package" alt="Package version">
52
51
  </a>
53
52
 
54
53
  ---
55
54
 
56
- **Source Code**: <a href="https://github.com/tiangolo/fastapi-cli" target="_blank">https://github.com/tiangolo/fastapi-cli</a>
55
+ **Source Code**: <a href="https://github.com/fastapi/fastapi-cli" target="_blank">https://github.com/fastapi/fastapi-cli</a>
57
56
 
58
57
  ---
59
58
 
@@ -63,7 +62,7 @@ Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀
63
62
 
64
63
  **FastAPI CLI** is a command line program `fastapi` that you can use to serve your FastAPI app, manage your FastAPI project, and more.
65
64
 
66
- When you install FastAPI (e.g. with `pip install fastapi`), it includes a package called `fastapi-cli`, this package provides the `fastapi` command in the terminal.
65
+ When you install FastAPI (e.g. with `pip install "fastapi[standard]"`), it includes a package called `fastapi-cli`, this package provides the `fastapi` command in the terminal.
67
66
 
68
67
  To run your FastAPI app for development, you can use the `fastapi dev` command:
69
68
 
@@ -1,20 +1,20 @@
1
1
  # FastAPI CLI
2
2
 
3
- <a href="https://github.com/tiangolo/fastapi-cli/actions/workflows/test.yml" target="_blank">
4
- <img src="https://github.com/tiangolo/fastapi-cli/actions/workflows/test.yml/badge.svg" alt="Test">
3
+ <a href="https://github.com/fastapi/fastapi-cli/actions/workflows/test.yml" target="_blank">
4
+ <img src="https://github.com/fastapi/fastapi-cli/actions/workflows/test.yml/badge.svg" alt="Test">
5
5
  </a>
6
- <a href="https://github.com/tiangolo/fastapi-cli/actions/workflows/publish.yml" target="_blank">
7
- <img src="https://github.com/tiangolo/fastapi-cli/actions/workflows/publish.yml/badge.svg" alt="Publish">
6
+ <a href="https://github.com/fastapi/fastapi-cli/actions/workflows/publish.yml" target="_blank">
7
+ <img src="https://github.com/fastapi/fastapi-cli/actions/workflows/publish.yml/badge.svg" alt="Publish">
8
8
  </a>
9
- <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/tiangolo/fastapi-cli" target="_blank">
10
- <img src="https://coverage-badge.samuelcolvin.workers.dev/tiangolo/fastapi-cli.svg" alt="Coverage">
9
+ <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/fastapi-cli" target="_blank">
10
+ <img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/fastapi-cli.svg" alt="Coverage">
11
11
  <a href="https://pypi.org/project/fastapi-cli" target="_blank">
12
12
  <img src="https://img.shields.io/pypi/v/fastapi-cli?color=%2334D058&label=pypi%20package" alt="Package version">
13
13
  </a>
14
14
 
15
15
  ---
16
16
 
17
- **Source Code**: <a href="https://github.com/tiangolo/fastapi-cli" target="_blank">https://github.com/tiangolo/fastapi-cli</a>
17
+ **Source Code**: <a href="https://github.com/fastapi/fastapi-cli" target="_blank">https://github.com/fastapi/fastapi-cli</a>
18
18
 
19
19
  ---
20
20
 
@@ -24,7 +24,7 @@ Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀
24
24
 
25
25
  **FastAPI CLI** is a command line program `fastapi` that you can use to serve your FastAPI app, manage your FastAPI project, and more.
26
26
 
27
- When you install FastAPI (e.g. with `pip install fastapi`), it includes a package called `fastapi-cli`, this package provides the `fastapi` command in the terminal.
27
+ When you install FastAPI (e.g. with `pip install "fastapi[standard]"`), it includes a package called `fastapi-cli`, this package provides the `fastapi` command in the terminal.
28
28
 
29
29
  To run your FastAPI app for development, you can use the `fastapi dev` command:
30
30
 
@@ -0,0 +1,20 @@
1
+ import os
2
+ from typing import Any, Dict
3
+
4
+ from pdm.backend.hooks import Context
5
+
6
+ TIANGOLO_BUILD_PACKAGE = os.getenv("TIANGOLO_BUILD_PACKAGE", "fastapi-cli")
7
+
8
+
9
+ def pdm_build_initialize(context: Context):
10
+ metadata = context.config.metadata
11
+ # Get custom config for the current package, from the env var
12
+ config: Dict[str, Any] = context.config.data["tool"]["tiangolo"][
13
+ "_internal-slim-build"
14
+ ]["packages"].get(TIANGOLO_BUILD_PACKAGE)
15
+ if not config:
16
+ return
17
+ project_config: Dict[str, Any] = config["project"]
18
+ # Override main [project] configs with custom configs for this package
19
+ for key, value in project_config.items():
20
+ metadata[key] = value
@@ -23,7 +23,6 @@ classifiers = [
23
23
  "Intended Audience :: Developers",
24
24
  "License :: OSI Approved :: MIT License",
25
25
  "Programming Language :: Python :: 3 :: Only",
26
- "Programming Language :: Python :: 3.7",
27
26
  "Programming Language :: Python :: 3.8",
28
27
  "Programming Language :: Python :: 3.9",
29
28
  "Programming Language :: Python :: 3.10",
@@ -33,22 +32,22 @@ classifiers = [
33
32
  ]
34
33
  dependencies = [
35
34
  "typer >= 0.12.3",
35
+ "uvicorn[standard] >= 0.15.0",
36
36
  ]
37
- version = "0.0.4"
37
+ version = "0.0.5"
38
38
 
39
39
  [project.license]
40
40
  text = "MIT"
41
41
 
42
42
  [project.optional-dependencies]
43
43
  standard = [
44
- "fastapi",
45
44
  "uvicorn[standard] >= 0.15.0",
46
45
  ]
47
46
 
48
47
  [project.urls]
49
48
  Documentation = "https://fastapi.tiangolo.com"
50
- homepage = "https://github.com/tiangolo/fastapi-cli"
51
- Repository = "https://github.com/tiangolo/fastapi-cli"
49
+ homepage = "https://github.com/fastapi/fastapi-cli"
50
+ Repository = "https://github.com/fastapi/fastapi-cli"
52
51
 
53
52
  [project.scripts]
54
53
  fastapi = "fastapi_cli.cli:main"
@@ -76,11 +75,6 @@ source-includes = [
76
75
  [tool.tiangolo._internal-slim-build.packages.fastapi-cli-slim.project]
77
76
  name = "fastapi-cli-slim"
78
77
 
79
- [tool.tiangolo._internal-slim-build.packages.fastapi-cli]
80
- include-optional-dependencies = []
81
-
82
- [tool.tiangolo._internal-slim-build.packages.fastapi-cli.project]
83
-
84
78
  [tool.pytest.ini_options]
85
79
  addopts = [
86
80
  "--strict-config",
@@ -2,8 +2,8 @@
2
2
 
3
3
  pytest >=4.4.0,<9.0.0
4
4
  coverage[toml] >=6.2,<8.0
5
- mypy ==1.10.0
6
- ruff ==0.4.3
5
+ mypy ==1.11.1
6
+ ruff ==0.5.5
7
7
  # Needed explicitly by fastapi-cli-slim
8
8
  fastapi-slim
9
9
  uvicorn
@@ -0,0 +1 @@
1
+ __version__ = "0.0.5"
@@ -22,24 +22,20 @@ except ImportError: # pragma: no cover
22
22
 
23
23
 
24
24
  def get_default_path() -> Path:
25
- path = Path("main.py")
26
- if path.is_file():
27
- return path
28
- path = Path("app.py")
29
- if path.is_file():
30
- return path
31
- path = Path("api.py")
32
- if path.is_file():
33
- return path
34
- path = Path("app/main.py")
35
- if path.is_file():
36
- return path
37
- path = Path("app/app.py")
38
- if path.is_file():
39
- return path
40
- path = Path("app/api.py")
41
- if path.is_file():
42
- return path
25
+ potential_paths = (
26
+ "main.py",
27
+ "app.py",
28
+ "api.py",
29
+ "app/main.py",
30
+ "app/app.py",
31
+ "app/api.py",
32
+ )
33
+
34
+ for full_path in potential_paths:
35
+ path = Path(full_path)
36
+ if path.is_file():
37
+ return path
38
+
43
39
  raise FastAPICLIException(
44
40
  "Could not find a default file to run, please provide an explicit path"
45
41
  )
@@ -1,39 +0,0 @@
1
- import os
2
- from typing import Any, Dict, List
3
-
4
- from pdm.backend.hooks import Context
5
-
6
- TIANGOLO_BUILD_PACKAGE = os.getenv("TIANGOLO_BUILD_PACKAGE", "fastapi-cli")
7
-
8
-
9
- def pdm_build_initialize(context: Context):
10
- metadata = context.config.metadata
11
- # Get custom config for the current package, from the env var
12
- config: Dict[str, Any] = context.config.data["tool"]["tiangolo"][
13
- "_internal-slim-build"
14
- ]["packages"][TIANGOLO_BUILD_PACKAGE]
15
- project_config: Dict[str, Any] = config["project"]
16
- # Get main optional dependencies, extras
17
- optional_dependencies: Dict[str, List[str]] = metadata.get(
18
- "optional-dependencies", {}
19
- )
20
- # Get custom optional dependencies name to always include in this (non-slim) package
21
- include_optional_dependencies: List[str] = config.get(
22
- "include-optional-dependencies", []
23
- )
24
- # Override main [project] configs with custom configs for this package
25
- for key, value in project_config.items():
26
- metadata[key] = value
27
- # Get custom build config for the current package
28
- build_config: Dict[str, Any] = (
29
- config.get("tool", {}).get("pdm", {}).get("build", {})
30
- )
31
- # Override PDM build config with custom build config for this package
32
- for key, value in build_config.items():
33
- context.config.build_config[key] = value
34
- # Get main dependencies
35
- dependencies: List[str] = metadata.get("dependencies", [])
36
- # Add optional dependencies to the default dependencies for this (non-slim) package
37
- for include_optional in include_optional_dependencies:
38
- optional_dependencies_group = optional_dependencies.get(include_optional, [])
39
- dependencies.extend(optional_dependencies_group)
@@ -1 +0,0 @@
1
- __version__ = "0.0.4"
File without changes
File without changes
File without changes
File without changes