diff --git a/xontrib/spec_mod/__init__.py b/xontrib/spec_mod/__init__.py index 0875814..5976a3e 100644 --- a/xontrib/spec_mod/__init__.py +++ b/xontrib/spec_mod/__init__.py @@ -2,17 +2,18 @@ Library of xonsh subprocess specification modifiers e.g. ``$(@json echo '{}')``. """ from xonsh.built_ins import XSH + try: - # xonsh == 0.17.0 - from xonsh.procs.specs import SpecAttrModifierAlias as _mod -except: # xonsh > 0.17.0 from xonsh.procs.specs import SpecAttrDecoratorAlias as _mod +except: + # xonsh == 0.17.0 + from xonsh.procs.specs import SpecAttrModifierAlias as _mod + from xontrib.spec_mod.to_dict import load_as_dict __all__ = () -_imp = type('ImpCl', (object,), {'__getattr__':lambda self, name: __import__(name)})() # Sugar for inline import # # Format output @@ -37,10 +38,10 @@ def _split_output(output_lines): # Return object # -XSH.aliases['@json'] = _mod({"output_format": lambda lines: _imp.json.loads('\n'.join(lines))}, "Return `json` output format.") +XSH.aliases['@json'] = _mod({"output_format": lambda lines: XSH.imp.json.loads('\n'.join(lines))}, "Return `json` output format.") XSH.aliases['@dict'] = _mod({"output_format": lambda lines: load_as_dict('\n'.join(lines))['dict']}, "Return `dict` output format.") -XSH.aliases['@path'] = _mod({"output_format": lambda lines: _imp.pathlib.Path(':'.join(lines))}, "Return `path` output format.") -XSH.aliases['@yaml'] = _mod({"output_format": lambda lines: _imp.yaml.safe_load('\n'.join(lines))}, "Return `yaml` output format.") +XSH.aliases['@path'] = _mod({"output_format": lambda lines: XSH.imp.pathlib.Path(':'.join(lines))}, "Return `path` output format.") +XSH.aliases['@yaml'] = _mod({"output_format": lambda lines: XSH.imp.yaml.safe_load('\n'.join(lines))}, "Return `yaml` output format.") # # Error handling