fast-dev-cli 0.8.1__tar.gz → 0.8.2__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 (27) hide show
  1. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/PKG-INFO +1 -1
  2. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/fast_dev_cli/cli.py +21 -7
  3. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/pyproject.toml +1 -1
  4. fast_dev_cli-0.8.2/tests/test_runserver.py +82 -0
  5. fast_dev_cli-0.8.1/tests/test_runserver.py +0 -46
  6. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/LICENSE +0 -0
  7. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/README.md +0 -0
  8. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/fast_dev_cli/__init__.py +0 -0
  9. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/fast_dev_cli/__main__.py +0 -0
  10. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/fast_dev_cli/py.typed +0 -0
  11. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/pdm_build.py +0 -0
  12. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/scripts/check.sh +0 -0
  13. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/scripts/format.sh +0 -0
  14. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/scripts/test.sh +0 -0
  15. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/__init__.py +0 -0
  16. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/conftest.py +0 -0
  17. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_bump.py +0 -0
  18. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_fast_test.py +0 -0
  19. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_functions.py +0 -0
  20. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_import.py +0 -0
  21. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_lint.py +0 -0
  22. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_sync.py +0 -0
  23. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_tag.py +0 -0
  24. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_upgrade.py +0 -0
  25. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_upload.py +0 -0
  26. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/test_version.py +0 -0
  27. {fast_dev_cli-0.8.1 → fast_dev_cli-0.8.2}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fast-dev-cli
3
- Version: 0.8.1
3
+ Version: 0.8.2
4
4
  Summary: Python project development tool.
5
5
  Author-Email: Waket Zheng <waketzheng@gmail.com>>
6
6
  Classifier: Development Status :: 4 - Beta
@@ -27,7 +27,7 @@ if TYPE_CHECKING: # pragma: no cover
27
27
  from typer.models import OptionInfo
28
28
 
29
29
 
30
- __version__ = "0.8.1"
30
+ __version__ = "0.8.2"
31
31
 
32
32
 
33
33
  def parse_files(args: list[str] | tuple[str, ...]) -> list[str]:
@@ -666,10 +666,23 @@ def upload(
666
666
 
667
667
 
668
668
  def dev(
669
- port: int | None | "OptionInfo", host: str | None | "OptionInfo", dry=False
669
+ port: int | None | "OptionInfo",
670
+ host: str | None | "OptionInfo",
671
+ file: Optional[str] = None,
672
+ dry=False,
670
673
  ) -> None:
671
674
  cmd = "fastapi dev"
672
- if (port := getattr(port, "default", port)) and port != 8000:
675
+ no_port_yet = True
676
+ if file is not None:
677
+ try:
678
+ port = int(file) # type:ignore[arg-type]
679
+ except ValueError:
680
+ cmd += f" {file}"
681
+ else:
682
+ if port != 8000:
683
+ cmd += f" --{port=}"
684
+ no_port_yet = False
685
+ if no_port_yet and (port := getattr(port, "default", port)) and str(port) != "8000":
673
686
  cmd += f" --port={port}"
674
687
  if (host := getattr(host, "default", host)) and host not in (
675
688
  "localhost",
@@ -681,15 +694,16 @@ def dev(
681
694
 
682
695
  @cli.command(name="dev")
683
696
  def runserver(
684
- serve_port: Annotated[Optional[int], typer.Argument()] = None,
697
+ file_or_port: Annotated[Optional[str], typer.Argument()] = None,
685
698
  port: Optional[int] = Option(None, "-p", "--port"),
686
699
  host: Optional[str] = Option(None, "-h", "--host"),
687
700
  dry: bool = Option(False, "--dry", help="Only print, not really run shell command"),
688
701
  ) -> None:
689
702
  """Start a fastapi server(only for fastapi>=0.111.0)"""
690
- if serve_port:
691
- port = serve_port
692
- dev(port, host, dry=dry)
703
+ if file_or_port:
704
+ dev(port, host, file=file_or_port, dry=dry)
705
+ else:
706
+ dev(port, host, dry=dry)
693
707
 
694
708
 
695
709
  if __name__ == "__main__": # pragma: no cover
@@ -38,7 +38,7 @@ dependencies = [
38
38
  "bumpversion >=0.6.0,<0.7",
39
39
  "pytest >=8.2.0,<9",
40
40
  ]
41
- version = "0.8.1"
41
+ version = "0.8.2"
42
42
 
43
43
  [project.urls]
44
44
  Homepage = "https://github.com/waketzheng/fast-dev-cli"
@@ -0,0 +1,82 @@
1
+ from fast_dev_cli.cli import dev, run_and_echo, runserver
2
+
3
+
4
+ def test_runserver(capsys):
5
+ runserver(dry=True)
6
+ out = capsys.readouterr().out.strip()
7
+ assert "fastapi dev" == out.replace("--> ", "")
8
+ runserver(port=8000, dry=True)
9
+ out = capsys.readouterr().out.strip()
10
+ assert "fastapi dev" == out.replace("--> ", "")
11
+ runserver(port=9000, dry=True)
12
+ out = capsys.readouterr().out.strip()
13
+ assert "fastapi dev --port=9000" == out.replace("--> ", "")
14
+ runserver(host="0.0.0.0", dry=True)
15
+ out = capsys.readouterr().out.strip()
16
+ assert "fastapi dev --host=0.0.0.0" == out.replace("--> ", "")
17
+ runserver(port=9000, host="0.0.0.0", dry=True)
18
+ out = capsys.readouterr().out.strip()
19
+ assert "fastapi dev --port=9000 --host=0.0.0.0" == out.replace("--> ", "")
20
+
21
+
22
+ def test_dev(capsys):
23
+ dev(None, None, dry=True)
24
+ out = capsys.readouterr().out.strip()
25
+ assert "fastapi dev" == out.replace("--> ", "")
26
+ dev(port=8000, host="", dry=True)
27
+ out = capsys.readouterr().out.strip()
28
+ assert "fastapi dev" == out.replace("--> ", "")
29
+ dev(port=9000, host=None, dry=True)
30
+ out = capsys.readouterr().out.strip()
31
+ assert "fastapi dev --port=9000" == out.replace("--> ", "")
32
+ dev(8000, host="0.0.0.0", dry=True)
33
+ out = capsys.readouterr().out.strip()
34
+ assert "fastapi dev --host=0.0.0.0" == out.replace("--> ", "")
35
+ dev(port=9000, host="0.0.0.0", dry=True)
36
+ out = capsys.readouterr().out.strip()
37
+ assert "fastapi dev --port=9000 --host=0.0.0.0" == out.replace("--> ", "")
38
+ dev(8001, host="0.0.0.0", dry=True)
39
+ out = capsys.readouterr().out.strip()
40
+ assert "fastapi dev --port=8001 --host=0.0.0.0" == out.replace("--> ", "")
41
+ dev(None, file="8001", host="0.0.0.0", dry=True)
42
+ out = capsys.readouterr().out.strip()
43
+ assert "fastapi dev --port=8001 --host=0.0.0.0" == out.replace("--> ", "")
44
+ dev(None, file="main.py", host="0.0.0.0", dry=True)
45
+ out = capsys.readouterr().out.strip()
46
+ assert "fastapi dev main.py --host=0.0.0.0" == out.replace("--> ", "")
47
+ dev(8001, file="main.py", host="0.0.0.0", dry=True)
48
+ out = capsys.readouterr().out.strip()
49
+ assert "fastapi dev main.py --port=8001 --host=0.0.0.0" == out.replace("--> ", "")
50
+
51
+
52
+ def test_fast_dev(tmp_path):
53
+ out = tmp_path / "a.txt"
54
+ run_and_echo(f"fast dev 9000 --dry > {out}", verbose=False)
55
+ assert "fastapi dev --port=9000" in out.read_text()
56
+ run_and_echo(f"fast dev main.py --dry > {out}", verbose=False)
57
+ assert "fastapi dev main.py" in out.read_text()
58
+ run_and_echo(f"fast dev main.py --port=9000 --dry > {out}", verbose=False)
59
+ assert "fastapi dev main.py --port=9000" in out.read_text()
60
+ run_and_echo(
61
+ f"fast dev main.py --port=9000 --host=0.0.0.0 --dry > {out}", verbose=False
62
+ )
63
+ assert "fastapi dev main.py --port=9000 --host=0.0.0.0" in out.read_text()
64
+ run_and_echo(f"fast dev 9000 --host=0.0.0.0 --dry > {out}", verbose=False)
65
+ assert "fastapi dev --port=9000 --host=0.0.0.0" in out.read_text()
66
+
67
+
68
+ def test_run_by_module(tmp_path):
69
+ out = tmp_path / "b.txt"
70
+ fast = "python -m fast_dev_cli"
71
+ run_and_echo(f"{fast} dev 9000 --dry > {out}", verbose=False)
72
+ assert "fastapi dev --port=9000" in out.read_text()
73
+ run_and_echo(f"{fast} dev main.py --dry > {out}", verbose=False)
74
+ assert "fastapi dev main.py" in out.read_text()
75
+ run_and_echo(f"{fast} dev main.py --port=9000 --dry > {out}", verbose=False)
76
+ assert "fastapi dev main.py --port=9000" in out.read_text()
77
+ run_and_echo(
78
+ f"{fast} dev main.py --port=9000 --host=0.0.0.0 --dry > {out}", verbose=False
79
+ )
80
+ assert "fastapi dev main.py --port=9000 --host=0.0.0.0" in out.read_text()
81
+ run_and_echo(f"{fast} dev 9000 --host=0.0.0.0 --dry > {out}", verbose=False)
82
+ assert "fastapi dev --port=9000 --host=0.0.0.0" in out.read_text()
@@ -1,46 +0,0 @@
1
- from fast_dev_cli.cli import dev, run_and_echo, runserver
2
-
3
-
4
- def test_runserver(capsys):
5
- runserver(dry=True)
6
- out = capsys.readouterr().out.strip()
7
- assert "fastapi dev" == out.replace("--> ", "")
8
- runserver(port=8000, dry=True)
9
- out = capsys.readouterr().out.strip()
10
- assert "fastapi dev" == out.replace("--> ", "")
11
- runserver(port=9000, dry=True)
12
- out = capsys.readouterr().out.strip()
13
- assert "fastapi dev --port=9000" == out.replace("--> ", "")
14
- runserver(host="0.0.0.0", dry=True)
15
- out = capsys.readouterr().out.strip()
16
- assert "fastapi dev --host=0.0.0.0" == out.replace("--> ", "")
17
- runserver(port=9000, host="0.0.0.0", dry=True)
18
- out = capsys.readouterr().out.strip()
19
- assert "fastapi dev --port=9000 --host=0.0.0.0" == out.replace("--> ", "")
20
-
21
-
22
- def test_dev(capsys):
23
- dev(None, None, dry=True)
24
- out = capsys.readouterr().out.strip()
25
- assert "fastapi dev" == out.replace("--> ", "")
26
- dev(port=8000, host="", dry=True)
27
- out = capsys.readouterr().out.strip()
28
- assert "fastapi dev" == out.replace("--> ", "")
29
- dev(port=9000, host=None, dry=True)
30
- out = capsys.readouterr().out.strip()
31
- assert "fastapi dev --port=9000" == out.replace("--> ", "")
32
- dev(8000, host="0.0.0.0", dry=True)
33
- out = capsys.readouterr().out.strip()
34
- assert "fastapi dev --host=0.0.0.0" == out.replace("--> ", "")
35
- dev(port=9000, host="0.0.0.0", dry=True)
36
- out = capsys.readouterr().out.strip()
37
- assert "fastapi dev --port=9000 --host=0.0.0.0" == out.replace("--> ", "")
38
- dev(8001, host="0.0.0.0", dry=True)
39
- out = capsys.readouterr().out.strip()
40
- assert "fastapi dev --port=8001 --host=0.0.0.0" == out.replace("--> ", "")
41
-
42
-
43
- def test_fast_dev(tmp_path):
44
- out = tmp_path / "a.txt"
45
- run_and_echo(f"fast dev 9000 --dry > {out}", verbose=False)
46
- assert "fastapi dev --port=9000" in out.read_text()
File without changes
File without changes
File without changes