3
3
import multiprocessing as mp
4
4
import os
5
5
import sys
6
+ from typing import Callable , Optional
6
7
7
8
from multiprocess import Process
8
9
from watchdog .observers import Observer
9
- from robyn . events import Events
10
+
10
11
from robyn .argument_parser import ArgumentParser
11
12
from robyn .dev_event_handler import EventHandler
13
+ from robyn .events import Events
12
14
from robyn .log_colors import Colors
13
15
from robyn .processpool import spawn_process
14
16
from robyn .responses import jsonify , static_file
15
-
16
17
from robyn .robyn import SocketHeld
17
18
from robyn .router import MiddlewareRouter , Router , WebSocketRouter
18
19
from robyn .ws import WS
23
24
class Robyn :
24
25
"""This is the python wrapper for the Robyn binaries."""
25
26
26
- def __init__ (self , file_object ) :
27
+ def __init__ (self , file_object : str ) -> None :
27
28
directory_path = os .path .dirname (os .path .abspath (file_object ))
28
29
self .file_path = file_object
29
30
self .directory_path = directory_path
@@ -54,7 +55,7 @@ def _add_route(self, route_type, endpoint, handler, const=False):
54
55
"""
55
56
self .router .add_route (route_type , endpoint , handler , const )
56
57
57
- def before_request (self , endpoint ) :
58
+ def before_request (self , endpoint : str ) -> Callable [..., None ] :
58
59
"""
59
60
The @app.before_request decorator to add a get route
60
61
@@ -63,7 +64,7 @@ def before_request(self, endpoint):
63
64
64
65
return self .middleware_router .add_before_request (endpoint )
65
66
66
- def after_request (self , endpoint ) :
67
+ def after_request (self , endpoint : str ) -> Callable [..., None ] :
67
68
"""
68
69
The @app.after_request decorator to add a get route
69
70
@@ -73,31 +74,31 @@ def after_request(self, endpoint):
73
74
return self .middleware_router .add_after_request (endpoint )
74
75
75
76
def add_directory (
76
- self , route , directory_path , index_file = None , show_files_listing = False
77
+ self , route : str , directory_path : str , index_file : Optional [ str ] = None , show_files_listing : bool = False
77
78
):
78
79
self .directories .append ((route , directory_path , index_file , show_files_listing ))
79
80
80
- def add_header (self , key , value ) :
81
+ def add_header (self , key : str , value : str ) -> None :
81
82
self .headers .append ((key , value ))
82
83
83
- def add_web_socket (self , endpoint , ws ) :
84
+ def add_web_socket (self , endpoint : str , ws : WS ) -> None :
84
85
self .web_socket_router .add_route (endpoint , ws )
85
86
86
- def _add_event_handler (self , event_type : str , handler ):
87
+ def _add_event_handler (self , event_type : str , handler ) -> None :
87
88
logger .debug (f"Add event { event_type } handler" )
88
89
if event_type not in {Events .STARTUP , Events .SHUTDOWN }:
89
90
return
90
91
91
92
is_async = asyncio .iscoroutinefunction (handler )
92
93
self .event_handlers [event_type ] = (handler , is_async )
93
94
94
- def startup_handler (self , handler ) :
95
+ def startup_handler (self , handler : Callable ) -> None :
95
96
self ._add_event_handler (Events .STARTUP , handler )
96
97
97
- def shutdown_handler (self , handler ) :
98
+ def shutdown_handler (self , handler : Callable ) -> None :
98
99
self ._add_event_handler (Events .SHUTDOWN , handler )
99
100
100
- def start (self , url = "127.0.0.1" , port = 5000 ):
101
+ def start (self , url : str = "127.0.0.1" , port : int = 5000 ):
101
102
"""
102
103
Starts the server
103
104
@@ -157,7 +158,6 @@ def init_processpool(socket):
157
158
logger .info (f"{ Colors .BOLD } { Colors .OKGREEN } Terminating server!! { Colors .ENDC } " )
158
159
for process in process_pool :
159
160
process .kill ()
160
-
161
161
else :
162
162
event_handler = EventHandler (self .file_path )
163
163
event_handler .start_server_first_time ()
@@ -174,7 +174,7 @@ def init_processpool(socket):
174
174
observer .stop ()
175
175
observer .join ()
176
176
177
- def get (self , endpoint , const = False ):
177
+ def get (self , endpoint : str , const : bool = False ) -> Callable [..., None ] :
178
178
"""
179
179
The @app.get decorator to add a get route
180
180
@@ -186,7 +186,7 @@ def inner(handler):
186
186
187
187
return inner
188
188
189
- def post (self , endpoint ) :
189
+ def post (self , endpoint : str ) -> Callable [..., None ] :
190
190
"""
191
191
The @app.post decorator to add a get route
192
192
@@ -198,7 +198,7 @@ def inner(handler):
198
198
199
199
return inner
200
200
201
- def put (self , endpoint ) :
201
+ def put (self , endpoint : str ) -> Callable [..., None ] :
202
202
"""
203
203
The @app.put decorator to add a get route
204
204
@@ -209,7 +209,7 @@ def inner(handler):
209
209
210
210
return inner
211
211
212
- def delete (self , endpoint ) :
212
+ def delete (self , endpoint : str ) -> Callable [..., None ] :
213
213
"""
214
214
The @app.delete decorator to add a get route
215
215
@@ -221,7 +221,7 @@ def inner(handler):
221
221
222
222
return inner
223
223
224
- def patch (self , endpoint ) :
224
+ def patch (self , endpoint : str ) -> Callable [..., None ] :
225
225
"""
226
226
[The @app.patch decorator to add a get route]
227
227
@@ -233,7 +233,7 @@ def inner(handler):
233
233
234
234
return inner
235
235
236
- def head (self , endpoint ) :
236
+ def head (self , endpoint : str ) -> Callable [..., None ] :
237
237
"""
238
238
The @app.head decorator to add a get route
239
239
@@ -245,7 +245,7 @@ def inner(handler):
245
245
246
246
return inner
247
247
248
- def options (self , endpoint ) :
248
+ def options (self , endpoint : str ) -> Callable [..., None ] :
249
249
"""
250
250
The @app.options decorator to add a get route
251
251
@@ -257,7 +257,7 @@ def inner(handler):
257
257
258
258
return inner
259
259
260
- def connect (self , endpoint ) :
260
+ def connect (self , endpoint : str ) -> Callable [..., None ] :
261
261
"""
262
262
The @app.connect decorator to add a get route
263
263
@@ -269,7 +269,7 @@ def inner(handler):
269
269
270
270
return inner
271
271
272
- def trace (self , endpoint ) :
272
+ def trace (self , endpoint : str ) -> Callable [..., None ] :
273
273
"""
274
274
The @app.trace decorator to add a get route
275
275
0 commit comments