3
3
import asyncio
4
4
from inspect import signature
5
5
import multiprocessing as mp
6
- mp .allow_connection_pickling ()
7
6
8
7
# custom imports and exports
9
8
from .robyn import Server , SocketHeld
14
13
from .log_colors import Colors
15
14
from .ws import WS
16
15
17
-
18
16
# 3rd party imports and exports
19
17
from multiprocess import Process
20
18
from watchdog .observers import Observer
21
19
20
+ mp .allow_connection_pickling ()
22
21
23
22
24
23
class Robyn :
@@ -31,15 +30,14 @@ def __init__(self, file_object):
31
30
self .server = Server (directory_path )
32
31
self .parser = ArgumentParser ()
33
32
self .dev = self .parser .is_dev ()
34
- self .processes = self .parser .num_processes ()
33
+ self .processes = self .parser .num_processes ()
35
34
self .workers = self .parser .workers ()
36
35
self .routes = []
37
36
self .headers = []
38
37
self .routes = []
39
38
self .directories = []
40
39
self .web_sockets = {}
41
40
42
-
43
41
def add_route (self , route_type , endpoint , handler ):
44
42
"""
45
43
[This is base handler for all the decorators]
@@ -53,22 +51,24 @@ def add_route(self, route_type, endpoint, handler):
53
51
"""
54
52
number_of_params = len (signature (handler ).parameters )
55
53
self .routes .append (
56
- ( route_type , endpoint , handler , asyncio .iscoroutinefunction (handler ), number_of_params )
54
+ (route_type ,
55
+ endpoint ,
56
+ handler ,
57
+ asyncio .iscoroutinefunction (handler ), number_of_params )
57
58
)
58
59
59
60
def add_directory (self , route , directory_path , index_file = None , show_files_listing = False ):
60
- self .directories .append (( route , directory_path , index_file , show_files_listing ))
61
+ self .directories .append ((route , directory_path , index_file , show_files_listing ))
61
62
62
63
def add_header (self , key , value ):
63
- self .headers .append (( key , value ))
64
+ self .headers .append ((key , value ))
64
65
65
66
def remove_header (self , key ):
66
67
self .server .remove_header (key )
67
68
68
69
def add_web_socket (self , endpoint , ws ):
69
70
self .web_sockets [endpoint ] = ws
70
-
71
-
71
+
72
72
def start (self , url = "127.0.0.1" , port = 5000 ):
73
73
"""
74
74
[Starts the server]
@@ -82,7 +82,9 @@ def start(self, url="127.0.0.1", port=5000):
82
82
copied = socket .try_clone ()
83
83
p = Process (
84
84
target = spawn_process ,
85
- args = (url , port , self .directories , self .headers , self .routes , self .web_sockets , copied , f"Process { process_number } " , workers ),
85
+ args = (url , port , self .directories , self .headers ,
86
+ self .routes , self .web_sockets , copied ,
87
+ f"Process { process_number } " , workers ),
86
88
)
87
89
p .start ()
88
90
@@ -92,7 +94,9 @@ def start(self, url="127.0.0.1", port=5000):
92
94
event_handler .start_server_first_time ()
93
95
print (f"{ Colors .OKBLUE } Dev server initialised with the directory_path : { self .directory_path } { Colors .ENDC } " )
94
96
observer = Observer ()
95
- observer .schedule (event_handler , path = self .directory_path , recursive = True )
97
+ observer .schedule (event_handler ,
98
+ path = self .directory_path ,
99
+ recursive = True )
96
100
observer .start ()
97
101
try :
98
102
while True :
@@ -101,7 +105,6 @@ def start(self, url="127.0.0.1", port=5000):
101
105
observer .stop ()
102
106
observer .join ()
103
107
104
-
105
108
def get (self , endpoint ):
106
109
"""
107
110
[The @app.get decorator to add a get route]
@@ -154,7 +157,7 @@ def patch(self, endpoint):
154
157
"""
155
158
def inner (handler ):
156
159
self .add_route ("PATCH" , endpoint , handler )
157
-
160
+
158
161
return inner
159
162
160
163
def head (self , endpoint ):
@@ -179,7 +182,6 @@ def inner(handler):
179
182
180
183
return inner
181
184
182
-
183
185
def connect (self , endpoint ):
184
186
"""
185
187
[The @app.connect decorator to add a get route]
@@ -202,4 +204,3 @@ def inner(handler):
202
204
203
205
return inner
204
206
205
-
0 commit comments