aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShivesh Mandalia <shivesh.mandalia@outlook.com>2020-02-29 02:43:35 +0000
committerShivesh Mandalia <shivesh.mandalia@outlook.com>2020-02-29 02:43:35 +0000
commitdef104f19f571bfd67de5ecd3b37ed2e4bb7c5d8 (patch)
tree7afcf8f61c8d71acc30a9bfac474e680c1d2cb40
parentb337b7a457341999f97a188945c2c4cc03f7b11c (diff)
downloadGolemFlavor-def104f19f571bfd67de5ecd3b37ed2e4bb7c5d8.tar.gz
GolemFlavor-def104f19f571bfd67de5ecd3b37ed2e4bb7c5d8.zip
python3 support
-rw-r--r--README.md5
-rw-r--r--examples/Untitled.ipynb61
-rw-r--r--examples/paper.mplstyle27
-rw-r--r--golemflavor/misc.py1
-rw-r--r--golemflavor/mn.py2
-rw-r--r--golemflavor/param.py3
-rw-r--r--requirements.txt1
-rw-r--r--scripts/mc_x.py2
-rwxr-xr-xsetup.py5
-rw-r--r--submitter/contour_dag.py8
-rw-r--r--submitter/fr_dag.py10
-rw-r--r--submitter/mc_texture_dag.py10
-rw-r--r--submitter/sens_dag.py16
13 files changed, 128 insertions, 23 deletions
diff --git a/README.md b/README.md
index e93d223..b25cb55 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# GolemFlavor
[![Build Status](https://api.travis-ci.org/ShiveshM/GolemFlavor.svg?branch=master)](https://travis-ci.org/ShiveshM/GolemFlavor)
-![Python 2.7](https://img.shields.io/badge/python-2.7-blue.svg)
+![Python Version](https://img.shields.io/badge/python-2.7+|3.4+-blue.svg)
[![license](https://img.shields.io/github/license/ShiveshM/GolemFlavor 'license')](https://github.com/ShiveshM/GolemFlavor/blob/master/LICENSE)
GolemFlavor is a Python package for running an analysis pipeline using
@@ -26,9 +26,10 @@ is not found.
### Dependencies
GolemFlavor has the following dependencies:
-* [`Python`](https://www.python.org/) 2.7
+* [`Python`](https://www.python.org/) >= 2.7 or >= 3.4
* [`NumPy`](http://www.numpy.org/)
* [`SciPy`](https://www.scipy.org/)
+* [`Six`](https://six.readthedocs.io/)
* [`mpmath`](http://mpmath.org/)
* [`emcee`](https://emcee.readthedocs.io/en/stable/)
* [`PyMultiNest`](https://johannesbuchner.github.io/PyMultiNest/)
diff --git a/examples/Untitled.ipynb b/examples/Untitled.ipynb
new file mode 100644
index 0000000..cf5e123
--- /dev/null
+++ b/examples/Untitled.ipynb
@@ -0,0 +1,61 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "%load_ext autoreload\n",
+ "%autoreload 2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from __future__ import absolute_import, division, print_function"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# GolemFlavor Basic Example"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "In this example, we will generate a fake measured flavour composition using a multivariate Gaussian distribution"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/examples/paper.mplstyle b/examples/paper.mplstyle
new file mode 100644
index 0000000..fcfaf31
--- /dev/null
+++ b/examples/paper.mplstyle
@@ -0,0 +1,27 @@
+figure.figsize : 5, 5 # figure size in inches
+savefig.dpi : 600 # figure dots per inch
+
+font.size: 18
+font.family: serif
+font.serif: Computer Modern, Latin Modern Roman, Bitstream Vera Serif
+text.usetex: True
+
+axes.prop_cycle: cycler('color', ['29A2C6','FF6D31','73B66B','EF597B', '333333', 'FFCB18'])
+axes.grid: False
+
+lines.linewidth: 2
+xtick.labelsize: medium
+ytick.labelsize: medium
+xtick.minor.visible: True # visibility of minor ticks on x-axis
+ytick.minor.visible: True # visibility of minor ticks on y-axis
+xtick.major.size: 6 # major tick size in points
+xtick.minor.size: 3 # minor tick size in points
+ytick.major.size: 6 # major tick size in points
+ytick.minor.size: 3 # minor tick size in points
+xtick.major.width: 1
+xtick.minor.width: 1
+ytick.major.width: 1
+ytick.minor.width: 1
+
+legend.frameon: False
+legend.fontsize: 12
diff --git a/golemflavor/misc.py b/golemflavor/misc.py
index 9743b1a..c3293dc 100644
--- a/golemflavor/misc.py
+++ b/golemflavor/misc.py
@@ -16,6 +16,7 @@ from fractions import gcd
import argparse
from operator import attrgetter
+from functools import reduce
import numpy as np
diff --git a/golemflavor/mn.py b/golemflavor/mn.py
index a18a1e8..b559197 100644
--- a/golemflavor/mn.py
+++ b/golemflavor/mn.py
@@ -31,7 +31,7 @@ def lnProb(cube, ndim, n_params, mn_paramset, llh_paramset, asimov_paramset,
'params\ncube={0}\nmn_paramset]{1}'.format(cube, mn_paramset)
)
pranges = mn_paramset.ranges
- for i in xrange(ndim):
+ for i in range(ndim):
mn_paramset[i].value = (pranges[i][1]-pranges[i][0])*cube[i] + pranges[i][0]
for pm in mn_paramset.names:
llh_paramset[pm].value = mn_paramset[pm].value
diff --git a/golemflavor/param.py b/golemflavor/param.py
index 59a7c59..4de5a7b 100644
--- a/golemflavor/param.py
+++ b/golemflavor/param.py
@@ -8,6 +8,7 @@ Param class and functions for the BSM flavor ratio analysis
"""
from __future__ import absolute_import, division
+from six import string_types
import sys
@@ -121,7 +122,7 @@ class ParamSet(Sequence):
def __getitem__(self, i):
if isinstance(i, int):
return self._params[i]
- elif isinstance(i, basestring):
+ elif isinstance(i, string_types):
return self._by_name[i]
def __getattr__(self, attr):
diff --git a/requirements.txt b/requirements.txt
index 8ddddf4..4b53513 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,6 @@
numpy
scipy
+six
mpmath
emcee
pymultinest
diff --git a/scripts/mc_x.py b/scripts/mc_x.py
index 5d4a934..16c9c3d 100644
--- a/scripts/mc_x.py
+++ b/scripts/mc_x.py
@@ -187,7 +187,7 @@ def main():
srcs = [fr_utils.normalise_fr((x, 1-x, 0)) for x in samples.T[-1]]
mmxs = map(fr_utils.angles_to_u, samples.T[:-1].T)
frs = np.array(
- [fr_utils.u_to_fr(srcs[i], mmxs[i]) for i in xrange(nsamples)],
+ [fr_utils.u_to_fr(srcs[i], mmxs[i]) for i in range(nsamples)],
dtype=np.float64
)
mcmc_utils.save_chains(frs, outfile)
diff --git a/setup.py b/setup.py
index 1492e4a..14f4ecd 100755
--- a/setup.py
+++ b/setup.py
@@ -54,6 +54,11 @@ setup(
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7'
],
packages=find_packages(),
install_requires=INSTALL_REQUIRES,
diff --git a/submitter/contour_dag.py b/submitter/contour_dag.py
index d8e8e49..fc7c191 100644
--- a/submitter/contour_dag.py
+++ b/submitter/contour_dag.py
@@ -1,5 +1,7 @@
#! /usr/bin/env python
+from __future__ import absolute_import, division, print_function
+
import os
import numpy as np
@@ -52,7 +54,7 @@ dagfile += prefix + '.submit'
with open(dagfile, 'w') as f:
job_number = 1
for inj in injected_ratios:
- print 'inj', inj
+ print('inj', inj)
f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
f.write('VARS\tjob{0}\tir0="{1}"\n'.format(job_number, inj[0]))
f.write('VARS\tjob{0}\tir1="{1}"\n'.format(job_number, inj[1]))
@@ -63,5 +65,5 @@ with open(dagfile, 'w') as f:
job_number += 1
if GLOBAL_PARAMS['data'] == 'real': break
-print 'total jobs = {0}'.format(job_number - 1)
-print 'dag file = {0}'.format(dagfile)
+print('total jobs = {0}'.format(job_number - 1))
+print('dag file = {0}'.format(dagfile))
diff --git a/submitter/fr_dag.py b/submitter/fr_dag.py
index d50417c..b0902f6 100644
--- a/submitter/fr_dag.py
+++ b/submitter/fr_dag.py
@@ -1,5 +1,7 @@
#! /usr/bin/env python
+from __future__ import absolute_import, division, print_function
+
import os
import numpy as np
@@ -61,10 +63,10 @@ dagfile += prefix + '.submit'
with open(dagfile, 'w') as f:
job_number = 1
for dim in dims:
- print 'dims', dim
+ print('dims', dim)
of_d = datadir + '/DIM{0}/{1}'.format(dim, prefix)
for src, tex in scenarios:
- print 'scenario: src =', src, 'tex =', tex
+ print('scenario: src =', src, 'tex =', tex)
f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
f.write('VARS\tjob{0}\ttexture="{1}"\n'.format(job_number, tex))
@@ -76,6 +78,6 @@ with open(dagfile, 'w') as f:
f.write('VARS\tjob{0}\tdatadir="{1}"\n'.format(job_number, datadir))
job_number += 1
-print 'total jobs = {0}'.format(job_number - 1)
-print 'dag file = {0}'.format(dagfile)
+print('total jobs = {0}'.format(job_number - 1))
+print('dag file = {0}'.format(dagfile))
diff --git a/submitter/mc_texture_dag.py b/submitter/mc_texture_dag.py
index 0b5adf4..a52f044 100644
--- a/submitter/mc_texture_dag.py
+++ b/submitter/mc_texture_dag.py
@@ -1,5 +1,7 @@
#! /usr/bin/env python
+from __future__ import absolute_import, division, print_function
+
import os
import numpy as np
@@ -55,9 +57,9 @@ dagfile += prefix + '.submit'
with open(dagfile, 'w') as f:
job_number = 1
for src in source_ratios:
- print 'src', src
+ print('src', src)
for tex in textures:
- print 'texture', tex
+ print('texture', tex)
f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
f.write('VARS\tjob{0}\tsr0="{1}"\n'.format(job_number, src[0]))
f.write('VARS\tjob{0}\tsr1="{1}"\n'.format(job_number, src[1]))
@@ -68,6 +70,6 @@ with open(dagfile, 'w') as f:
f.write('VARS\tjob{0}\tdatadir="{1}"\n'.format(job_number, datadir))
job_number += 1
-print 'total jobs = {0}'.format(job_number - 1)
-print 'dag file = {0}'.format(dagfile)
+print('total jobs = {0}'.format(job_number - 1))
+print('dag file = {0}'.format(dagfile))
diff --git a/submitter/sens_dag.py b/submitter/sens_dag.py
index c51fcbe..1fa1531 100644
--- a/submitter/sens_dag.py
+++ b/submitter/sens_dag.py
@@ -1,5 +1,7 @@
#! /usr/bin/env python
+from __future__ import absolute_import, division, print_function
+
import os
import numpy as np
@@ -72,14 +74,14 @@ dagfile += prefix + '.submit'
with open(dagfile, 'w') as f:
job_number = 1
for dim in dims:
- print 'dims', dim
+ print('dims', dim)
of_d = datadir + '/DIM{0}/{1}'.format(dim, prefix)
for sources, tex in scenarios:
- print 'texture', tex
+ print('texture', tex)
for src in sources:
- print 'source flavor', src
- for r in xrange(GLOBAL_PARAMS['segments']):
- print 'run', r
+ print('source flavor', src)
+ for r in range(GLOBAL_PARAMS['segments']):
+ print('run', r)
f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
f.write('VARS\tjob{0}\tsr0="{1}"\n'.format(job_number, src[0]))
@@ -92,5 +94,5 @@ with open(dagfile, 'w') as f:
f.write('VARS\tjob{0}\tdatadir="{1}"\n'.format(job_number, of_d))
job_number += 1
-print 'total jobs = {0}'.format(job_number - 1)
-print 'dag file = {0}'.format(dagfile)
+print('total jobs = {0}'.format(job_number - 1))
+print('dag file = {0}'.format(dagfile))