Metadata-Version: 2.1
Name: becquerel
Version: 0.2.6
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 :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=2.6
Description-Content-Type: text/markdown
Requires-Dist: beautifulsoup4
Requires-Dist: future
Requires-Dist: html5lib
Requires-Dist: lxml
Requires-Dist: matplotlib
Requires-Dist: numba (>=0.47.0)
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)
Requires-Dist: llvmlite (==0.31.0) ; python_version < "3"

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

```
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 (e.g., gaussian lines with different background models)

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 and encourage
contributors to use [`pylint`][3], [`pycodestyle`][4], [`pydocstyle`][5] and
[`yapf`][6] for proper code formatting.

[1]: https://pandas.pydata.org/pandas-docs/stable/install.html#dependencies
[2]: https://docs.pytest.org
[3]: https://pylint.readthedocs.io
[4]: http://pycodestyle.pycqa.org
[5]: http://www.pydocstyle.org
[6]: https://github.com/google/yapf


## 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

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

(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.)

### Running the tests

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

```
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:

```
pytest -m ""
```

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

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

### Code Style Guide

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

### Linter

* Use `flake8` in your IDE
* Use `pylint` from command line (as in style guide)

### Checklist for code contributions:
  - [ ] Branch off of `develop` and name the branch `feature-XX` or `issue-XX`
  - [ ] Develop the feature or fix
  - [ ] Write tests to cover all use cases
  - [ ] Ensure all tests pass (`python setup.py test`)
  - [ ] Ensure test coverage is >95%
  - [ ] Ensure there are no linter issues:
    - `flake8 becquerel tests`
    - `pydocstyle becquerel tests`
    - `pylint becquerel tests`
  - [ ] Spellcheck your code and docstrings
  - [ ] Check style is [consistent with Google Python style guide](https://github.com/google/styleguide/blob/gh-pages/pyguide.md)
  - [ ] Push branch to GitHub and create a pull request

## Copyright Notice

Becquerel v. 0.2.6, Copyright (c) 2017, The Regents of the University of
California (UC), through Lawrence Berkeley National Laboratory, and the UC
Berkeley campus (subject to receipt of any required approvals from the U.S.
Dept. of Energy). All rights reserved. If you have questions about your rights
to use or distribute this software, please contact Berkeley Lab's Innovation &
Partnerships 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 other to do so.


