Add more export functionalities
This commit is contained in:
@ -1614,8 +1614,10 @@ Categorize the user's request based on the operation they want to perform on
|
||||
nodes.update(layer3)
|
||||
if filter:
|
||||
if isinstance(filter, str):
|
||||
filter = "^(?!.*@).+$" if filter == "@" else filter
|
||||
nodes = {k: v for k, v in nodes.items() if re.search(filter, k)}
|
||||
elif isinstance(filter, list):
|
||||
filter = ["^(?!.*@).+$" if item == "@" else item for item in filter]
|
||||
nodes = {k: v for k, v in nodes.items() if any(re.search(pattern, k) for pattern in filter)}
|
||||
else:
|
||||
raise ValueError("filter must be a string or a list of strings")
|
||||
@ -1894,7 +1896,7 @@ Categorize the user's request based on the operation they want to perform on
|
||||
bulkparser.set_defaults(func=self._func_others)
|
||||
# EXPORTPARSER
|
||||
exportparser = subparsers.add_parser("export", help="Export connection folder to Yaml file")
|
||||
exportparser.add_argument("export", nargs=2, action=self._store_type, help="Export [@subfolder]@folder /path/to/file.yml")
|
||||
exportparser.add_argument("export", nargs="+", action=self._store_type, help="Export /path/to/file.yml [@subfolder1][@folder1] [@subfolderN][@folderN]")
|
||||
exportparser.set_defaults(func=self._func_export)
|
||||
# IMPORTPARSER
|
||||
importparser = subparsers.add_parser("import", help="Import connection folder to config from Yaml file")
|
||||
@ -2370,11 +2372,12 @@ Categorize the user's request based on the operation they want to perform on
|
||||
exit(10)
|
||||
for k,v in imported.items():
|
||||
uniques = self.config._explode_unique(k)
|
||||
folder = f"@{uniques['folder']}"
|
||||
matches = list(filter(lambda k: k == folder, self.folders))
|
||||
if len(matches) == 0:
|
||||
uniquefolder = self.config._explode_unique(folder)
|
||||
self.config._folder_add(**uniquefolder)
|
||||
if "folder" in uniques:
|
||||
folder = f"@{uniques['folder']}"
|
||||
matches = list(filter(lambda k: k == folder, self.folders))
|
||||
if len(matches) == 0:
|
||||
uniquefolder = self.config._explode_unique(folder)
|
||||
self.config._folder_add(**uniquefolder)
|
||||
if "subfolder" in uniques:
|
||||
subfolder = f"@{uniques['subfolder']}@{uniques['folder']}"
|
||||
matches = list(filter(lambda k: k == subfolder, self.folders))
|
||||
@ -2388,20 +2391,23 @@ Categorize the user's request based on the operation they want to perform on
|
||||
return
|
||||
|
||||
def _func_export(self, args):
|
||||
matches = list(filter(lambda k: k == args.data[0], self.folders))
|
||||
if len(matches) == 0:
|
||||
print("{} folder not found".format(args.data[0]))
|
||||
exit(2)
|
||||
if os.path.exists(args.data[1]):
|
||||
print("File {} already exists".format(args.data[1]))
|
||||
if os.path.exists(args.data[0]):
|
||||
print("File {} already exists".format(args.data[0]))
|
||||
exit(14)
|
||||
if len(args.data[1:]) == 0:
|
||||
foldercons = self.config._getallnodesfull(extract = False)
|
||||
else:
|
||||
foldercons = self.config._getallnodesfull(args.data[0], extract = False)
|
||||
with open(args.data[1], "w") as file:
|
||||
yaml.dump(foldercons, file, Dumper=NoAliasDumper, default_flow_style=False)
|
||||
file.close()
|
||||
print("File {} generated succesfully".format(args.data[1]))
|
||||
exit()
|
||||
for folder in args.data[1:]:
|
||||
matches = list(filter(lambda k: k == folder, self.folders))
|
||||
if len(matches) == 0 and folder != "@":
|
||||
print("{} folder not found".format(folder))
|
||||
exit(2)
|
||||
foldercons = self.config._getallnodesfull(args.data[1:], extract = False)
|
||||
with open(args.data[0], "w") as file:
|
||||
yaml.dump(foldercons, file, Dumper=NoAliasDumper, default_flow_style=False)
|
||||
file.close()
|
||||
print("File {} generated succesfully".format(args.data[0]))
|
||||
exit()
|
||||
return
|
||||
|
||||
def _func_run(self, args):
|
||||
@ -3147,7 +3153,7 @@ tasks:
|
||||
</details>
|
||||
</dd>
|
||||
<dt id="connpy.connapp.start"><code class="name flex">
|
||||
<span>def <span class="ident">start</span></span>(<span>self, argv=['connpy', '-o', 'docs/', '--force', '--html'])</span>
|
||||
<span>def <span class="ident">start</span></span>(<span>self, argv=['connpy', '--html', '-o', 'docs/', '-f'])</span>
|
||||
</code></dt>
|
||||
<dd>
|
||||
<div class="desc"><h3 id="parameters">Parameters:</h3>
|
||||
@ -3208,7 +3214,7 @@ tasks:
|
||||
bulkparser.set_defaults(func=self._func_others)
|
||||
# EXPORTPARSER
|
||||
exportparser = subparsers.add_parser("export", help="Export connection folder to Yaml file")
|
||||
exportparser.add_argument("export", nargs=2, action=self._store_type, help="Export [@subfolder]@folder /path/to/file.yml")
|
||||
exportparser.add_argument("export", nargs="+", action=self._store_type, help="Export /path/to/file.yml [@subfolder1][@folder1] [@subfolderN][@folderN]")
|
||||
exportparser.set_defaults(func=self._func_export)
|
||||
# IMPORTPARSER
|
||||
importparser = subparsers.add_parser("import", help="Import connection folder to config from Yaml file")
|
||||
|
Reference in New Issue
Block a user