2
2
from myst_libre .abstract_class import AbstractClass
3
3
4
4
class MystBuilder (AbstractClass ):
5
- def __init__ (self , hub ):
6
- if not isinstance (hub , JupyterHubLocalSpawner ):
7
- raise TypeError (f"Expected 'hub' to be an instance of JupyterHubLocalSpawner, got { type (hub ).__name__ } instead" )
5
+ def __init__ (self , hub = None , build_dir = None ):
6
+ if hub is not None :
7
+ if not isinstance (hub , JupyterHubLocalSpawner ):
8
+ raise TypeError (f"Expected 'hub' to be an instance of JupyterHubLocalSpawner, got { type (hub ).__name__ } instead" )
9
+ self .hub = hub
10
+ self .env_vars = {
11
+ "JUPYTER_BASE_URL" : f"{ self .hub .jh_url } " ,
12
+ "JUPYTER_TOKEN" : f"{ self .hub .jh_token } " ,
13
+ "port" : f"{ self .hub .port } "
14
+ }
15
+ self .build_dir = self .hub .rees .build_dir
16
+ else :
17
+ if build_dir is None :
18
+ raise ValueError ("If 'hub' is None, 'build_dir' must be provided" )
19
+ self .build_dir = build_dir
20
+ self .env_vars = {}
21
+ self .hub = None
22
+
8
23
super ().__init__ ()
9
- self .env_vars = {}
10
- self .build_dir = ""
11
- self .hub = hub
12
- self .env_vars = {"JUPYTER_BASE_URL" :f"{ self .hub .jh_url } " ,
13
- "JUPYTER_TOKEN" :f"{ self .hub .jh_token } " ,
14
- "port" :f"{ self .hub .port } "
15
- }
16
- self .myst_client = MystMD (hub .rees .build_dir , self .env_vars )
24
+ self .myst_client = MystMD (self .build_dir , self .env_vars )
17
25
18
26
def setenv (self ,key ,value ):
19
27
self .env_vars [key ] = value
20
28
21
29
def build (self ,* args ):
22
- self .cprint (f'Starting MyST build { self .hub .jh_url } ' ,'yellow' )
30
+ if self .hub is not None :
31
+ self .cprint (f'Starting MyST build { self .hub .jh_url } ' ,'yellow' )
32
+ else :
33
+ self .cprint (f'Starting MyST build no exec.' ,'yellow' )
23
34
self .myst_client .build ('build' ,* args )
0 commit comments