def make_xontrib(xontrib, package): """Makes a message and StoreNonEmpty node for a xontrib.""" name = xontrib.get('name', '<unknown-xontrib-name>') msg = '\n{BOLD_CYAN}' + name + '{NO_COLOR}\n' if 'url' in xontrib: msg += '{RED}url:{NO_COLOR} ' + xontrib['url'] + '\n' if 'package' in xontrib: msg += '{RED}package:{NO_COLOR} ' + xontrib['package'] + '\n' if 'url' in package: if 'url' in xontrib and package['url'] != xontrib['url']: msg += '{RED}package-url:{NO_COLOR} ' + package['url'] + '\n' if 'license' in package: msg += '{RED}license:{NO_COLOR} ' + package['license'] + '\n' msg += '{PURPLE}installed?{NO_COLOR} ' msg += ('no' if find_xontrib(name) is None else 'yes') + '\n' desc = xontrib.get('description', '') if not isinstance(desc, str): desc = ''.join(desc) msg += _wrap_paragraphs(desc, width=69) if msg.endswith('\n'): msg = msg[:-1] mnode = wiz.Message(message=msg) convert = lambda x: name if to_bool(x) else wiz.Unstorable pnode = wiz.StoreNonEmpty(XONTRIB_PROMPT, converter=convert, path=_xontrib_path) return mnode, pnode
def make_xontrib(xon_item: tp.Tuple[str, Xontrib]): """Makes a message and StoreNonEmpty node for a xontrib.""" name, xontrib = xon_item name = name or "<unknown-xontrib-name>" msg = "\n{BOLD_CYAN}" + name + "{RESET}\n" if xontrib.url: msg += "{RED}url:{RESET} " + xontrib.url + "\n" if xontrib.package: pkg = xontrib.package msg += "{RED}package:{RESET} " + pkg.name + "\n" if pkg.url: if xontrib.url and pkg.url != xontrib.url: msg += "{RED}package-url:{RESET} " + pkg.url + "\n" if pkg.license: msg += "{RED}license:{RESET} " + pkg.license + "\n" msg += "{PURPLE}installed?{RESET} " msg += ("no" if find_xontrib(name) is None else "yes") + "\n" msg += _wrap_paragraphs(xontrib.description, width=69) if msg.endswith("\n"): msg = msg[:-1] mnode = wiz.Message(message=msg) convert = lambda x: name if to_bool(x) else wiz.Unstorable pnode = wiz.StoreNonEmpty(XONTRIB_PROMPT, converter=convert, path=_xontrib_path) return mnode, pnode
def make_xontrib(xontrib, package): """Makes a message and StoreNonEmpty node for a xontrib.""" name = xontrib.get("name", "<unknown-xontrib-name>") msg = "\n{BOLD_CYAN}" + name + "{NO_COLOR}\n" if "url" in xontrib: msg += "{RED}url:{NO_COLOR} " + xontrib["url"] + "\n" if "package" in xontrib: msg += "{RED}package:{NO_COLOR} " + xontrib["package"] + "\n" if "url" in package: if "url" in xontrib and package["url"] != xontrib["url"]: msg += "{RED}package-url:{NO_COLOR} " + package["url"] + "\n" if "license" in package: msg += "{RED}license:{NO_COLOR} " + package["license"] + "\n" msg += "{PURPLE}installed?{NO_COLOR} " msg += ("no" if find_xontrib(name) is None else "yes") + "\n" desc = xontrib.get("description", "") if not isinstance(desc, str): desc = "".join(desc) msg += _wrap_paragraphs(desc, width=69) if msg.endswith("\n"): msg = msg[:-1] mnode = wiz.Message(message=msg) convert = lambda x: name if to_bool(x) else wiz.Unstorable pnode = wiz.StoreNonEmpty(XONTRIB_PROMPT, converter=convert, path=_xontrib_path) return mnode, pnode
def make_xontrib(xontrib, package): """Makes a message and StoreNonEmpty node for a xontrib.""" name = xontrib.get("name", "<unknown-xontrib-name>") msg = "\n{BOLD_CYAN}" + name + "{RESET}\n" if "url" in xontrib: msg += "{RED}url:{RESET} " + xontrib["url"] + "\n" if "package" in xontrib: msg += "{RED}package:{RESET} " + xontrib["package"] + "\n" if "url" in package: if "url" in xontrib and package["url"] != xontrib["url"]: msg += "{RED}package-url:{RESET} " + package["url"] + "\n" if "license" in package: msg += "{RED}license:{RESET} " + package["license"] + "\n" msg += "{PURPLE}installed?{RESET} " msg += ("no" if find_xontrib(name) is None else "yes") + "\n" desc = xontrib.get("description", "") if not isinstance(desc, str): desc = "".join(desc) msg += _wrap_paragraphs(desc, width=69) if msg.endswith("\n"): msg = msg[:-1] mnode = wiz.Message(message=msg) convert = lambda x: name if to_bool(x) else wiz.Unstorable pnode = wiz.StoreNonEmpty(XONTRIB_PROMPT, converter=convert, path=_xontrib_path) return mnode, pnode
def _list_installed_xontribs(): meta = xmt.get_xontribs() installed = [] for name in meta: spec = xx.find_xontrib(name) if spec is not None: installed.append(spec.name.rsplit(".")[-1]) return installed
def _list_installed_xontribs(): meta = xx.xontrib_metadata() installed = [] for md in meta['xontribs']: name = md['name'] spec = xx.find_xontrib(name) if spec is not None: installed.append(spec.name.rsplit('.')[-1]) return installed
def _list_installed_xontribs(): meta = xx.xontrib_metadata() installed = [] for md in meta["xontribs"]: name = md["name"] spec = xx.find_xontrib(name) if spec is not None: installed.append(spec.name.rsplit(".")[-1]) return installed
def xontrib_card(self, name, data): from xonsh.xontribs import find_xontrib title = t.a(href=data["url"])[name] if find_xontrib(name): act_label = "Add" if self.is_loaded(name): act_label = "Remove" action = t.inline_form(method="post")[ t.btn_primary("ml-2", "p-1", type="submit", name=name)[ act_label, ], ] else: title = title("stretched-link") # add class action = "" return t.card()[ t.card_header()[title, action], t.card_body()[ self.get_display(data["display"]), ], ]
def jedi_xontrib(monkeypatch, source_path, jedi_mock, completer_mock): monkeypatch.syspath_prepend(source_path) spec = find_xontrib("jedi") yield importlib.import_module(spec.name) del sys.modules[spec.name]
def abbrevs_xontrib(monkeypatch, source_path): monkeypatch.syspath_prepend(source_path) spec = find_xontrib("abbrevs") yield importlib.import_module(spec.name) del sys.modules[spec.name]