Ejemplo n.º 1
0
def test_xontrib_reload(tmpmod, xession):
    with tmpmod.mkdir("xontrib").join("script.py").open("w") as x:
        x.write(
            """
hello = 'world'

def _unload_xontrib_(xsh): del xsh.ctx['hello']
"""
        )

    xontribs_load(["script"])
    assert "script" in xontribs_loaded()
    assert xession.ctx["hello"] == "world"

    with tmpmod.join("xontrib").join("script.py").open("w") as x:
        x.write(
            """
hello = 'world1'

def _unload_xontrib_(xsh): del xsh.ctx['hello']
"""
        )
    xontribs_reload(["script"])
    assert "script" in xontribs_loaded()
    assert xession.ctx["hello"] == "world1"
Ejemplo n.º 2
0
def _info(to_json=False, ) -> str:
    """Displays configuration information

    Parameters
    ----------
    to_json : -j, --json
        reports results as json
    """
    env = XSH.env
    data: tp.List[tp.Any] = [("xonsh", XONSH_VERSION)]
    hash_, date_ = githash()
    if hash_:
        data.append(("Git SHA", hash_))
        data.append(("Commit Date", date_))
    data.extend([
        ("Python", "{}.{}.{}".format(*PYTHON_VERSION_INFO)),
        ("PLY", ply.__version__),
        ("have readline", is_readline_available()),
        ("prompt toolkit", ptk_version() or None),
        ("shell type", env.get("SHELL_TYPE")),
        ("history backend", env.get("XONSH_HISTORY_BACKEND")),
        ("pygments", pygments_version()),
        ("on posix", bool(ON_POSIX)),
        ("on linux", bool(ON_LINUX)),
    ])
    if ON_LINUX:
        data.append(("distro", linux_distro()))
        data.append(("on wsl", bool(ON_WSL)))
        if ON_WSL:
            data.append(("wsl version", 1 if ON_WSL1 else 2))
    data.extend([
        ("on darwin", bool(ON_DARWIN)),
        ("on windows", bool(ON_WINDOWS)),
        ("on cygwin", bool(ON_CYGWIN)),
        ("on msys2", bool(ON_MSYS)),
        ("is superuser", is_superuser()),
        ("default encoding", DEFAULT_ENCODING),
        ("xonsh encoding", env.get("XONSH_ENCODING")),
        ("encoding errors", env.get("XONSH_ENCODING_ERRORS")),
    ])
    jup_ksm = jup_kernel = None
    try:
        from jupyter_client.kernelspec import KernelSpecManager

        jup_ksm = KernelSpecManager()
        jup_kernel = jup_ksm.find_kernel_specs().get(XONSH_JUPYTER_KERNEL)
    except Exception:
        pass
    data.extend([("on jupyter", jup_ksm is not None),
                 ("jupyter kernel", jup_kernel)])

    data.extend([("xontrib", xontribs_loaded())])
    data.extend([("RC file", XSH.rc_files)])

    formatter = _xonfig_format_json if to_json else _xonfig_format_human
    s = formatter(data)
    return s
Ejemplo n.º 3
0
def test_xontrib_load_dashed(tmpmod):
    """
    Test that .xsh xontribs are loadable
    """
    with tmpmod.mkdir("xontrib").join("scri-pt.xsh").open("w") as x:
        x.write("""
hello = 'world'
""")

    xontribs_load(["scri-pt"])
    assert 'scri-pt' in xontribs_loaded()
Ejemplo n.º 4
0
def _info(ns):
    env = builtins.__xonsh__.env
    data = [("xonsh", XONSH_VERSION)]
    hash_, date_ = githash()
    if hash_:
        data.append(("Git SHA", hash_))
        data.append(("Commit Date", date_))
    data.extend(
        [
            ("Python", "{}.{}.{}".format(*PYTHON_VERSION_INFO)),
            ("PLY", ply.__version__),
            ("have readline", is_readline_available()),
            ("prompt toolkit", ptk_version() or None),
            ("shell type", env.get("SHELL_TYPE")),
            ("pygments", pygments_version()),
            ("on posix", bool(ON_POSIX)),
            ("on linux", bool(ON_LINUX)),
        ]
    )
    if ON_LINUX:
        data.append(("distro", linux_distro()))
    data.extend(
        [
            ("on darwin", bool(ON_DARWIN)),
            ("on windows", bool(ON_WINDOWS)),
            ("on cygwin", bool(ON_CYGWIN)),
            ("on msys2", bool(ON_MSYS)),
            ("is superuser", is_superuser()),
            ("default encoding", DEFAULT_ENCODING),
            ("xonsh encoding", env.get("XONSH_ENCODING")),
            ("encoding errors", env.get("XONSH_ENCODING_ERRORS")),
        ]
    )
    jup_ksm = jup_kernel = None
    try:
        from jupyter_client.kernelspec import KernelSpecManager

        jup_ksm = KernelSpecManager()
        jup_kernel = jup_ksm.find_kernel_specs().get(XONSH_JUPYTER_KERNEL)
    except Exception:
        pass
    data.extend([("on jupyter", jup_ksm is not None), ("jupyter kernel", jup_kernel)])

    data.extend([("xontrib", xontribs_loaded())])

    formatter = _xonfig_format_json if ns.json else _xonfig_format_human
    s = formatter(data)
    return s