def make_xontribs(): md = xontrib_metadata() names = sorted(d['name'] for d in md['xontribs'] if 'name' in d) s = ('.. list-table::\n' ' :header-rows: 0\n\n') table = [] ncol = 3 row = ' {0} - :ref:`{1} <{2}>`' for i, name in enumerate(names): star = '*' if i % ncol == 0 else ' ' table.append(row.format(star, name, name.lower())) table.extend([' -'] * ((ncol - len(names) % ncol) % ncol)) s += '\n'.join(table) + '\n\n' s += ('Information\n' '-----------\n\n') sec = ('.. _{low}:\n\n' '{title}\n' '{under}\n' ':Website: {url}\n' ':Package: {pkg}\n\n' '{desc}\n\n' '{inst}' '-------\n\n') for name in names: for d in md['xontribs']: if d.get('name', None) == name: break title = name under = '.' * len(title) desc = d.get('description', '') if not isinstance(desc, str): desc = ''.join(desc) pkgname = d.get('package', None) if pkgname is None: pkg = 'unknown' inst = '' else: pd = md['packages'].get(pkgname, {}) pkg = pkgname if 'url' in pd: pkg = '`{0} <{1}>`_'.format(pkg, pd['url']) if 'license' in pd: pkg = pkg + ', ' + pd['license'] inst = '' installd = pd.get('install', {}) if len(installd) > 0: inst = ('**Installation:**\n\n' '.. code-block:: xonsh\n\n') for k, v in sorted(pd.get('install', {}).items()): cmd = "\n ".join(v.split('\n')) inst += (' # install with {k}\n' ' {cmd}\n\n').format(k=k, cmd=cmd) s += sec.format(low=name.lower(), title=title, under=under, url=d.get('url', 'unknown'), desc=desc, pkg=pkg, inst=inst) s = s[:-9] fname = os.path.join(os.path.dirname(__file__), 'xontribsbody') with open(fname, 'w') as f: f.write(s)
def make_xontribs(): md = xontrib_metadata() names = sorted(d['name'] for d in md['xontribs'] if 'name' in d) s = ('.. list-table::\n' ' :header-rows: 0\n\n') table = [] ncol = 5 row = ' {0} - :ref:`{1} <{2}>`' for i, name in enumerate(names): star = '*' if i%ncol == 0 else ' ' table.append(row.format(star, name, name.lower())) table.extend([' -']*((ncol - len(names)%ncol)%ncol)) s += '\n'.join(table) + '\n\n' s += ('Information\n' '-----------\n\n') sec = ('.. _{low}:\n\n' '{title}\n' '{under}\n' ':Website: {url}\n' ':Package: {pkg}\n\n' '{desc}\n\n' '{inst}' '-------\n\n') for name in names: for d in md['xontribs']: if d.get('name', None) == name: break title = name under = '.' * len(title) desc = d.get('description', '') if not isinstance(desc, str): desc = ''.join(desc) pkgname = d.get('package', None) if pkgname is None: pkg = 'unknown' inst = '' else: pd = md['packages'].get(pkgname, {}) pkg = pkgname if 'url' in pd: pkg = '`{0} website <{1}>`_'.format(pkg, pd['url']) if 'license' in pd: pkg = pkg + ', ' + pd['license'] inst = '' installd = pd.get('install', {}) if len(installd) > 0: inst = ('**Installation:**\n\n' '.. code-block:: xonsh\n\n') for k, v in sorted(pd.get('install', {}).items()): cmd = "\n ".join(v.split('\n')) inst += (' # install with {k}\n' ' {cmd}\n\n').format(k=k, cmd=cmd) s += sec.format(low=name.lower(), title=title, under=under, url=d.get('url', 'unknown'), desc=desc, pkg=pkg, inst=inst) s = s[:-9] fname = os.path.join(os.path.dirname(__file__), 'xontribsbody') with open(fname, 'w') as f: f.write(s)
def make_xontribs_wiz(): """Makes a xontrib wizard.""" md = xontrib_metadata() pkgs = [ md['packages'].get(d.get('package', None), {}) for d in md['xontribs'] ] w = _make_flat_wiz(make_xontrib, md['xontribs'], pkgs) return w
def make_xontribs_wiz(): """Makes a xontrib wizard.""" md = xontrib_metadata() pkgs = [ md["packages"].get(d.get("package", None), {}) for d in md["xontribs"] ] w = _make_flat_wiz(make_xontrib, md["xontribs"], pkgs) return w
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 make_xontribs(): md = xontrib_metadata() names = sorted(d["name"] for d in md["xontribs"] if "name" in d) s = ".. list-table::\n" " :header-rows: 0\n\n" table = [] ncol = 5 row = " {0} - :ref:`{1} <{2}>`" for i, name in enumerate(names): star = "*" if i % ncol == 0 else " " table.append(row.format(star, name, name.lower())) table.extend([" -"] * ((ncol - len(names) % ncol) % ncol)) s += "\n".join(table) + "\n\n" s += "Information\n" "-----------\n\n" sec = (".. _{low}:\n\n" "{title}\n" "{under}\n" ":Website: {url}\n" ":Package: {pkg}\n\n" "{desc}\n\n" "{inst}\n\n" "{usage}" "-------\n\n") for name in names: for d in md["xontribs"]: if d.get("name", None) == name: break title = name under = "." * len(title) desc = d.get("description", "") if not isinstance(desc, str): desc = "".join(desc) pkgname = d.get("package", None) if pkgname is None: pkg = "unknown" inst = "" usage = "" else: pd = md["packages"].get(pkgname, {}) pkg = pkgname if "url" in pd: pkg = "`{0} website <{1}>`_".format(pkg, pd["url"]) if "license" in pd: pkg = pkg + ", " + pd["license"] inst = "" installd = pd.get("install", {}) if pkgname == "xonsh": inst = "This xontrib is preinstalled with xonsh.\n\n" elif len(installd) > 0: inst = "**Installation:**\n\n" ".. code-block:: xonsh\n\n" for k, v in sorted(pd.get("install", {}).items()): cmd = "\n ".join(v.split("\n")) inst += (" # install with {k}\n" " {cmd}").format(k=k, cmd=cmd) usage = ("**Usage:**\n\n" "Run the following command to enable (or add " "it to your :doc:`.xonshrc </xonshrc>` file to enable " "on startup.)\n\n" ".. code-block:: xonsh\n\n") usage += " xontrib load {}\n\n".format(name) s += sec.format( low=name.lower(), title=title, under=under, url=d.get("url", "unknown"), desc=desc, pkg=pkg, inst=inst, usage=usage, ) s = s[:-9] fname = os.path.join(os.path.dirname(__file__), "xontribsbody") with open(fname, "w") as f: f.write(s)
def test_load_xontrib_metadata(): # Simply tests that the xontribs JSON files isn't malformed. xontrib_metadata()
def make_xontribs_wiz(): """Makes a xontrib wizard.""" md = xontrib_metadata() pkgs = [md['packages'].get(d.get('package', None), {}) for d in md['xontribs']] w = _make_flat_wiz(make_xontrib, md['xontribs'], pkgs) return w
def make_xontribs_wiz(): """Makes a xontrib wizard.""" md = xontrib_metadata() pkgs = [md["packages"].get(d.get("package", None), {}) for d in md["xontribs"]] w = _make_flat_wiz(make_xontrib, md["xontribs"], pkgs) return w