flwr-nightly 1.5.0.dev20230725__tar.gz → 1.5.0.dev20230730__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/PKG-INFO +4 -5
  2. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/pyproject.toml +5 -6
  3. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/app.py +2 -4
  4. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/rest_rere/rest_api.py +17 -7
  5. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/LICENSE +0 -0
  6. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/README.md +0 -0
  7. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/__init__.py +0 -0
  8. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/__init__.py +0 -0
  9. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/app.py +0 -0
  10. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/client.py +0 -0
  11. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  12. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  13. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/grpc_client/connection.py +0 -0
  14. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  15. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  16. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/message_handler/__init__.py +0 -0
  17. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  18. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  19. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/numpy_client.py +0 -0
  20. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/rest_client/__init__.py +0 -0
  21. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/client/rest_client/connection.py +0 -0
  22. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/__init__.py +0 -0
  23. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/address.py +0 -0
  24. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/constant.py +0 -0
  25. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/date.py +0 -0
  26. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/dp.py +0 -0
  27. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/grpc.py +0 -0
  28. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/logger.py +0 -0
  29. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/parameter.py +0 -0
  30. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/serde.py +0 -0
  31. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/telemetry.py +0 -0
  32. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/typing.py +0 -0
  33. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/common/version.py +0 -0
  34. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/driver/__init__.py +0 -0
  35. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/driver/app.py +0 -0
  36. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/driver/driver.py +0 -0
  37. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/driver/driver_client_manager.py +0 -0
  38. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/driver/driver_client_proxy.py +0 -0
  39. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/__init__.py +0 -0
  40. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/driver_pb2.py +0 -0
  41. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  42. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  43. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  44. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/fleet_pb2.py +0 -0
  45. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  46. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  47. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  48. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/node_pb2.py +0 -0
  49. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/node_pb2.pyi +0 -0
  50. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  51. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  52. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/task_pb2.py +0 -0
  53. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/task_pb2.pyi +0 -0
  54. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  55. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  56. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/transport_pb2.py +0 -0
  57. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  58. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  59. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  60. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/py.typed +0 -0
  61. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/__init__.py +0 -0
  62. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/client_manager.py +0 -0
  63. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/client_proxy.py +0 -0
  64. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/criterion.py +0 -0
  65. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/driver/__init__.py +0 -0
  66. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/driver/driver_servicer.py +0 -0
  67. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/__init__.py +0 -0
  68. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/__init__.py +0 -0
  69. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/driver_client_manager.py +0 -0
  70. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  71. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/grpc_bridge.py +0 -0
  72. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  73. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/grpc_server.py +0 -0
  74. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_bidi/ins_scheduler.py +0 -0
  75. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_rere/__init__.py +0 -0
  76. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/grpc_rere/fleet_servicer.py +0 -0
  77. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/message_handler/__init__.py +0 -0
  78. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/message_handler/message_handler.py +0 -0
  79. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/fleet/rest_rere/__init__.py +0 -0
  80. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/history.py +0 -0
  81. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/server.py +0 -0
  82. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/state/__init__.py +0 -0
  83. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/state/in_memory_state.py +0 -0
  84. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/state/sqlite_state.py +0 -0
  85. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/state/state.py +0 -0
  86. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/state/state_factory.py +0 -0
  87. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/__init__.py +0 -0
  88. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/aggregate.py +0 -0
  89. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  90. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  91. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  92. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  93. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedadam.py +0 -0
  94. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedavg.py +0 -0
  95. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  96. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  97. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  98. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedopt.py +0 -0
  99. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedprox.py +0 -0
  100. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  101. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  102. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  103. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/krum.py +0 -0
  104. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  105. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/strategy/strategy.py +0 -0
  106. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/utils/__init__.py +0 -0
  107. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/utils/tensorboard.py +0 -0
  108. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/server/utils/validator.py +0 -0
  109. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/simulation/__init__.py +0 -0
  110. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/simulation/app.py +0 -0
  111. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  112. {flwr_nightly-1.5.0.dev20230725 → flwr_nightly-1.5.0.dev20230730}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.5.0.dev20230725
3
+ Version: 1.5.0.dev20230730
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.dev
6
6
  License: Apache-2.0
@@ -33,7 +33,6 @@ Classifier: Typing :: Typed
33
33
  Provides-Extra: rest
34
34
  Provides-Extra: simulation
35
35
  Requires-Dist: cryptography (>=41.0.2,<42.0.0)
36
- Requires-Dist: fastapi (>=0.95.0,<0.96.0) ; extra == "rest"
37
36
  Requires-Dist: grpcio (>=1.48.2,<2.0.0,!=1.52.0)
38
37
  Requires-Dist: importlib-metadata (>=4.0.0,<5.0.0) ; python_version < "3.8"
39
38
  Requires-Dist: iterators (>=0.0.2,<0.0.3)
@@ -42,9 +41,9 @@ Requires-Dist: protobuf (>=3.19.0,<4.0.0)
42
41
  Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
43
42
  Requires-Dist: pydantic (<2.0.0) ; extra == "simulation"
44
43
  Requires-Dist: ray[default] (==2.5.1) ; extra == "simulation"
45
- Requires-Dist: requests (>=2.28.2,<3.0.0) ; extra == "rest"
46
- Requires-Dist: starlette (>=0.27.0,<0.28.0) ; extra == "rest"
47
- Requires-Dist: uvicorn[standard] (>=0.21.1,<0.22.0) ; extra == "rest"
44
+ Requires-Dist: requests (>=2.31.0,<3.0.0) ; extra == "rest"
45
+ Requires-Dist: starlette (>=0.29.0,<0.30.0) ; extra == "rest"
46
+ Requires-Dist: uvicorn[standard] (>=0.22.0,<0.23.0) ; extra == "rest"
48
47
  Project-URL: Documentation, https://flower.dev
49
48
  Project-URL: Repository, https://github.com/adap/flower
50
49
  Description-Content-Type: text/markdown
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "flwr-nightly"
7
- version = "1.5.0-dev20230725"
7
+ version = "1.5.0-dev20230730"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.dev>"]
@@ -71,14 +71,13 @@ iterators = "^0.0.2"
71
71
  ray = { version = "==2.5.1", extras = ["default"], optional = true }
72
72
  pydantic = { version = "<2.0.0", optional = true }
73
73
  # Optional dependencies (REST transport layer)
74
- requests = { version = "^2.28.2", optional = true }
75
- fastapi = { version = "^0.95.0", optional = true }
76
- starlette = { version = "^0.27.0", optional = true }
77
- uvicorn = { version = "^0.21.1", extras = ["standard"], optional = true }
74
+ requests = { version = "^2.31.0", optional = true }
75
+ starlette = { version = "^0.29.0", optional = true }
76
+ uvicorn = { version = "^0.22.0", extras = ["standard"], optional = true }
78
77
 
79
78
  [tool.poetry.extras]
80
79
  simulation = ["ray", "pydantic"]
81
- rest = ["fastapi", "requests", "starlette", "uvicorn"]
80
+ rest = ["requests", "starlette", "uvicorn"]
82
81
 
83
82
  [tool.poetry.group.dev.dependencies]
84
83
  types-dataclasses = "==0.6.6"
@@ -282,8 +282,7 @@ def run_fleet_api() -> None:
282
282
  # Start Fleet API
283
283
  if args.fleet_api_type == TRANSPORT_TYPE_REST:
284
284
  if (
285
- importlib.util.find_spec("fastapi")
286
- and importlib.util.find_spec("requests")
285
+ importlib.util.find_spec("requests")
287
286
  and importlib.util.find_spec("starlette")
288
287
  and importlib.util.find_spec("uvicorn")
289
288
  ) is None:
@@ -376,8 +375,7 @@ def run_server() -> None:
376
375
  # Start Fleet API
377
376
  if args.fleet_api_type == TRANSPORT_TYPE_REST:
378
377
  if (
379
- importlib.util.find_spec("fastapi")
380
- and importlib.util.find_spec("requests")
378
+ importlib.util.find_spec("requests")
381
379
  and importlib.util.find_spec("starlette")
382
380
  and importlib.util.find_spec("uvicorn")
383
381
  ) is None:
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- """REST API server."""
15
+ """Experimental REST API server."""
16
16
 
17
17
 
18
18
  import sys
@@ -23,16 +23,16 @@ from flwr.server.fleet.message_handler import message_handler
23
23
  from flwr.server.state import State
24
24
 
25
25
  try:
26
- from fastapi import FastAPI, HTTPException, Request, Response
26
+ from starlette.applications import Starlette
27
27
  from starlette.datastructures import Headers
28
+ from starlette.exceptions import HTTPException
29
+ from starlette.requests import Request
30
+ from starlette.responses import Response
31
+ from starlette.routing import Route
28
32
  except ModuleNotFoundError:
29
33
  sys.exit(MISSING_EXTRA_REST)
30
34
 
31
35
 
32
- app: FastAPI = FastAPI()
33
-
34
-
35
- @app.post("/api/v0/fleet/pull-task-ins", response_class=Response)
36
36
  async def pull_task_ins(request: Request) -> Response:
37
37
  """Pull TaskIns."""
38
38
  _check_headers(request.headers)
@@ -62,7 +62,6 @@ async def pull_task_ins(request: Request) -> Response:
62
62
  )
63
63
 
64
64
 
65
- @app.post("/api/v0/fleet/push-task-res", response_class=Response)
66
65
  async def push_task_res(request: Request) -> Response: # Check if token is needed here
67
66
  """Push TaskRes."""
68
67
  _check_headers(request.headers)
@@ -92,6 +91,17 @@ async def push_task_res(request: Request) -> Response: # Check if token is need
92
91
  )
93
92
 
94
93
 
94
+ routes = [
95
+ Route("/api/v0/fleet/pull-task-ins", pull_task_ins, methods=["POST"]),
96
+ Route("/api/v0/fleet/push-task-res", push_task_res, methods=["POST"]),
97
+ ]
98
+
99
+ app: Starlette = Starlette(
100
+ debug=False,
101
+ routes=routes,
102
+ )
103
+
104
+
95
105
  def _check_headers(headers: Headers) -> None:
96
106
  """Check if expected headers are set."""
97
107
  if "content-type" not in headers: