fastapi-cli 0.0.3__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.3 → fastapi_cli-0.0.5}/PKG-INFO +14 -14
  2. {fastapi_cli-0.0.3 → 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.3 → fastapi_cli-0.0.5}/pyproject.toml +6 -12
  5. {fastapi_cli-0.0.3 → 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.3 → fastapi_cli-0.0.5}/src/fastapi_cli/cli.py +9 -1
  8. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/src/fastapi_cli/discover.py +23 -19
  9. fastapi_cli-0.0.5/tests/test_requirements.py +45 -0
  10. fastapi_cli-0.0.3/pdm_build.py +0 -39
  11. fastapi_cli-0.0.3/src/fastapi_cli/__init__.py +0 -1
  12. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/LICENSE +0 -0
  13. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/requirements.txt +0 -0
  14. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/scripts/format.sh +0 -0
  15. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/scripts/lint.sh +0 -0
  16. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/scripts/test-cov-html.sh +0 -0
  17. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/scripts/test.sh +0 -0
  18. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/src/fastapi_cli/__main__.py +0 -0
  19. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/src/fastapi_cli/exceptions.py +0 -0
  20. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/src/fastapi_cli/logging.py +0 -0
  21. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/src/fastapi_cli/py.typed +0 -0
  22. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/__init__.py +0 -0
  23. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/broken_package/mod/__init__.py +0 -0
  24. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/broken_package/mod/app.py +0 -0
  25. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/broken_package/utils.py +0 -0
  26. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_api/api.py +0 -0
  27. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app/api.py +0 -0
  28. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app/app.py +0 -0
  29. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_api/app/__init__.py +0 -0
  30. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_api/app/api.py +0 -0
  31. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_app/app/__init__.py +0 -0
  32. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_app/app/api.py +0 -0
  33. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_app/app/app.py +0 -0
  34. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/__init__.py +0 -0
  35. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/api.py +0 -0
  36. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/app.py +0 -0
  37. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_main/app/main.py +0 -0
  38. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_non_default/app/__init__.py +0 -0
  39. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_app_dir_non_default/app/nondefault.py +0 -0
  40. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_main/api.py +0 -0
  41. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_main/app.py +0 -0
  42. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/default_main/main.py +0 -0
  43. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/default_files/non_default/nonstandard.py +0 -0
  44. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/__init__.py +0 -0
  45. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/core/__init__.py +0 -0
  46. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/core/utils.py +0 -0
  47. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/mod/__init__.py +0 -0
  48. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/mod/api.py +0 -0
  49. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/mod/app.py +0 -0
  50. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/package/mod/other.py +0 -0
  51. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/single_file_api.py +0 -0
  52. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/single_file_app.py +0 -0
  53. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/assets/single_file_other.py +0 -0
  54. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/conftest.py +0 -0
  55. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/test_cli.py +0 -0
  56. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/test_utils_default_dir.py +0 -0
  57. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/test_utils_default_file.py +0 -0
  58. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/test_utils_package.py +0 -0
  59. {fastapi_cli-0.0.3 → fastapi_cli-0.0.5}/tests/test_utils_single_file.py +0 -0
  60. {fastapi_cli-0.0.3 → 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.3
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,31 +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
36
34
  Requires-Dist: uvicorn[standard]>=0.15.0
35
+ Requires-Dist: uvicorn[standard]>=0.15.0; extra == "standard"
36
+ Provides-Extra: standard
37
37
  Description-Content-Type: text/markdown
38
38
 
39
39
  # FastAPI CLI
40
40
 
41
- <a href="https://github.com/tiangolo/fastapi-cli/actions/workflows/test.yml" target="_blank">
42
- <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">
43
43
  </a>
44
- <a href="https://github.com/tiangolo/fastapi-cli/actions/workflows/publish.yml" target="_blank">
45
- <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">
46
46
  </a>
47
- <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/tiangolo/fastapi-cli" target="_blank">
48
- <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">
49
49
  <a href="https://pypi.org/project/fastapi-cli" target="_blank">
50
50
  <img src="https://img.shields.io/pypi/v/fastapi-cli?color=%2334D058&label=pypi%20package" alt="Package version">
51
51
  </a>
52
52
 
53
53
  ---
54
54
 
55
- **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>
56
56
 
57
57
  ---
58
58
 
@@ -62,7 +62,7 @@ Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀
62
62
 
63
63
  **FastAPI CLI** is a command line program `fastapi` that you can use to serve your FastAPI app, manage your FastAPI project, and more.
64
64
 
65
- 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.
66
66
 
67
67
  To run your FastAPI app for development, you can use the `fastapi dev` command:
68
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,20 +32,22 @@ classifiers = [
33
32
  ]
34
33
  dependencies = [
35
34
  "typer >= 0.12.3",
36
- "fastapi",
37
35
  "uvicorn[standard] >= 0.15.0",
38
36
  ]
39
- version = "0.0.3"
37
+ version = "0.0.5"
40
38
 
41
39
  [project.license]
42
40
  text = "MIT"
43
41
 
44
42
  [project.optional-dependencies]
43
+ standard = [
44
+ "uvicorn[standard] >= 0.15.0",
45
+ ]
45
46
 
46
47
  [project.urls]
47
48
  Documentation = "https://fastapi.tiangolo.com"
48
- homepage = "https://github.com/tiangolo/fastapi-cli"
49
- Repository = "https://github.com/tiangolo/fastapi-cli"
49
+ homepage = "https://github.com/fastapi/fastapi-cli"
50
+ Repository = "https://github.com/fastapi/fastapi-cli"
50
51
 
51
52
  [project.scripts]
52
53
  fastapi = "fastapi_cli.cli:main"
@@ -74,13 +75,6 @@ source-includes = [
74
75
  [tool.tiangolo._internal-slim-build.packages.fastapi-cli-slim.project]
75
76
  name = "fastapi-cli-slim"
76
77
 
77
- [tool.tiangolo._internal-slim-build.packages.fastapi-cli]
78
- include-optional-dependencies = [
79
- "standard",
80
- ]
81
-
82
- [tool.tiangolo._internal-slim-build.packages.fastapi-cli.project.optional-dependencies]
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"
@@ -3,7 +3,6 @@ from pathlib import Path
3
3
  from typing import Any, Union
4
4
 
5
5
  import typer
6
- import uvicorn
7
6
  from rich import print
8
7
  from rich.padding import Padding
9
8
  from rich.panel import Panel
@@ -20,6 +19,11 @@ app = typer.Typer(rich_markup_mode="rich")
20
19
  setup_logging()
21
20
  logger = getLogger(__name__)
22
21
 
22
+ try:
23
+ import uvicorn
24
+ except ImportError: # pragma: no cover
25
+ uvicorn = None # type: ignore[assignment]
26
+
23
27
 
24
28
  def version_callback(value: bool) -> None:
25
29
  if value:
@@ -81,6 +85,10 @@ def _run(
81
85
  style="green",
82
86
  )
83
87
  print(Padding(panel, 1))
88
+ if not uvicorn:
89
+ raise FastAPICLIException(
90
+ "Could not import Uvicorn, try running 'pip install uvicorn'"
91
+ ) from None
84
92
  uvicorn.run(
85
93
  app=use_uvicorn_app,
86
94
  host=host,
@@ -5,7 +5,6 @@ from logging import getLogger
5
5
  from pathlib import Path
6
6
  from typing import Union
7
7
 
8
- from fastapi import FastAPI
9
8
  from rich import print
10
9
  from rich.padding import Padding
11
10
  from rich.panel import Panel
@@ -16,26 +15,27 @@ from fastapi_cli.exceptions import FastAPICLIException
16
15
 
17
16
  logger = getLogger(__name__)
18
17
 
18
+ try:
19
+ from fastapi import FastAPI
20
+ except ImportError: # pragma: no cover
21
+ FastAPI = None # type: ignore[misc, assignment]
22
+
19
23
 
20
24
  def get_default_path() -> Path:
21
- path = Path("main.py")
22
- if path.is_file():
23
- return path
24
- path = Path("app.py")
25
- if path.is_file():
26
- return path
27
- path = Path("api.py")
28
- if path.is_file():
29
- return path
30
- path = Path("app/main.py")
31
- if path.is_file():
32
- return path
33
- path = Path("app/app.py")
34
- if path.is_file():
35
- return path
36
- path = Path("app/api.py")
37
- if path.is_file():
38
- 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
+
39
39
  raise FastAPICLIException(
40
40
  "Could not find a default file to run, please provide an explicit path"
41
41
  )
@@ -107,6 +107,10 @@ def get_app_name(*, mod_data: ModuleData, app_name: Union[str, None] = None) ->
107
107
  "Ensure all the package directories have an [blue]__init__.py[/blue] file"
108
108
  )
109
109
  raise
110
+ if not FastAPI: # type: ignore[truthy-function]
111
+ raise FastAPICLIException(
112
+ "Could not import FastAPI, try running 'pip install fastapi'"
113
+ ) from None
110
114
  object_names = dir(mod)
111
115
  object_names_set = set(object_names)
112
116
  if app_name:
@@ -0,0 +1,45 @@
1
+ from pathlib import Path
2
+
3
+ import pytest
4
+ from fastapi_cli.discover import get_import_string
5
+ from fastapi_cli.exceptions import FastAPICLIException
6
+ from typer.testing import CliRunner
7
+
8
+ from .utils import changing_dir
9
+
10
+ runner = CliRunner()
11
+
12
+ assets_path = Path(__file__).parent / "assets"
13
+
14
+
15
+ def test_no_uvicorn() -> None:
16
+ import fastapi_cli.cli
17
+ import uvicorn
18
+
19
+ fastapi_cli.cli.uvicorn = None # type: ignore[attr-defined, assignment]
20
+
21
+ with changing_dir(assets_path):
22
+ result = runner.invoke(fastapi_cli.cli.app, ["dev", "single_file_app.py"])
23
+ assert result.exit_code == 1
24
+ assert result.exception is not None
25
+ assert (
26
+ "Could not import Uvicorn, try running 'pip install uvicorn'"
27
+ in result.exception.args[0]
28
+ )
29
+
30
+ fastapi_cli.cli.uvicorn = uvicorn # type: ignore[attr-defined]
31
+
32
+
33
+ def test_no_fastapi() -> None:
34
+ import fastapi_cli.discover
35
+ from fastapi import FastAPI
36
+
37
+ fastapi_cli.discover.FastAPI = None # type: ignore[attr-defined, assignment]
38
+ with changing_dir(assets_path):
39
+ with pytest.raises(FastAPICLIException) as exc_info:
40
+ get_import_string(path=Path("single_file_app.py"))
41
+ assert "Could not import FastAPI, try running 'pip install fastapi'" in str(
42
+ exc_info.value
43
+ )
44
+
45
+ fastapi_cli.discover.FastAPI = FastAPI # type: ignore[attr-defined]
@@ -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.3"
File without changes
File without changes
File without changes
File without changes