fastapi-cli 0.0.17__tar.gz → 0.0.18__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 (77) hide show
  1. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/PKG-INFO +3 -1
  2. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/pyproject.toml +4 -1
  3. fastapi_cli-0.0.18/src/fastapi_cli/__init__.py +1 -0
  4. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/cli.py +10 -0
  5. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/utils/cli.py +6 -1
  6. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_utils_cli.py +19 -0
  7. fastapi_cli-0.0.17/src/fastapi_cli/__init__.py +0 -1
  8. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/LICENSE +0 -0
  9. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/README.md +0 -0
  10. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/pdm_build.py +0 -0
  11. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/requirements-github-actions.txt +0 -0
  12. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/requirements-tests.txt +0 -0
  13. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/requirements.txt +0 -0
  14. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/scripts/format.sh +0 -0
  15. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/scripts/lint.sh +0 -0
  16. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/scripts/test-cov-html.sh +0 -0
  17. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/scripts/test.sh +0 -0
  18. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/__main__.py +0 -0
  19. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/config.py +0 -0
  20. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/discover.py +0 -0
  21. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/exceptions.py +0 -0
  22. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/logging.py +0 -0
  23. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/py.typed +0 -0
  24. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/src/fastapi_cli/utils/__init__.py +0 -0
  25. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/__init__.py +0 -0
  26. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/broken_package/mod/__init__.py +0 -0
  27. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/broken_package/mod/app.py +0 -0
  28. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/broken_package/utils.py +0 -0
  29. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_api/api.py +0 -0
  30. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app/api.py +0 -0
  31. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app/app.py +0 -0
  32. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_api/app/__init__.py +0 -0
  33. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_api/app/api.py +0 -0
  34. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_app/app/__init__.py +0 -0
  35. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_app/app/api.py +0 -0
  36. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_app/app/app.py +0 -0
  37. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_main/app/__init__.py +0 -0
  38. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_main/app/api.py +0 -0
  39. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_main/app/app.py +0 -0
  40. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_main/app/main.py +0 -0
  41. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_non_default/app/__init__.py +0 -0
  42. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_app_dir_non_default/app/nondefault.py +0 -0
  43. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_main/api.py +0 -0
  44. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_main/app.py +0 -0
  45. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/default_main/main.py +0 -0
  46. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/default_files/non_default/nonstandard.py +0 -0
  47. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/__init__.py +0 -0
  48. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/__init__.py +0 -0
  49. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/core/__init__.py +0 -0
  50. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/core/utils.py +0 -0
  51. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/mod/__init__.py +0 -0
  52. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/mod/api.py +0 -0
  53. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/mod/app.py +0 -0
  54. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/nested_package/package/mod/other.py +0 -0
  55. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/__init__.py +0 -0
  56. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/core/__init__.py +0 -0
  57. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/core/utils.py +0 -0
  58. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/mod/__init__.py +0 -0
  59. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/mod/api.py +0 -0
  60. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/mod/app.py +0 -0
  61. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/package/mod/other.py +0 -0
  62. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/pyproject_config/another_module.py +0 -0
  63. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/pyproject_config/my_module.py +0 -0
  64. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/pyproject_config/pyproject.toml +0 -0
  65. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/single_file_api.py +0 -0
  66. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/single_file_app.py +0 -0
  67. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/assets/single_file_other.py +0 -0
  68. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/conftest.py +0 -0
  69. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_cli.py +0 -0
  70. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_cli_pyproject.py +0 -0
  71. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_discover.py +0 -0
  72. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_requirements.py +0 -0
  73. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_utils_default_dir.py +0 -0
  74. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_utils_default_file.py +0 -0
  75. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_utils_package.py +0 -0
  76. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/test_utils_single_file.py +0 -0
  77. {fastapi_cli-0.0.17 → fastapi_cli-0.0.18}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastapi-cli
3
- Version: 0.0.17
3
+ Version: 0.0.18
4
4
  Summary: Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀
5
5
  Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
6
6
  License-Expression: MIT
@@ -41,6 +41,8 @@ Requires-Dist: uvicorn[standard]>=0.15.0; extra == "standard"
41
41
  Requires-Dist: fastapi-cloud-cli>=0.1.1; extra == "standard"
42
42
  Provides-Extra: standard-no-fastapi-cloud-cli
43
43
  Requires-Dist: uvicorn[standard]>=0.15.0; extra == "standard-no-fastapi-cloud-cli"
44
+ Provides-Extra: new
45
+ Requires-Dist: fastapi-new>=0.0.2; python_version >= "3.10" and extra == "new"
44
46
  Description-Content-Type: text/markdown
45
47
 
46
48
  # FastAPI CLI
@@ -40,7 +40,7 @@ dependencies = [
40
40
  "rich-toolkit >= 0.14.8",
41
41
  "tomli >= 2.0.0; python_version < '3.11'",
42
42
  ]
43
- version = "0.0.17"
43
+ version = "0.0.18"
44
44
 
45
45
  [project.optional-dependencies]
46
46
  standard = [
@@ -50,6 +50,9 @@ standard = [
50
50
  standard-no-fastapi-cloud-cli = [
51
51
  "uvicorn[standard] >= 0.15.0",
52
52
  ]
53
+ new = [
54
+ "fastapi-new >= 0.0.2 ; python_version >= '3.10'",
55
+ ]
53
56
 
54
57
  [project.urls]
55
58
  Homepage = "https://github.com/fastapi/fastapi-cli"
@@ -0,0 +1 @@
1
+ __version__ = "0.0.18"
@@ -39,6 +39,16 @@ except ImportError: # pragma: no cover
39
39
  pass
40
40
 
41
41
 
42
+ try:
43
+ from fastapi_new.cli import ( # type: ignore[import-not-found]
44
+ app as fastapi_new_cli,
45
+ )
46
+
47
+ app.add_typer(fastapi_new_cli) # pragma: no cover
48
+ except ImportError: # pragma: no cover
49
+ pass
50
+
51
+
42
52
  def version_callback(value: bool) -> None:
43
53
  if value:
44
54
  print(f"FastAPI CLI version: [green]{__version__}[/green]")
@@ -12,7 +12,12 @@ class CustomFormatter(DefaultFormatter):
12
12
  self.toolkit = get_rich_toolkit()
13
13
 
14
14
  def formatMessage(self, record: logging.LogRecord) -> str:
15
- return self.toolkit.print_as_string(record.getMessage(), tag=record.levelname)
15
+ message = record.getMessage()
16
+ result = self.toolkit.print_as_string(message, tag=record.levelname)
17
+ # Prepend newline to fix alignment after ^C is printed by the terminal
18
+ if message == "Shutting down":
19
+ result = "\n" + result
20
+ return result
16
21
 
17
22
 
18
23
  def get_uvicorn_log_config() -> Dict[str, Any]:
@@ -37,6 +37,25 @@ def test_custom_formatter() -> None:
37
37
  assert "200" in formatted
38
38
 
39
39
 
40
+ def test_custom_formatter_shutdown_prepends_newline() -> None:
41
+ formatter = CustomFormatter()
42
+
43
+ record = logging.LogRecord(
44
+ name="uvicorn.error",
45
+ level=logging.INFO,
46
+ pathname="",
47
+ lineno=0,
48
+ msg="Shutting down",
49
+ args=(),
50
+ exc_info=None,
51
+ )
52
+
53
+ formatted = formatter.formatMessage(record)
54
+
55
+ assert formatted.startswith("\n")
56
+ assert "Shutting down" in formatted
57
+
58
+
40
59
  def test_log_config_does_not_disable_existing_loggers(
41
60
  caplog: LogCaptureFixture,
42
61
  ) -> None:
@@ -1 +0,0 @@
1
- __version__ = "0.0.17"
File without changes
File without changes
File without changes