File tree Expand file tree Collapse file tree 4 files changed +50
-2
lines changed Expand file tree Collapse file tree 4 files changed +50
-2
lines changed Original file line number Diff line number Diff line change 1
- 2.0.13
1
+ 2.0.14
Original file line number Diff line number Diff line change 5
5
6
6
from .launch import Launch
7
7
from .register import Register
8
+ from .unregister import Unregister
8
9
9
10
10
11
def parse_args () -> Tuple [argparse .ArgumentParser , argparse .Namespace ]:
Original file line number Diff line number Diff line change
1
+ import argparse
2
+ import logging
3
+ import re
4
+
5
+ from .command import Command
6
+ from ..utils .registry import Registry
7
+
8
+
9
+ @Command .register ("unregister" )
10
+ class Unregister (Command ):
11
+ """
12
+ Unregisters/deletes a module by given name.
13
+ """
14
+
15
+ def add_subparser (self , parser : argparse ._SubParsersAction ) -> argparse .ArgumentParser :
16
+ description = """urartu: unregister"""
17
+ subparser = parser .add_parser (
18
+ self .name ,
19
+ description = description ,
20
+ help = "Unregister a project from the registry" ,
21
+ )
22
+
23
+ subparser .add_argument ("--name" , type = str , help = "name of the project/module" )
24
+
25
+ subparser .set_defaults (fire = self ._unregister )
26
+
27
+ return subparser
28
+
29
+ def _unregister (self , args : argparse .Namespace ):
30
+ module_name = re .sub (r"[^A-Za-z0-9]+" , "" , args .name )
31
+
32
+ if Registry .remove_entry (module_name ):
33
+ logging .info (f"Module '{ module_name } ' is unregistered successfully" )
Original file line number Diff line number Diff line change 8
8
class Registry :
9
9
REGISTRY_FILE_PATH = registry_file_path
10
10
11
+ @staticmethod
12
+ def remove_entry (module_name ):
13
+ file_content = Registry .load_file_content ()
14
+
15
+ if module_name not in file_content :
16
+ raise ValueError (f"Module with name '{ module_name } ' does not exists in the registery" )
17
+ else :
18
+ file_content .pop (module_name )
19
+
20
+ with open (Registry .REGISTRY_FILE_PATH , "w" ) as file :
21
+ yaml .dump (file_content , file )
22
+
23
+ return True
24
+
11
25
@staticmethod
12
26
def add_entry (module_name , module_root_dir ):
13
27
file_content = Registry .load_file_content ()
@@ -36,7 +50,7 @@ def load_file_content():
36
50
else :
37
51
with open (Registry .REGISTRY_FILE_PATH , "r" ) as file :
38
52
file_content = yaml .safe_load (file )
39
-
53
+
40
54
if file_content is None :
41
55
return {}
42
56
# raise RuntimeError(
You can’t perform that action at this time.
0 commit comments