Skip to content

Commit

Permalink
Merge pull request #112 from JeffersonLab/release-v2.0.0
Browse files Browse the repository at this point in the history
Merges in release v2.0.0 into master
  • Loading branch information
markjonestx committed Jun 6, 2017
2 parents 0e90da4 + a9cc7ab commit 3c2e2e4
Show file tree
Hide file tree
Showing 216 changed files with 15,820 additions and 8,612 deletions.
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ coverage.xml
*.log

# Sphinx documentation
doc/_build/
doc/build/
docs/_build/
docs/build/
/docs/output/

# PyBuilder
target/
Expand All @@ -79,3 +80,6 @@ virt3/

# PyCharm
.idea/

# MyPy
/.mypy_cache/
25 changes: 20 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,31 @@ language: python
cache: pip
python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
- "3.6"
- "3.6-dev"
- "3.7-dev"
- "nightly"
matrix:
allow_failures:
- python: "3.6-dev"
- python: "3.7-dev"
- python: "nightly"
addons:
apt:
packages:
- "build-essential"
- "gfortran"
- "libatlas-base-dev"
before_install:
- python --version
- uname -a
- ls -a
- "pip install --upgrade pip setuptools wheel"
- "pip install --upgrade numpy scipy"
- "pip install --upgrade iminuit nestle ruamel.yaml tabulate appdirs"
- "pip install --upgrade fuzzywuzzy python-Levenshtein"
- "pip install coveralls --upgrade"
- "pip install coverage --upgrade"
- "pip install pytest --upgrade"
Expand All @@ -24,9 +42,6 @@ after_success:
- coveralls
- head .coverage
notifications:
emails: false
slack:
rooms:
- pypwa:qPFpdrleMXOkj6mE18RctZQR
emails:
on_success: change
on_failure: change
25 changes: 25 additions & 0 deletions CHANGELOG.mg
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Changelog
All changes important to the user will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/)

## [2.0.0] - 2017-6-5
### Added
- Plugin Subsystem
- Configurator Subsystem
- Data Plugin
- SV Plugin
- EVIL Plugin
- GAMP Plugin
- Data Caching
- Processing Plugin
- iMinuit plugin
- Nestle likelihood
- PyFit plugin
- Log Likelihood Plugin
- Chi-Squared Likelihood
- PySim plugin
- Packaging

[2.0.0]: https://github.com/JeffersonLab/PyPWA/compare/v1.1...v2.0.0
31 changes: 0 additions & 31 deletions CHANGES

This file was deleted.

15 changes: 15 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Contributors to PyPWA (in Chronological Order)

## PyPWA Staff:
- Carlos Salgado <https://github.com/cwsalgado>
- Will Phelps <https://github.com/wphelps>
- Brandon DeMello <https://github.com/bdell>
- Stephanie Bramlett <https://github.com/skbramlett>
- Josh Pond <https://github.com/JTPond>
- Mark Jones <markjonestx@live.com> <https://github.com/Markjonestx>
- LaRay Hare <https://github.com/lmhare>

High School Interns:

- Ryan Wright <https://github.com/painballking>
- Ran Amplitude benchmarks on the XeonPhi
100 changes: 74 additions & 26 deletions PyPWA/__init__.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,86 @@
# PyPWA, a scientific analysis toolkit.
# Copyright (C) 2016 JLab
# coding=utf-8
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# PyPWA, a scientific analysis toolkit.
# Copyright (C) 2016 JLab
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

"""
PyPWA is an attempt to have a set multiprocessing tools to easy the
Partial Wave Analysis process.
============
General Docs
============
PyPWA is statistical analysis toolkit that was built with Partial Wave
Analysis in mind, however you should be able to use the tools included for
anything statistical analysis.
Currently there are 4 different applications defined inside this package:
- PyFit - Fitting with any likelihood.
- PyLikelihood - Fitting with the log-likelihood.
- PyChiSquared - Fitting with the ChiSquared likelihood.
- PySimulate - Simulation of an amplitude.
- PyIntensities - Just the calculation half of PySimulate.
Current there is a multiprocessing tool for both the Acceptance Rejection
Model, and the Maximum-Likelihood Estimation for fitting.
- PyRejection - Just the rejection-method half of PySimulate.
For information about how to use each of the programs, look in the docs folder
included with the source code, or check the user docs at ReadTheDocs.io.
The tools work with Kinematic Variables defined in standard text files,
Comma Separated Variables, and Tab Separated Variables.
Developer Docs
==============
To attempt to achieve a flexible fitter that could be quickly adapted to
changing needs, we actually built the entire package around a generalized
plugin loader. The "main" objects ore defined as plugins, along with each
task that needed to be solved. This means that fitting, data loading,
the processing module, simulation, optimizers, etc are all defined as
plugins internally.
Package purposes
----------------
- builtin_plugins - This is where each internal plugin is defined,
the optimizers, the processing module, and the builtin parser and reader are
all defined here.
- core - The true main of the program, this is where all the interfaces are
defined, the plugin loaders, plugin storage modules, and the main execution
logic that takes a simple YML file and translates it into executing code.
- entries - The various entry points for each program contained in this
package are here, each function defined here is a starting point for
setuptools.
- shell - This is where PySimulate and PyFit are defined.
For more information on how each module works, view their documentation
respectively.
"""

__author__ = ["Mark Jones"]
__author__ = "PyPWA Team and Contributors"
__credits__ = ["Mark Jones"]
__license__ = "GPLv3"
__email__ = "maj@jlab.org"
__status__ = "development"
__maintainer__ = ["Mark Jones"]
__version__ = "2.0.0-rc5"
__version__ = "2.0.0"


EMAIL = "pypwa@jlab.org"
LICENSE = "GPLv3"
STATUS = "development"
MAINTAINER = "Mark Jones"
AUTHOR = __author__
VERSION = __version__
STATUS = __status__
LICENSE = __license__
51 changes: 31 additions & 20 deletions PyPWA/builtin_plugins/__init__.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,42 @@
# PyPWA, a scientific analysis toolkit.
# Copyright (C) 2016 JLab
# coding=utf-8
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# PyPWA, a scientific analysis toolkit.
# Copyright (C) 2016 JLab
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

"""
This module holds the built in Plugins for the program along with various
needed libraries.
All the plugins that come packaged with PyPWA by default.
---------------------------------------------------------
- data - A not so basic data plugin that supports caching, different file
types, can be extended, and even supports both parsing and iterating.
- minuit - A python / cython minimizer based on ROOT's PyPWA.
- nestle - A python maximizer based off of Multinest.
- process - A Kernel based multiprocessing module. Allows for an
embarrassingly parallel calculation to be expanded across multiple cores.
For more information about how these plugins work, see their documentation
as well.
"""


from PyPWA import VERSION, LICENSE, STATUS
from PyPWA import AUTHOR, VERSION

__author__ = ["Mark Jones"]
__credits__ = ["Mark Jones"]
__maintainer__ = ["Mark Jones"]
__email__ = "maj@jlab.org"
__status__ = STATUS
__license__ = LICENSE
__author__ = AUTHOR
__version__ = VERSION

0 comments on commit 3c2e2e4

Please sign in to comment.