Metadata-Version: 2.1
Name: becquerel
Version: 0.5.0
Summary: Tools for radiation spectral analysis.
Home-page: https://github.com/lbl-anp/becquerel
Maintainer: The Becquerel Development Team
Maintainer-email: becquerel-dev@lbl.gov
License: Other/Proprietary License (see LICENSE.txt)
Download-URL: https://github.com/lbl-anp/becquerel/releases
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: asteval
Requires-Dist: beautifulsoup4
Requires-Dist: black (>=22.1.0)
Requires-Dist: future
Requires-Dist: h5py
Requires-Dist: html5lib
Requires-Dist: iminuit
Requires-Dist: llvmlite
Requires-Dist: lmfit
Requires-Dist: lxml
Requires-Dist: matplotlib
Requires-Dist: numba (>=0.47.0)
Requires-Dist: numdifftools
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: python-dateutil
Requires-Dist: requests
Requires-Dist: scipy
Requires-Dist: setuptools
Requires-Dist: uncertainties (>=3.0.3)

[![tests](https://github.com/lbl-anp/becquerel/actions/workflows/tests.yaml/badge.svg)](https://github.com/lbl-anp/becquerel/actions/workflows/tests.yaml)

[![Coverage Status](https://coveralls.io/repos/github/lbl-anp/becquerel/badge.svg?branch=main)](https://coveralls.io/github/lbl-anp/becquerel?branch=main)

[![PyPI version](https://img.shields.io/pypi/v/becquerel.svg)](https://pypi.org/project/becquerel)

[![PyPI pyversions](https://img.shields.io/pypi/pyversions/becquerel.svg)](https://pypi.org/project/becquerel)

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)



Becquerel is a Python package for analyzing nuclear spectroscopic

measurements. The core functionalities are reading and writing different

spectrum file types, fitting spectral features, performing detector

calibrations, and interpreting measurement results. It includes tools for

plotting radiation spectra as well as convenient access to tabulated nuclear

data, and it will include fits of different spectral features. It relies

heavily on the standard scientific Python stack of numpy, scipy, matplotlib,

and pandas. It is intended to be general-purpose enough that it can be useful

to anyone from an undergraduate taking a laboratory course to the advanced

researcher.



## Installation



```bash

pip install becquerel

```



## Features in development (contributions welcome!)



- Reading additional `Spectrum` file types (N42, CHN, CSV)

- Writing `Spectrum` objects to various standard formats

- Fitting spectral features with Poisson likelihood



If you are interested in contributing or are want to install the package from

source, please see the instructions in [`CONTRIBUTING.md`](./CONTRIBUTING.md).



## Reporting issues



When reporting issues with `becquerel`, please provide a minimum working example

to help identify the problem and tag the issue as a `bug`.



## Feature requests



For a feature request, please create an issue and label it as a `new feature`.



## Dependencies



External dependencies are listed in `requirements.txt` and will be installed

automatically with the standard `pip` installation. They can also be installed

manually with the package manager of your choice (`pip`, `conda`, etc).

The dependencies `beautifulsoup4`, `lxml` and `html5lib` are necessary for

[`pandas`][1].



Developers require additional requirements which are listed in

`requirements-dev.txt`. We use [`pytest`][2] for unit testing, [`black`][3] for

code formatting and are converting to [`numpydoc`][4].



[1]: https://pandas.pydata.org/pandas-docs/stable/install.html#dependencies

[2]: https://docs.pytest.org/en/latest/

[3]: https://black.readthedocs.io/en/stable/

[4]: https://numpydoc.readthedocs.io/en/latest/format.html




# Contribution guidelines

Contributions to `becquerel` are welcome and encouraged, whether it is
reporting bugs, requesting features, or contributing code.
Please follow these guidelines when contributing to this project.

## Developer Instructions

```bash
pip install -r requirements.txt
pip install -r requirements-dev.txt
python setup.py develop

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

(It is more convenient to use `develop` so that the code is soft-linked
from the installation directory, and the installed package will always use
the current version of code.)

We use [`pre-commit`](https://pre-commit.com/) to automatically run black.

### Running the tests

(Requires `requirements-dev.txt` to be installed)
To run the tests using `pytest`, from the root directory of the repo:

```bash
pytest
```

(`python setup.py test` is still supported also.)
By default, a code coverage report is printed to the terminal.
Tests marked `webtest` or `plottest` are by default skipped for the sake of
speed. To run all tests, clear the pre-configured markers option:

```bash
pytest -m ""
```

To produce an HTML code coverage report in directory `htmlcov`
with line-by-line highlighting:

```bash
pytest --cov-report html:htmlcov
```

## Code Style Guide

Use [google standards](https://google.github.io/styleguide/pyguide.html)

## Linter

The code style/formatting will be checked with
[`black`](https://black.readthedocs.io/en/stable/) and
[`flake8`](https://flake8.pycqa.org/en/latest/) in the CI

## Checklist for code contributions

- [ ] Branch off of `main`
- [ ] Develop the feature or fix
- [ ] Write tests to cover all use cases
- [ ] Ensure all tests pass (`pytest`)
- [ ] Ensure test coverage is >95%
- [ ] Autoformat (`black .`)
- [ ] Spellcheck your code and docstrings
- [ ] Push branch to GitHub and create a pull request to `main`

## Copyright Notice




becquerel (bq) Copyright (c) 2017-2021, The Regents of the University of

California, through Lawrence Berkeley National Laboratory (subject to receipt

of any required approvals from the U.S. Dept. of Energy) and University of

California, Berkeley. All rights reserved.



If you have questions about your rights to use or distribute this software,

please contact Berkeley Lab's Intellectual Property Office at

IPO@lbl.gov.



NOTICE. This Software was developed under funding from the U.S. Department

of Energy and the U.S. Government consequently retains certain rights. As

such, the U.S. Government has been granted for itself and others acting on

its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the

Software to reproduce, distribute copies to the public, prepare derivative

works, and perform publicly and display publicly, and to permit others to do so.


