npv2k1 commited on
Commit
0f53e1d
·
1 Parent(s): bc0521a

feat: add asynchronous setup for webserver and transporter, and update dependencies for RabbitMQ and Uvicorn

Browse files
Files changed (4) hide show
  1. main.py +21 -4
  2. pyproject.toml +3 -0
  3. shell.nix +34 -0
  4. uv.lock +29 -2
main.py CHANGED
@@ -1,16 +1,33 @@
1
  #!/usr/bin/env python3
2
-
3
  import logging
4
  import os
5
  from pathlib import Path
6
  from typing import Dict
 
7
 
 
 
 
 
 
8
 
9
- def main() -> None:
 
 
 
 
 
 
10
  """Main application entry point."""
11
  try:
12
  print("Start app...")
13
- import src.modules.api
 
 
 
 
 
 
14
 
15
  except Exception as e:
16
  logging.error(f"Application failed to start: {e}", exc_info=True)
@@ -18,4 +35,4 @@ def main() -> None:
18
 
19
 
20
  if __name__ == "__main__":
21
- main()
 
1
  #!/usr/bin/env python3
 
2
  import logging
3
  import os
4
  from pathlib import Path
5
  from typing import Dict
6
+ import asyncio
7
 
8
+ async def setup_webserver() -> None:
9
+ """Setup web server configuration."""
10
+ # Placeholder for web server setup logic
11
+ from src.modules.api import server
12
+ await server()
13
 
14
+ async def setup_transporter() -> None:
15
+ """Setup transporter configuration."""
16
+ # Placeholder for transporter setup logic
17
+ # import src.modules.
18
+ import src.modules.transporter
19
+
20
+ async def main() -> None:
21
  """Main application entry point."""
22
  try:
23
  print("Start app...")
24
+ # import src.modules.transporter
25
+ task1 = asyncio.create_task(setup_webserver())
26
+ task2 = asyncio.create_task(setup_transporter())
27
+ await asyncio.gather(task1, task2)
28
+ print("App started successfully.")
29
+
30
+
31
 
32
  except Exception as e:
33
  logging.error(f"Application failed to start: {e}", exc_info=True)
 
35
 
36
 
37
  if __name__ == "__main__":
38
+ asyncio.run(main())
pyproject.toml CHANGED
@@ -8,7 +8,10 @@ dependencies = [
8
  "fastapi[standard]>=0.115.8",
9
  "ipykernel>=6.29.5",
10
  "numpy>=2.2.3",
 
11
  "pytest>=8.3.4",
 
 
12
  ]
13
 
14
  [tool.black]
 
8
  "fastapi[standard]>=0.115.8",
9
  "ipykernel>=6.29.5",
10
  "numpy>=2.2.3",
11
+ "pika>=1.3.2",
12
  "pytest>=8.3.4",
13
+ "rabbitmq>=0.2.0",
14
+ "uvicorn>=0.34.0",
15
  ]
16
 
17
  [tool.black]
shell.nix ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ { pkgs ? import <nixpkgs> {} }:
2
+
3
+ let
4
+ # Common environment variables
5
+ envVars = {
6
+ NODE_ENV = "development";
7
+ };
8
+
9
+ in pkgs.mkShell {
10
+ buildInputs = with pkgs; [
11
+ docker
12
+ docker-compose
13
+ nodejs_18
14
+ nodePackages.ts-node
15
+ ];
16
+
17
+ shellHook = ''
18
+ echo "Sync packages"
19
+ uv sync
20
+
21
+ # Activate venv
22
+ if [ -d ".venv" ]; then
23
+ source .venv/bin/activate
24
+ else
25
+ echo "Virtual environment not found, creating one..."
26
+ fi
27
+
28
+ alias dev='python3 main.py'
29
+ alias python='python3'
30
+
31
+ which python3
32
+
33
+ '';
34
+ }
uv.lock CHANGED
@@ -1,4 +1,5 @@
1
  version = 1
 
2
  requires-python = ">=3.11"
3
 
4
  [[package]]
@@ -101,7 +102,7 @@ name = "click"
101
  version = "8.1.8"
102
  source = { registry = "https://pypi.org/simple" }
103
  dependencies = [
104
- { name = "colorama", marker = "platform_system == 'Windows'" },
105
  ]
106
  sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
107
  wheels = [
@@ -322,7 +323,7 @@ name = "ipykernel"
322
  version = "6.29.5"
323
  source = { registry = "https://pypi.org/simple" }
324
  dependencies = [
325
- { name = "appnope", marker = "platform_system == 'Darwin'" },
326
  { name = "comm" },
327
  { name = "debugpy" },
328
  { name = "ipython" },
@@ -584,6 +585,15 @@ wheels = [
584
  { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 },
585
  ]
586
 
 
 
 
 
 
 
 
 
 
587
  [[package]]
588
  name = "platformdirs"
589
  version = "4.3.6"
@@ -884,6 +894,17 @@ wheels = [
884
  { url = "https://files.pythonhosted.org/packages/17/fc/b79f0b72891cbb9917698add0fede71dfb64e83fa3481a02ed0e78c34be7/pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:17f88622b848805d3f6427ce1ad5a2aa3cf61f12a97e684dab2979802024d460", size = 1399943 },
885
  ]
886
 
 
 
 
 
 
 
 
 
 
 
 
887
  [[package]]
888
  name = "rich"
889
  version = "13.9.4"
@@ -972,7 +993,10 @@ dependencies = [
972
  { name = "fastapi", extra = ["standard"] },
973
  { name = "ipykernel" },
974
  { name = "numpy" },
 
975
  { name = "pytest" },
 
 
976
  ]
977
 
978
  [package.metadata]
@@ -980,7 +1004,10 @@ requires-dist = [
980
  { name = "fastapi", extras = ["standard"], specifier = ">=0.115.8" },
981
  { name = "ipykernel", specifier = ">=6.29.5" },
982
  { name = "numpy", specifier = ">=2.2.3" },
 
983
  { name = "pytest", specifier = ">=8.3.4" },
 
 
984
  ]
985
 
986
  [[package]]
 
1
  version = 1
2
+ revision = 1
3
  requires-python = ">=3.11"
4
 
5
  [[package]]
 
102
  version = "8.1.8"
103
  source = { registry = "https://pypi.org/simple" }
104
  dependencies = [
105
+ { name = "colorama", marker = "sys_platform == 'win32'" },
106
  ]
107
  sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
108
  wheels = [
 
323
  version = "6.29.5"
324
  source = { registry = "https://pypi.org/simple" }
325
  dependencies = [
326
+ { name = "appnope", marker = "sys_platform == 'darwin'" },
327
  { name = "comm" },
328
  { name = "debugpy" },
329
  { name = "ipython" },
 
585
  { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 },
586
  ]
587
 
588
+ [[package]]
589
+ name = "pika"
590
+ version = "1.3.2"
591
+ source = { registry = "https://pypi.org/simple" }
592
+ sdist = { url = "https://files.pythonhosted.org/packages/db/db/d4102f356af18f316c67f2cead8ece307f731dd63140e2c71f170ddacf9b/pika-1.3.2.tar.gz", hash = "sha256:b2a327ddddf8570b4965b3576ac77091b850262d34ce8c1d8cb4e4146aa4145f", size = 145029 }
593
+ wheels = [
594
+ { url = "https://files.pythonhosted.org/packages/f9/f3/f412836ec714d36f0f4ab581b84c491e3f42c6b5b97a6c6ed1817f3c16d0/pika-1.3.2-py3-none-any.whl", hash = "sha256:0779a7c1fafd805672796085560d290213a465e4f6f76a6fb19e378d8041a14f", size = 155415 },
595
+ ]
596
+
597
  [[package]]
598
  name = "platformdirs"
599
  version = "4.3.6"
 
894
  { url = "https://files.pythonhosted.org/packages/17/fc/b79f0b72891cbb9917698add0fede71dfb64e83fa3481a02ed0e78c34be7/pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:17f88622b848805d3f6427ce1ad5a2aa3cf61f12a97e684dab2979802024d460", size = 1399943 },
895
  ]
896
 
897
+ [[package]]
898
+ name = "rabbitmq"
899
+ version = "0.2.0"
900
+ source = { registry = "https://pypi.org/simple" }
901
+ dependencies = [
902
+ { name = "cffi" },
903
+ ]
904
+ wheels = [
905
+ { url = "https://files.pythonhosted.org/packages/bc/1d/6b4397309786eaba2dee82285773c383d41ab4b3ffdb933d9af48de52025/rabbitmq-0.2.0-py2.py3-none-any.whl", hash = "sha256:74cfbc0f365019a8f318cd1ad9b1f85682768568fa3816740df37509a6dfbc2d", size = 7865 },
906
+ ]
907
+
908
  [[package]]
909
  name = "rich"
910
  version = "13.9.4"
 
993
  { name = "fastapi", extra = ["standard"] },
994
  { name = "ipykernel" },
995
  { name = "numpy" },
996
+ { name = "pika" },
997
  { name = "pytest" },
998
+ { name = "rabbitmq" },
999
+ { name = "uvicorn" },
1000
  ]
1001
 
1002
  [package.metadata]
 
1004
  { name = "fastapi", extras = ["standard"], specifier = ">=0.115.8" },
1005
  { name = "ipykernel", specifier = ">=6.29.5" },
1006
  { name = "numpy", specifier = ">=2.2.3" },
1007
+ { name = "pika", specifier = ">=1.3.2" },
1008
  { name = "pytest", specifier = ">=8.3.4" },
1009
+ { name = "rabbitmq", specifier = ">=0.2.0" },
1010
+ { name = "uvicorn", specifier = ">=0.34.0" },
1011
  ]
1012
 
1013
  [[package]]