Metadata-Version: 2.3
Name: alc-aiidalab-widgets
Version: 0.0.1
Summary: Commonly used components for ALC managed AiiDAlab plugins
Keywords: aiida,workflows,ALC
Author: Dr. Benjamin T. Speake
Author-email: Dr. Benjamin T. Speake <benjamin.speake@stfc.ac.uk>
License: BSD 3-Clause License
         
         Copyright (c) 2026, UKRI Science and Technology Facilities Council
         
         Redistribution and use in source and binary forms, with or without
         modification, are permitted provided that the following conditions are met:
         
         1. Redistributions of source code must retain the above copyright notice, this
            list of conditions and the following disclaimer.
         
         2. Redistributions in binary form must reproduce the above copyright notice,
            this list of conditions and the following disclaimer in the documentation
            and/or other materials provided with the distribution.
         
         3. Neither the name of the copyright holder nor the names of its
            contributors may be used to endorse or promote products derived from
            this software without specific prior written permission.
         
         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
         AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
         IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
         DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
         FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
         DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
         SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
         CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
         OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Framework :: AiiDA
Classifier: Development Status :: 1 - Planning
Requires-Dist: aiidalab-widgets-base
Requires-Dist: ipywidgets
Requires-Dist: traitlets
Requires-Dist: aiida-core>=2.6
Requires-Dist: weas-widget
Requires-Dist: pytest>=8.0 ; extra == 'dev'
Requires-Dist: pytest-cov>=6.0 ; extra == 'dev'
Requires-Dist: ruff>=0.11.0 ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: sphinx>=8.0.2 ; extra == 'docs'
Requires-Python: >=3.10
Project-URL: Source, https://github.com/stfc/alc-aiidalab-widgets
Provides-Extra: dev
Provides-Extra: docs
Description-Content-Type: text/markdown

# alc-aiidalab-widgets

[![Release](https://img.shields.io/github/v/release/stfc/alc-aiidalab-widgets)](https://github.com/stfc/alc-aiidalab-widgets/releases)
[![PyPI](https://img.shields.io/pypi/v/alc-aiidalab-widgets)](https://pypi.org/project/alc-aiidalab-widgets/)

[![Pipeline Status](https://github.com/stfc/alc-aiidalab-widgets/actions/workflows/testing.yml/badge.svg?branch=main)](https://github.com/stfc/alc-aiidalab-widgets/actions)
[![Docs status](https://github.com/stfc/alc-aiidalab-widgets/actions/workflows/docs.yml/badge.svg?branch=main)](https://stfc.github.io/alc-aiidalab-widgets/)
<!-- [![Coverage Status]( https://coveralls.io/repos/github/stfc/alc-aiidalab-widgets/badge.svg?branch=main)](https://coveralls.io/github/stfc/alc-aiidalab-widgets?branch=main) -->

<!-- [![DOI](https://zenodo.org/badge/1094975386.svg)](https://doi.org/10.5281/zenodo.19188755) -->

This is a collection of commonly used widgets used across AiiDAlab plugins developed by
the Ada Lovelace Centre (STFC). It provides re-usable components and consistent styling
which can be deployed to any new or developing AiiDAlab plugin. It can be installed via
pip,

``` sh
pip install alc-aiidalab-widgets
```

and then imported within any python project as,

``` python
import alc_aiidalab_widgets
```

## For Developers

### Style Checking

This package uses pre-commit hooks to check for style consistency, to use these the ``pre-commit`` tool is required.
This can be installed alongside the base package by running,

``` sh
pip install .[dev]
```

or separately via,

``` sh
pip install pre-commit 
```

Once installed run,

``` sh
pre-commit install 
```

in the base repository to enable the pre-commit hooks.
This will now run style and formatting checks on every commit.

### Testing

This package uses [pytest](https://docs.pytest.org/en/stable/)
to run all unit tests which is included in the ```[dev]``` optional
package dependencies. Once installed it can be run from the project root directory.
The CI workflows are configured to ensure all tests pass
before a pull request can be accepted into the main repository.
It is important that any new additions to the code base are accompanied
by appropriate testing, maintaining a high code coverage. The coverage
can be checked via,

``` sh
pytest --cov=aiidalab_alc 
```

### Documentation

The documentation, including a User Guide, Developer Guide and an API reference,
is built using [sphinx](https://www.sphinx-doc.org/). The source
for which is contained in the ```docs/``` directory. At present
only the html generator has been fully tested. All required packages can
be installed alongside the core package via,

``` sh
pip install .[docs]
```

and then the documentation can be built using sphinx-build,

``` sh
sphinx-build -b html docs/src/ docs/build/html 
```

from the root directory.

## License

[BSD 3-Clause License](LICENSE)

## Funding

Contributors to this project were funded by

<div align="center">
    <a href="https://adalovelacecentre.ac.uk/">
        <img src="images/alc.svg" alt="ALC Logo" style="width: 30%">
    </a>
</div>
