import invirt
-class InvirtException(Exception):
+class PathResolutionException(Exception):
pass
try:
component = int(component)
except ValueError:
- raise InvirtException(f'{progress}: node a list; integer path component required, '
+ raise PathResolutionException(f'{progress}: node is a list; integer path component required, '
'but got "{component}"')
try:
conf = conf[component]
except IndexError:
- raise InvirtException(f'{progress}: index {component} out of range')
+ raise PathResolutionException(f'{progress}: index {component} out of range')
elif isinstance(conf, dict):
try:
conf = conf[component]
except KeyError:
- raise InvirtException(f'{progress}: key "{component}" not found')
- except IndexError:
- raise InvirtException(f'{progress}: index {component} out of range')
+ raise PathResolutionException(f'{progress}: key "{component}" not found')
else:
- raise InvirtException(f'{progress}: node has no children (atomic datum)')
+ raise PathResolutionException(f'{progress}: node has no children (atomic datum)')
+
+ if args.ls:
+ if isinstance(conf, list):
+ for i in range(len(conf)):
+ print(i)
+ elif isinstance(conf, dict):
+ for k in conf:
+ print(k)
else:
- raise InvirtException(f'{".".join(components)}: node has no children (atomic datum)')
+ raise PathResolutionException(f'{".".join(components)}: node has no children (atomic datum)')
else:
if isinstance(conf, (dict, list)):
print(conf)
if __name__ == '__main__':
- exit(main(argv))
+ main()