Example #1
0
    def test_abilab(self):
        """Testing abilab"""
        abilab.abiopen_ext2class_table()
        assert abilab.abifile_subclass_from_filename("GSR.nc") is not None

        assert len(abilab.dir2abifiles(top=abidata.dirpath))
        assert len(abilab.dir2abifiles(top=abidata.dirpath, recurse=False)) == 1
        with self.assertRaises(ValueError):
            abilab.abifile_subclass_from_filename("foobar")

        assert abilab.isabifile("foo_GSR.nc")
        assert not abilab.isabifile("foobar")

        import pandas
        df = pandas.DataFrame({"a": [1, 2], "b": [3, 4]})
        abilab.print_dataframe(df, title="foo")

        d = abilab.software_stack()
        assert d

        assert not abilab.abicheck(verbose=1)

        abilab.abipy_logo1()
        abilab.abipy_logo2()
        abilab.abipy_logo3()

        assert not abilab.in_notebook()
        abilab.enable_notebook(with_seaborn=True)
        assert abilab.in_notebook()
        abilab.disable_notebook()
        assert not abilab.in_notebook()
Example #2
0
    def test_abilab(self):
        """Testing abilab"""
        abilab.abiopen_ext2class_table()
        assert abilab.abifile_subclass_from_filename("GSR.nc") is not None

        assert len(abilab.dir2abifiles(top=abidata.dirpath))
        assert len(abilab.dir2abifiles(top=abidata.dirpath, recurse=False)) == 1
        with self.assertRaises(ValueError):
            abilab.abifile_subclass_from_filename("foobar")

        assert abilab.isabifile("foo_GSR.nc")
        assert not abilab.isabifile("foobar")

        import pandas
        df = pandas.DataFrame({"a": [1, 2], "b": [3, 4]})
        abilab.print_dataframe(df, title="foo")

        d = abilab.software_stack()
        assert d

        assert not abilab.abicheck(verbose=1)

        abilab.abipy_logo1()
        abilab.abipy_logo2()
        abilab.abipy_logo3()

        assert not abilab.in_notebook()
        abilab.enable_notebook(with_seaborn=True)
        assert abilab.in_notebook()
        abilab.disable_notebook()
        assert not abilab.in_notebook()
Example #3
0
    def test_abilab(self):
        """Testing abilab"""
        abilab.abiopen_ext2class_table()
        assert abilab.abifile_subclass_from_filename("GSR.nc") is not None

        assert len(abilab.dir2abifiles(top=abidata.dirpath))
        assert len(abilab.dir2abifiles(top=abidata.dirpath,
                                       recurse=False)) == 1
        with self.assertRaises(ValueError):
            abilab.abifile_subclass_from_filename("foobar")

        assert abilab.isabifile("foo_GSR.nc")
        assert not abilab.isabifile("foobar")

        import pandas
        df = pandas.DataFrame({"a": [1, 2], "b": [3, 4]})
        abilab.print_dataframe(df, title="foo")

        d = abilab.software_stack()
        assert d

        filepath = self.get_tmpname(text=True, suffix=".json")
        data = {"foo": "bar"}
        abilab.mjson_write(data, filepath, indent=4)
        data = abilab.mjson_load(filepath)
        assert data["foo"] == "bar"

        same_data = abilab.mjson_loads(json.dumps(data))
        assert len(same_data) == len(data)
        assert same_data["foo"] == data["foo"]

        assert not abilab.abicheck(verbose=1)

        abilab.abipy_logo1()
        abilab.abipy_logo2()
        abilab.abipy_logo3()

        assert not abilab.in_notebook()
        abilab.enable_notebook(with_seaborn=True)
        assert abilab.in_notebook()
        abilab.disable_notebook()
        assert not abilab.in_notebook()

        assert abilab.install_config_files(workdir=self.mkdtemp()) == 0
Example #4
0
def ipw_listdir(top=".",
                recurse=True,
                widget_type="dropdown"):  # pragma: no cover
    """
    Return an ipython widget listing all the files located within the directory ``top``
    that can be inspected with :ref:`abiopen.py`. The user can select the file in the widget
    and print info on the corresponding file inside the notebook.

    Args:
        top: Initial directory.
        recurse: False to ignore directories within ``top``.
        widget_type: Specify the widget to create. Possible values in:
            ["tooglebuttons", "dropdown", "radiobuttons"]
    """
    from abipy import abilab
    from IPython.display import display, clear_output
    import ipywidgets as ipw

    # Select the widget class from widget_type
    d = dict(
        tooglebuttons=ipw.ToggleButtons,
        dropdown=ipw.Dropdown,
        radiobuttons=ipw.RadioButtons,
    )
    try:
        widget_class = d[widget_type]
    except KeyError:
        raise KeyError("Invalid `widget_type`: %s, Choose among: %s" %
                       (widget_type, str(list(d.keys()))))

    def on_value_change(change):
        """Callback"""
        clear_output()
        path = change["new"]
        #print(change)
        with abilab.abiopen(path) as abifile:
            print(abifile)
            #display(abifile)

    # Get dict: dirname --> list_of_files supported by abiopen.
    dir2files = abilab.dir2abifiles(top, recurse=recurse)
    children = []
    for dirname, files in dir2files.items():
        w = widget_class(options=files, description="%s:" % dirname)
        # TODO: Should register the callback of "selected" but I didn't find the event type!
        w.observe(on_value_change, names='value', type="change")
        children.append(w)
    box = ipw.VBox(children=children)

    return display(box)
Example #5
0
def ipw_listdir(top=".", recurse=True, widget_type="dropdown"):
    """
    Return an ipython widget listing all the files located within the directory `top`
    that can be inspected with `abiopen`. The user can select the file in the widget
    and print info on the corresponding file inside the notebook.

    Args:
        top: Initial directory.
        recurse: False to ignore directories within `top`.
        widget_type: Specify the widget to create. Possible values in:
            ["tooglebuttons", "dropdown", "radiobuttons"]
    """
    from abipy import abilab
    from IPython.display import display, clear_output
    import ipywidgets as ipw

    # Select the widget class from widget_type
    d = dict(
        tooglebuttons=ipw.ToggleButtons,
        dropdown=ipw.Dropdown,
        radiobuttons=ipw.RadioButtons,
    )
    try:
        widget_class = d[widget_type]
    except KeyError:
        raise KeyError("Invalid `widget_type`: %s, Choose among: %s" % (widget_type, str(list(d.keys()))))

    def on_value_change(change):
        """Callback"""
        clear_output()
        path = change["new"]
        #print(change)
        with abilab.abiopen(path) as abifile:
            print(abifile)
            #display(abifile)

    # Get dict: dirname --> list_of_files supported by abiopen.
    dir2files = abilab.dir2abifiles(top, recurse=recurse)
    children = []
    for dirname, files in dir2files.items():
        w = widget_class(options=files, description="%s:" % dirname)
        # TODO: Should register the callback of "selected" but I didn't find the event type!
        w.observe(on_value_change, names='value', type="change")
        children.append(w)
    box = ipw.VBox(children=children)

    return display(box)
Example #6
0
    def test_abilab(self):
        """Testing abilab"""
        abilab.abiopen_ext2class_table()
        assert abilab.abifile_subclass_from_filename("GSR.nc") is not None

        assert len(abilab.dir2abifiles(top=abidata.dirpath))
        with self.assertRaises(ValueError):
            abilab.abifile_subclass_from_filename("foobar")

        assert abilab.isabifile("foo_GSR.nc")
        assert not abilab.isabifile("foobar")

        d = abilab.software_stack()
        assert d

        assert not abilab.abicheck(verbose=1)

        abilab.abipy_logo1()
        abilab.abipy_logo2()
        abilab.abipy_logo3()