From ec41915154163ca67f2dde99da6c452b561c2595 Mon Sep 17 00:00:00 2001
From: Alessandro Candido
Date: Sun, 23 Jan 2022 20:25:30 +0100
Subject: [PATCH 01/16] Switch eko tests badge
---
.github/workflows/unittests.yml | 2 +-
README.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml
index c1f851ffc..31b40145e 100644
--- a/.github/workflows/unittests.yml
+++ b/.github/workflows/unittests.yml
@@ -1,4 +1,4 @@
-name: unit tests
+name: tests
on:
push:
diff --git a/README.md b/README.md
index bad149229..2696bb38e 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-
+
From 8fe907ef577323a38499f79756ae9caf769f9326 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Tue, 25 Jan 2022 12:36:27 +0100
Subject: [PATCH 02/16] Move msbar, choose banner
---
src/eko/msbar_masses.py | 114 +++++++++++++++++++++++++++++-
src/eko/runner.py | 152 ++--------------------------------------
2 files changed, 117 insertions(+), 149 deletions(-)
diff --git a/src/eko/msbar_masses.py b/src/eko/msbar_masses.py
index 6cfef54d9..fd1438b4f 100644
--- a/src/eko/msbar_masses.py
+++ b/src/eko/msbar_masses.py
@@ -6,8 +6,9 @@
from scipy import integrate, optimize
from .beta import b, beta
+from .evolution_operator.flavors import quark_names
from .gamma import gamma
-from .strong_coupling import StrongCoupling
+from .strong_coupling import StrongCoupling, strong_coupling_mod_ev
def msbar_ker_exact(a0, a1, order, nf):
@@ -179,6 +180,7 @@ def evolve_msbar_mass(
"""
# set the missing information if needed
fact_to_ren = config["fact_to_ren"]
+ # TODO: take sc always from outside
if strong_coupling is None:
strong_coupling = StrongCoupling(
config["as_ref"],
@@ -190,6 +192,8 @@ def evolve_msbar_mass(
nf_ref=config["nfref"],
)
+ # TODO: split function: 1 function, 1 job
+ # TODO: this should resolve the argument priority
if q2_to is None:
def rge(m2, q2m_ref, strong_coupling, fact_to_ren, nf_ref):
@@ -234,3 +238,111 @@ def rge(m2, q2m_ref, strong_coupling, fact_to_ren, nf_ref):
q2_final, q2_init, strong_coupling, fact_to_ren, n
)
return m2_ref * ev_mass ** 2
+
+
+def compute_msbar_mass(theory_card):
+ r"""
+ Compute the |MSbar| masses solving the equation :math:`m_{\bar{MS}}(\mu) = \mu`
+
+ Parameters
+ ----------
+ theory_card: dict
+ theory run card
+
+ Returns
+ -------
+ masses: list
+ list of |MSbar| masses squared
+ """
+ # TODO: sketch in the docs how the MSbar computation works with a figure.
+ nfa_ref = theory_card["nfref"]
+
+ q2_ref = np.power(theory_card["Qref"], 2)
+ masses = np.concatenate((np.zeros(nfa_ref - 3), np.full(6 - nfa_ref, np.inf)))
+ config = {
+ "as_ref": theory_card["alphas"],
+ "q2a_ref": q2_ref,
+ "order": theory_card["PTO"],
+ "fact_to_ren": theory_card["fact_to_ren_scale_ratio"] ** 2,
+ "method": strong_coupling_mod_ev(theory_card["ModEv"]),
+ "nfref": nfa_ref,
+ }
+
+ # First you need to look for the thr around the given as_ref
+ heavy_quarks = quark_names[3:]
+ hq_idxs = np.arange(0, 3)
+ if nfa_ref > 4:
+ heavy_quarks = reversed(heavy_quarks)
+ hq_idxs = reversed(hq_idxs)
+
+ # loop on heavy quarks and compute the msbar masses
+ for q_idx, hq in zip(hq_idxs, heavy_quarks):
+ q2m_ref = np.power(theory_card[f"Qm{hq}"], 2)
+ m2_ref = np.power(theory_card[f"m{hq}"], 2)
+
+ # check if mass is already given at the pole -> done
+ if q2m_ref == m2_ref:
+ masses[q_idx] = m2_ref
+ continue
+
+ # update the alphas thr scales
+ config["thr_masses"] = masses
+ nf_target = q_idx + 3
+ shift = -1
+
+ # check that alphas is given with a consistent number of flavors
+ if q_idx + 4 == nfa_ref and q2m_ref > q2_ref:
+ raise ValueError(
+ f"In MSBAR scheme, Qm{hq} should be lower than Qref, \
+ if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
+ )
+ if q_idx + 4 == nfa_ref + 1 and q2m_ref < q2_ref:
+ raise ValueError(
+ f"In MSBAR scheme, Qm{hq} should be greater than Qref, \
+ if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
+ )
+
+ # check that for higher patches you do forward running
+ # with consistent conditions
+ if q_idx + 3 >= nfa_ref and q2m_ref >= m2_ref:
+ raise ValueError(
+ f"In MSBAR scheme, Qm{hq} should be lower than m{hq} \
+ if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
+ )
+
+ # check that for lower patches you do backward running
+ # with consistent conditions
+ if q_idx + 3 < nfa_ref:
+ if q2m_ref < m2_ref:
+ raise ValueError(
+ f"In MSBAR scheme, Qm{hq} should be greater than m{hq} \
+ if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
+ )
+ nf_target += 1
+ shift = 1
+
+ # if the initial condition is not in the target patch,
+ # you need to evolve it until nf_target patch wall is reached:
+ # for backward you reach the higher, for forward the lower.
+ # len(masses[q2m_ref > masses]) + 3 is the nf at the given reference scale
+ if nf_target != len(masses[q2m_ref > masses]) + 3:
+ q2_to = masses[q_idx + shift]
+ m2_ref = evolve_msbar_mass(m2_ref, q2m_ref, config=config, q2_to=q2_to)
+ q2m_ref = q2_to
+
+ # now solve the RGE
+ masses[q_idx] = evolve_msbar_mass(m2_ref, q2m_ref, nf_target, config=config)
+
+ # Check the msbar ordering
+ for m2_msbar, hq in zip(masses[:-1], quark_names[4:]):
+ q2m_ref = np.power(theory_card[f"Qm{hq}"], 2)
+ m2_ref = np.power(theory_card[f"m{hq}"], 2)
+ config["thr_masses"] = masses
+ # check that m_msbar_hq < msbar_hq+1 (m_msbar_hq)
+ m2_test = evolve_msbar_mass(m2_ref, q2m_ref, config=config, q2_to=m2_msbar)
+ if m2_msbar > m2_test:
+ raise ValueError(
+ "The MSBAR masses do not preserve the correct ordering,\
+ check the initial reference values"
+ )
+ return masses
diff --git a/src/eko/runner.py b/src/eko/runner.py
index c56efb5c5..2ee4ed554 100644
--- a/src/eko/runner.py
+++ b/src/eko/runner.py
@@ -10,11 +10,10 @@
from . import basis_rotation as br
from . import interpolation
from .evolution_operator.grid import OperatorGrid
+from .msbar_masses import compute_msbar_mass
from .output import Output
-from .strong_coupling import StrongCoupling, strong_coupling_mod_ev
+from .strong_coupling import StrongCoupling
from .thresholds import ThresholdsAtlas
-from .msbar_masses import evolve_msbar_mass
-from .evolution_operator.flavors import quark_names
logger = logging.getLogger(__name__)
@@ -31,46 +30,11 @@ class Runner:
input configurations
"""
- banner1 = """
-EEEE K K OOO
-E K K O O
-EEE KK O O
-E K K O O
-EEEE K K OOO
-"""
-
- banner2 = """
-EEEEEEE KK KK OOOOO
-EE KK KK OO OO
-EEEEE KKKK OO OO
-EE KK KK OO OO
-EEEEEEE KK KK OOOOO"""
-
- banner3 = r""" # Varsity
- ________ ___ ____ ___
-|_ __ ||_ ||_ _| .' `.
- | |_ \_| | |_/ / / .-. \
- | _| _ | __'. | | | |
- _| |__/ | _| | \ \_\ `-' /
-|________||____||____|`.___.'
-"""
-
- banner4 = r""" # Georgia11
-`7MM\"""YMM `7MMF' `YMM' .g8""8q.
- MM `7 MM .M' .dP' `YM.
- MM d MM .d" dM' `MM
- MMmmMM MMMMM. MM MM
- MM Y , MM VMA MM. ,MP
- MM ,M MM `MM.`Mb. ,dP'
-.JMMmmmmMMM .JMML. MMb.`"bmmd"'
-"""
-
- # Roman
- banner5 = r"""
+ banner = r"""
oooooooooooo oooo oooo \\ .oooooo.
`888' `8 `888 .8P' ////// `Y8b
888 888 d8' \\o\///// 888
- 888oooo8 88888[ \\\\/8///// 888
+ 888oooo8 88888 \\\\/8///// 888
888 " 888`88b. 888 /// 888
888 o 888 `88b. `88b // d88'
o888ooooood8 o888o o888o `Y8bood8P'
@@ -150,111 +114,3 @@ def get_output(self):
if inputbasis is not None or targetbasis is not None:
self.out.flavor_reshape(targetbasis=targetbasis, inputbasis=inputbasis)
return copy.deepcopy(self.out)
-
-
-def compute_msbar_mass(theory_card):
- r"""
- Compute the |MSbar| masses solving the equation :math:`m_{\bar{MS}}(m) = m`
-
- Parameters
- ----------
- theory_card: dict
- theory run card
-
- Returns
- -------
- masses: list
- list of |MSbar| masses squared
- """
- # TODO: sketch in the docs how the MSbar computation works with a figure.
- nfa_ref = theory_card["nfref"]
-
- q2_ref = np.power(theory_card["Qref"], 2)
- masses = np.concatenate((np.zeros(nfa_ref - 3), np.full(6 - nfa_ref, np.inf)))
- config = {
- "as_ref": theory_card["alphas"],
- "q2a_ref": q2_ref,
- "order": theory_card["PTO"],
- "fact_to_ren": theory_card["fact_to_ren_scale_ratio"] ** 2,
- "method": strong_coupling_mod_ev(theory_card["ModEv"]),
- "nfref": nfa_ref,
- }
-
- # First you need to look for the thr around the given as_ref
- heavy_quarks = quark_names[3:]
- hq_idxs = np.arange(0, 3)
- if nfa_ref > 4:
- heavy_quarks = reversed(heavy_quarks)
- hq_idxs = reversed(hq_idxs)
-
- # loop on heavy quarks and compute the msbar masses
- for q_idx, hq in zip(hq_idxs, heavy_quarks):
- q2m_ref = np.power(theory_card[f"Qm{hq}"], 2)
- m2_ref = np.power(theory_card[f"m{hq}"], 2)
-
- # check if mass is already given at the pole -> done
- if q2m_ref == m2_ref:
- masses[q_idx] = m2_ref
- continue
-
- # update the alphas thr scales
- config["thr_masses"] = masses
- nf_target = q_idx + 3
- shift = -1
-
- # check that alphas is given with a consistent number of flavors
- if q_idx + 4 == nfa_ref and q2m_ref > q2_ref:
- raise ValueError(
- f"In MSBAR scheme, Qm{hq} should be lower than Qref, \
- if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
- )
- if q_idx + 4 == nfa_ref + 1 and q2m_ref < q2_ref:
- raise ValueError(
- f"In MSBAR scheme, Qm{hq} should be greater than Qref, \
- if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
- )
-
- # check that for higher patches you do forward running
- # with consistent conditions
- if q_idx + 3 >= nfa_ref and q2m_ref >= m2_ref:
- raise ValueError(
- f"In MSBAR scheme, Qm{hq} should be lower than m{hq} \
- if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
- )
-
- # check that for lower patches you do backward running
- # with consistent conditions
- if q_idx + 3 < nfa_ref:
- if q2m_ref < m2_ref:
- raise ValueError(
- f"In MSBAR scheme, Qm{hq} should be greater than m{hq} \
- if alpha_s is given with nfref={nfa_ref} at scale Qref={q2_ref}"
- )
- nf_target += 1
- shift = 1
-
- # if the initial condition is not in the target patch,
- # you need to evolve it until nf_target patch wall is reached:
- # for backward you reach the higher, for forward the lower.
- # len(masses[q2m_ref > masses]) + 3 is the nf at the given reference scale
- if nf_target != len(masses[q2m_ref > masses]) + 3:
- q2_to = masses[q_idx + shift]
- m2_ref = evolve_msbar_mass(m2_ref, q2m_ref, config=config, q2_to=q2_to)
- q2m_ref = q2_to
-
- # now solve the RGE
- masses[q_idx] = evolve_msbar_mass(m2_ref, q2m_ref, nf_target, config=config)
-
- # Check the msbar ordering
- for m2_msbar, hq in zip(masses[:-1], quark_names[4:]):
- q2m_ref = np.power(theory_card[f"Qm{hq}"], 2)
- m2_ref = np.power(theory_card[f"m{hq}"], 2)
- config["thr_masses"] = masses
- # check that m_msbar_hq < msbar_hq+1 (m_msbar_hq)
- m2_test = evolve_msbar_mass(m2_ref, q2m_ref, config=config, q2_to=m2_msbar)
- if m2_msbar > m2_test:
- raise ValueError(
- "The MSBAR masses do not preserve the correct ordering,\
- check the initial reference values"
- )
- return masses
From de516a10c6df5be9785ef0eae8f26cc50c9a1073 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Tue, 25 Jan 2022 14:36:33 +0100
Subject: [PATCH 03/16] Improve MSbar handling
---
src/eko/msbar_masses.py | 69 +++++++++++++++++-------------
tests/benchmark_msbar_evolution.py | 9 ++--
tests/test_msbar_masses.py | 12 ++----
3 files changed, 48 insertions(+), 42 deletions(-)
diff --git a/src/eko/msbar_masses.py b/src/eko/msbar_masses.py
index fd1438b4f..fdcc2cbe5 100644
--- a/src/eko/msbar_masses.py
+++ b/src/eko/msbar_masses.py
@@ -146,9 +146,9 @@ def msbar_ker_dispatcher(q2_to, q2m_ref, strong_coupling, fact_to_ren, nf):
def evolve_msbar_mass(
m2_ref,
q2m_ref,
+ strong_coupling,
nf_ref=None,
- config=None,
- strong_coupling=None,
+ fact_to_ren=1.0,
q2_to=None,
):
r"""
@@ -165,8 +165,8 @@ def evolve_msbar_mass(
squared initial scale
nf_ref: int, optional (not used when q2_to is given)
number of active flavours at the scale q2m_ref, where the solution is searched
- config: dict
- |MSbar| configuration dictionary
+ fact_to_ren: float
+ :math:`\mu_F^2/\muR^2`
strong_coupling: eko.strong_coupling.StrongCoupling
Instance of :class:`~eko.strong_coupling.StrongCoupling` able to generate a_s for
any q
@@ -178,19 +178,6 @@ def evolve_msbar_mass(
m2 : float
:math:`m_{\overline{MS}}(\mu_2)^2`
"""
- # set the missing information if needed
- fact_to_ren = config["fact_to_ren"]
- # TODO: take sc always from outside
- if strong_coupling is None:
- strong_coupling = StrongCoupling(
- config["as_ref"],
- config["q2a_ref"],
- config["thr_masses"],
- thresholds_ratios=[1, 1, 1],
- order=config["order"],
- method=config["method"],
- nf_ref=config["nfref"],
- )
# TODO: split function: 1 function, 1 job
# TODO: this should resolve the argument priority
@@ -259,14 +246,20 @@ def compute_msbar_mass(theory_card):
q2_ref = np.power(theory_card["Qref"], 2)
masses = np.concatenate((np.zeros(nfa_ref - 3), np.full(6 - nfa_ref, np.inf)))
- config = {
- "as_ref": theory_card["alphas"],
- "q2a_ref": q2_ref,
- "order": theory_card["PTO"],
- "fact_to_ren": theory_card["fact_to_ren_scale_ratio"] ** 2,
- "method": strong_coupling_mod_ev(theory_card["ModEv"]),
- "nfref": nfa_ref,
- }
+ fact_to_ren = theory_card["fact_to_ren_scale_ratio"] ** 2
+
+ # TODO: why is this different than calling
+ # `StrongCoupling.from_dict(theory_card, masses=thr_masses)`
+ def sc(thr_masses):
+ return StrongCoupling(
+ theory_card["alphas"],
+ q2_ref,
+ thr_masses,
+ thresholds_ratios=[1, 1, 1],
+ order=theory_card["PTO"],
+ method=strong_coupling_mod_ev(theory_card["ModEv"]),
+ nf_ref=nfa_ref,
+ )
# First you need to look for the thr around the given as_ref
heavy_quarks = quark_names[3:]
@@ -286,7 +279,6 @@ def compute_msbar_mass(theory_card):
continue
# update the alphas thr scales
- config["thr_masses"] = masses
nf_target = q_idx + 3
shift = -1
@@ -327,19 +319,36 @@ def compute_msbar_mass(theory_card):
# len(masses[q2m_ref > masses]) + 3 is the nf at the given reference scale
if nf_target != len(masses[q2m_ref > masses]) + 3:
q2_to = masses[q_idx + shift]
- m2_ref = evolve_msbar_mass(m2_ref, q2m_ref, config=config, q2_to=q2_to)
+ m2_ref = evolve_msbar_mass(
+ m2_ref,
+ q2m_ref,
+ strong_coupling=sc(masses),
+ fact_to_ren=fact_to_ren,
+ q2_to=q2_to,
+ )
q2m_ref = q2_to
# now solve the RGE
- masses[q_idx] = evolve_msbar_mass(m2_ref, q2m_ref, nf_target, config=config)
+ masses[q_idx] = evolve_msbar_mass(
+ m2_ref,
+ q2m_ref,
+ strong_coupling=sc(masses),
+ nf_ref=nf_target,
+ fact_to_ren=fact_to_ren,
+ )
# Check the msbar ordering
for m2_msbar, hq in zip(masses[:-1], quark_names[4:]):
q2m_ref = np.power(theory_card[f"Qm{hq}"], 2)
m2_ref = np.power(theory_card[f"m{hq}"], 2)
- config["thr_masses"] = masses
# check that m_msbar_hq < msbar_hq+1 (m_msbar_hq)
- m2_test = evolve_msbar_mass(m2_ref, q2m_ref, config=config, q2_to=m2_msbar)
+ m2_test = evolve_msbar_mass(
+ m2_ref,
+ q2m_ref,
+ strong_coupling=sc(masses),
+ fact_to_ren=fact_to_ren,
+ q2_to=m2_msbar,
+ )
if m2_msbar > m2_test:
raise ValueError(
"The MSBAR masses do not preserve the correct ordering,\
diff --git a/tests/benchmark_msbar_evolution.py b/tests/benchmark_msbar_evolution.py
index 3a93df3b2..e7b861aca 100644
--- a/tests/benchmark_msbar_evolution.py
+++ b/tests/benchmark_msbar_evolution.py
@@ -5,7 +5,6 @@
from eko.msbar_masses import evolve_msbar_mass
from eko.strong_coupling import StrongCoupling
-
# try to load APFEL - if not available, we'll use the cached values
try:
import apfel
@@ -66,7 +65,7 @@ def benchmark_APFEL_msbar_evolution(self):
m2[n - 3],
Q2m[n - 3],
strong_coupling=as_VFNS,
- config=dict(fact_to_ren=1),
+ fact_to_ren=1.0,
q2_to=Q2,
)
)
@@ -83,7 +82,7 @@ def benchmark_APFEL_msbar_evolution(self):
apfel.SetVFNS()
apfel.SetMSbarMasses(*np.sqrt(m2))
apfel.SetMassScaleReference(*np.sqrt(Q2m))
- apfel.SetRenFacRatio(1)
+ apfel.SetRenFacRatio(1.0)
apfel.InitializeAPFEL()
# collect apfel masses
apfel_vals_cur = []
@@ -93,7 +92,9 @@ def benchmark_APFEL_msbar_evolution(self):
masses.append(apfel.HeavyQuarkMass(n, np.sqrt(Q2)))
apfel_vals_cur.append(masses)
print(apfel_vals_cur)
- np.testing.assert_allclose(apfel_vals, np.array(apfel_vals_cur))
+ np.testing.assert_allclose(
+ apfel_vals, np.array(apfel_vals_cur), err_msg=f"order={order}"
+ )
# check myself to APFEL
np.testing.assert_allclose(
apfel_vals, np.sqrt(np.array(my_vals)), rtol=2e-3
diff --git a/tests/test_msbar_masses.py b/tests/test_msbar_masses.py
index 4721ee02d..68d3fbc80 100644
--- a/tests/test_msbar_masses.py
+++ b/tests/test_msbar_masses.py
@@ -5,11 +5,9 @@
import numpy as np
import pytest
-from eko.strong_coupling import StrongCoupling
-
-from eko.msbar_masses import evolve_msbar_mass
-from eko.runner import compute_msbar_mass
from eko.evolution_operator.flavors import quark_names
+from eko.msbar_masses import compute_msbar_mass, evolve_msbar_mass
+from eko.strong_coupling import StrongCoupling
theory_dict = {
"alphas": 0.1180,
@@ -54,9 +52,7 @@ def test_compute_msbar_mass(self):
m2_ref,
Q2m_ref,
strong_coupling=strong_coupling,
- config=dict(
- fact_to_ren=theory_dict["fact_to_ren_scale_ratio"]
- ),
+ fact_to_ren=theory_dict["fact_to_ren_scale_ratio"] ** 2,
q2_to=m2_computed[nf - 3],
)
)
@@ -88,7 +84,7 @@ def test_compute_msbar_mass_VFNS(self):
m2_ref,
Q2m_ref,
strong_coupling=strong_coupling,
- config=dict(fact_to_ren=theory_dict["fact_to_ren_scale_ratio"]),
+ fact_to_ren=theory_dict["fact_to_ren_scale_ratio"] ** 2,
q2_to=m2_computed[nf - 3],
)
)
From 8ca74c046972cd8cac470b552b1d78080b2c61e3 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Tue, 25 Jan 2022 14:36:58 +0100
Subject: [PATCH 04/16] Run poe format
---
benchmarks/apfel_bench.py | 3 ++-
benchmarks/lha_paper_bench.py | 1 +
benchmarks/pegasus_bench.py | 1 +
benchmarks/sandbox.py | 3 ++-
src/eko/gamma.py | 1 +
src/eko/output.py | 2 +-
src/eko/thresholds.py | 1 -
src/ekomark/__init__.py | 5 ++++-
src/ekomark/benchmark/external/LHA_utils.py | 4 ++--
src/ekomark/benchmark/runner.py | 3 +--
src/ekomark/navigator/navigator.py | 11 +++++++----
11 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/benchmarks/apfel_bench.py b/benchmarks/apfel_bench.py
index b10532d52..928b9c708 100644
--- a/benchmarks/apfel_bench.py
+++ b/benchmarks/apfel_bench.py
@@ -4,9 +4,10 @@
"""
import numpy as np
from banana.data import cartesian_product
+
+from ekomark.banana_cfg import register
from ekomark.benchmark.runner import Runner
from ekomark.data import operators
-from ekomark.banana_cfg import register
register(__file__)
diff --git a/benchmarks/lha_paper_bench.py b/benchmarks/lha_paper_bench.py
index bdb4462c4..9ef572229 100644
--- a/benchmarks/lha_paper_bench.py
+++ b/benchmarks/lha_paper_bench.py
@@ -3,6 +3,7 @@
Benchmark to :cite:`Giele:2002hx` (LO + NLO) and :cite:`Dittmar:2005ed` (NNLO)
"""
import numpy as np
+
from ekomark.benchmark.runner import Runner
base_theory = {
diff --git a/benchmarks/pegasus_bench.py b/benchmarks/pegasus_bench.py
index 5dbc8fc33..36fcc3a9f 100644
--- a/benchmarks/pegasus_bench.py
+++ b/benchmarks/pegasus_bench.py
@@ -4,6 +4,7 @@
"""
import numpy as np
from banana.data import cartesian_product
+
from ekomark.benchmark.runner import Runner
from ekomark.data import operators
diff --git a/benchmarks/sandbox.py b/benchmarks/sandbox.py
index a9ca48ca6..efa655934 100644
--- a/benchmarks/sandbox.py
+++ b/benchmarks/sandbox.py
@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
# pylint: skip-file
import numpy as np
+
+from ekomark import register
from ekomark.benchmark.runner import Runner
from ekomark.data import operators
-from ekomark import register
register(__file__)
diff --git a/src/eko/gamma.py b/src/eko/gamma.py
index 468c54693..e1f728ac6 100644
--- a/src/eko/gamma.py
+++ b/src/eko/gamma.py
@@ -6,6 +6,7 @@
"""
import scipy.special
+
from .anomalous_dimensions.harmonics import zeta3, zeta4
diff --git a/src/eko/output.py b/src/eko/output.py
index c541ff4da..45c2f387c 100644
--- a/src/eko/output.py
+++ b/src/eko/output.py
@@ -9,9 +9,9 @@
import tempfile
import warnings
-import yaml
import lz4.frame
import numpy as np
+import yaml
from . import basis_rotation as br
from . import interpolation, version
diff --git a/src/eko/thresholds.py b/src/eko/thresholds.py
index e9bc5e846..36936c7a6 100644
--- a/src/eko/thresholds.py
+++ b/src/eko/thresholds.py
@@ -6,7 +6,6 @@
import numpy as np
-
logger = logging.getLogger(__name__)
diff --git a/src/ekomark/__init__.py b/src/ekomark/__init__.py
index 72c19578a..51d376978 100644
--- a/src/ekomark/__init__.py
+++ b/src/ekomark/__init__.py
@@ -3,11 +3,13 @@
"""
import pathlib
-from eko import basis_rotation as br
from banana import load_config
+from eko import basis_rotation as br
+
from . import banana_cfg
+
def register(path):
path = pathlib.Path(path)
if path.is_file():
@@ -15,6 +17,7 @@ def register(path):
banana_cfg.cfg = load_config(path)
+
def pdfname(pid_or_name):
"""Return pdf name"""
if isinstance(pid_or_name, int):
diff --git a/src/ekomark/benchmark/external/LHA_utils.py b/src/ekomark/benchmark/external/LHA_utils.py
index 5e6b2e55b..89589b831 100644
--- a/src/ekomark/benchmark/external/LHA_utils.py
+++ b/src/ekomark/benchmark/external/LHA_utils.py
@@ -4,9 +4,9 @@
"""
import pathlib
-import yaml
-import numpy as np
import matplotlib.pyplot as plt
+import numpy as np
+import yaml
from matplotlib.backends.backend_pdf import PdfPages
from eko import basis_rotation as br
diff --git a/src/ekomark/benchmark/runner.py b/src/ekomark/benchmark/runner.py
index 1b23db6f9..6ce535d99 100644
--- a/src/ekomark/benchmark/runner.py
+++ b/src/ekomark/benchmark/runner.py
@@ -14,8 +14,7 @@
import eko
from eko import basis_rotation as br
-from .. import pdfname
-from .. import banana_cfg
+from .. import banana_cfg, pdfname
from ..data import db, operators
diff --git a/src/ekomark/navigator/navigator.py b/src/ekomark/navigator/navigator.py
index 5c42857c6..c19655974 100644
--- a/src/ekomark/navigator/navigator.py
+++ b/src/ekomark/navigator/navigator.py
@@ -10,8 +10,7 @@
from eko import basis_rotation as br
-from .. import pdfname
-from .. import banana_cfg
+from .. import banana_cfg, pdfname
from ..data import db
from ..plots import input_figure, plot_dist
@@ -162,7 +161,9 @@ def plot_pdfs(self, doc_hash):
"""
log = self.get(bnav.l, doc_hash)
dfd = log["log"]
- directory = banana_cfg.cfg["database_path"].parents[0] / f"{log['external']}_bench"
+ directory = (
+ banana_cfg.cfg["database_path"].parents[0] / f"{log['external']}_bench"
+ )
if not os.path.exists(directory):
os.makedirs(directory)
@@ -206,7 +207,9 @@ def display_pdfs(self, doc_hash):
log hash
"""
log = self.get(bnav.l, doc_hash)
- directory = banana_cfg.cfg["database_path"].parents[0] / f"{log['external']}_bench"
+ directory = (
+ banana_cfg.cfg["database_path"].parents[0] / f"{log['external']}_bench"
+ )
if not directory.exists():
directory.mkdir(parents=True)
From 9f40503ee3da31265a1c8150a3b258fbe3ac0d32 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Tue, 25 Jan 2022 15:42:03 +0100
Subject: [PATCH 05/16] Add FORM inversion snippet
---
src/eko/matching_conditions/operator_matrix_element.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/eko/matching_conditions/operator_matrix_element.py b/src/eko/matching_conditions/operator_matrix_element.py
index daf787be8..47205930e 100644
--- a/src/eko/matching_conditions/operator_matrix_element.py
+++ b/src/eko/matching_conditions/operator_matrix_element.py
@@ -117,6 +117,13 @@ def build_ome(A, order, a_s, backward_method):
ome : numpy.ndarray
matching operator matrix
"""
+ # to get the inverse one can use this FORM snippet
+ # Symbol a;
+ # NTensor c,d,e;
+ # Local x=-(a*c+a**2* d + a**3 * e);
+ # Local bi = 1+x+x**2+x**3;
+ # Print;
+ # .end
ome = np.eye(len(A[0]), dtype=np.complex_)
if backward_method == "expanded":
# expended inverse
From 70136ba224aae7b316fb5e601a7e994263a870ee Mon Sep 17 00:00:00 2001
From: Alessandro Candido
Date: Sat, 29 Jan 2022 15:10:32 +0100
Subject: [PATCH 06/16] Update pre-commit hook, add few others
---
.pre-commit-config.yaml | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 027f1be4c..5112c7379 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -7,12 +7,24 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
+ - id: check-toml
+ - id: check-merge-conflict
+ - id: debug-statements
+ - id: fix-encoding-pragma
- repo: https://github.com/psf/black
- rev: 21.6b0
+ rev: 21.10b0
hooks:
- id: black
+ - repo: https://github.com/asottile/blacken-docs
+ rev: v1.12.0
+ hooks:
+ - id: blacken-docs
- repo: https://github.com/pycqa/isort
- rev: 5.9.1
+ rev: 5.10.1
hooks:
- id: isort
args: ["--profile", "black"]
+ - repo: https://github.com/asottile/pyupgrade
+ rev: v2.31.0
+ hooks:
+ - id: pyupgrade
From c1316afe451a91626406692fdb98c4618fc25c3b Mon Sep 17 00:00:00 2001
From: Niccolo' Laurenti
Date: Wed, 2 Feb 2022 12:26:57 +0100
Subject: [PATCH 07/16] Init QED
---
doc/source/theory/FlavorSpace.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/source/theory/FlavorSpace.rst b/doc/source/theory/FlavorSpace.rst
index 6882430f4..be1ce999d 100644
--- a/doc/source/theory/FlavorSpace.rst
+++ b/doc/source/theory/FlavorSpace.rst
@@ -15,7 +15,7 @@ Here we use the raw quark flavors along with the gluon as they correspond to the
operator in the Lagrange density:
.. math ::
- \mathcal F = \mathcal F_{fl} = \span(g, u, \bar u, d, \bar d, s, \bar s, c, \bar c, b, \bar b, t, \bar t)
+ \mathcal F = \mathcal F_{fl} = \span(\gamma, g, u, \bar u, d, \bar d, s, \bar s, c, \bar c, b, \bar b, t, \bar t)
- we deliver the :class:`~eko.output.Output` in this basis, although the flavors are
slightly differently arranged (Implementation: :data:`here `).
From ab8000ba1c0e315d046b1c738ff80a2a9116990d Mon Sep 17 00:00:00 2001
From: Niccolo' Laurenti
Date: Wed, 2 Feb 2022 12:28:03 +0100
Subject: [PATCH 08/16] Revert
---
doc/source/theory/FlavorSpace.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/source/theory/FlavorSpace.rst b/doc/source/theory/FlavorSpace.rst
index be1ce999d..6882430f4 100644
--- a/doc/source/theory/FlavorSpace.rst
+++ b/doc/source/theory/FlavorSpace.rst
@@ -15,7 +15,7 @@ Here we use the raw quark flavors along with the gluon as they correspond to the
operator in the Lagrange density:
.. math ::
- \mathcal F = \mathcal F_{fl} = \span(\gamma, g, u, \bar u, d, \bar d, s, \bar s, c, \bar c, b, \bar b, t, \bar t)
+ \mathcal F = \mathcal F_{fl} = \span(g, u, \bar u, d, \bar d, s, \bar s, c, \bar c, b, \bar b, t, \bar t)
- we deliver the :class:`~eko.output.Output` in this basis, although the flavors are
slightly differently arranged (Implementation: :data:`here `).
From 748b160a429105c437a6fb17ae2ad58a8fd80477 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Wed, 2 Feb 2022 13:01:25 +0100
Subject: [PATCH 09/16] Add CT18ZNNLO bench, update pre-commit
---
.pre-commit-config.yaml | 6 +++---
benchmarks/CT18_bench.py | 25 ++++++++++++++++++++++++-
2 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 5112c7379..9373b13e5 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.0.1
+ rev: v4.1.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
@@ -12,11 +12,11 @@ repos:
- id: debug-statements
- id: fix-encoding-pragma
- repo: https://github.com/psf/black
- rev: 21.10b0
+ rev: 22.1.0
hooks:
- id: black
- repo: https://github.com/asottile/blacken-docs
- rev: v1.12.0
+ rev: v1.12.1
hooks:
- id: blacken-docs
- repo: https://github.com/pycqa/isort
diff --git a/benchmarks/CT18_bench.py b/benchmarks/CT18_bench.py
index 73d86c6d6..078a1c6bb 100644
--- a/benchmarks/CT18_bench.py
+++ b/benchmarks/CT18_bench.py
@@ -1,4 +1,4 @@
-## -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
"""
Benchmark CT18 pdf family
@@ -51,6 +51,29 @@ def benchmark_nnlo(self, Q0=1.295, Q2grid=(1e4,)):
]
self.run([theory_card], [operator_card], ["CT18NNLO"])
+ def benchmark_znnlo(self, Q0=1.3, Q2grid=(1e4,)):
+ theory_card = base_theory.copy()
+ theory_card.update(
+ {
+ "alphas": 0.118000,
+ "PTO": 2,
+ "Q0": Q0,
+ "MaxNfPdf": 5,
+ "MaxNfAs": 5,
+ "mc": 1.4,
+ }
+ )
+ operator_card = {"Q2grid": list(Q2grid)}
+ self.skip_pdfs = lambda _theory: [
+ -6,
+ 6,
+ 22,
+ "ph",
+ "T35",
+ "V35",
+ ]
+ self.run([theory_card], [operator_card], ["CT18ZNNLO"])
+
if __name__ == "__main__":
b = BenchmarkCT18()
From 6accf8b20333d3b56a0b12c40a5e181191be58cb Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Wed, 2 Feb 2022 13:07:47 +0100
Subject: [PATCH 10/16] Recover test coverage to 100%
---
tests/test_interpolation.py | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/tests/test_interpolation.py b/tests/test_interpolation.py
index 69de32ced..c4e06b7b6 100644
--- a/tests/test_interpolation.py
+++ b/tests/test_interpolation.py
@@ -111,6 +111,13 @@ def test_from_dict(self):
a.xgrid, np.array([1e-7, 1e-4, 1e-1, 0.55, 1.0])
)
assert a.polynomial_degree == 1
+ dd = {
+ "interpolation_xgrid": ["make_lambert_grid", 20],
+ "interpolation_is_log": False,
+ "interpolation_polynomial_degree": 1,
+ }
+ aa = interpolation.InterpolatorDispatcher.from_dict(dd)
+ assert len(aa.xgrid) == 20
with pytest.raises(ValueError):
d = {
"interpolation_xgrid": [],
@@ -233,11 +240,11 @@ def test_log_eval_N(self):
assert_almost_equal(act_c, res_c)
# Full -> \tilde p_0(N) = exp(-N)(exp(N)-1-N)/N^2
# MMa: Integrate[x^(n-1) (-Log[x]),{x,1/E,1}]
- p0Nref_full = lambda N, lnx: ((np.exp(N) - 1 - N) / N ** 2) * np.exp(
+ p0Nref_full = lambda N, lnx: ((np.exp(N) - 1 - N) / N**2) * np.exp(
-N * (lnx + 1)
)
# partial = lower bound is neglected;
- p0Nref_partial = lambda N, lnx: (1 / N ** 2) * np.exp(-N * lnx)
+ p0Nref_partial = lambda N, lnx: (1 / N**2) * np.exp(-N * lnx)
p1N = inter_N[1]
assert len(p1N.areas) == 1
p1_cs_ref = [1, 1]
@@ -245,8 +252,8 @@ def test_log_eval_N(self):
assert_almost_equal(act_c, res_c)
# p_1(x) = 1+\ln(x) -> \tilde p_1(N) = (exp(-N)-1+N)/N^2
# MMa: Integrate[x^(n-1) (1+Log[x]),{x,1/E,1}]
- p1Nref_full = lambda N, lnx: ((np.exp(-N) - 1 + N) / N ** 2) * np.exp(-N * lnx)
- p1Nref_partial = lambda N, lnx: (1 / N - 1 / N ** 2) * np.exp(-N * lnx)
+ p1Nref_full = lambda N, lnx: ((np.exp(-N) - 1 + N) / N**2) * np.exp(-N * lnx)
+ p1Nref_partial = lambda N, lnx: (1 / N - 1 / N**2) * np.exp(-N * lnx)
# iterate configurations
for N in [1.0, 2.0, complex(1.0, 1.0)]:
# check skip
From 5dc5f2aaaf191aded39ea016eb21b58e6314b06c Mon Sep 17 00:00:00 2001
From: giacomomagni
Date: Wed, 9 Feb 2022 20:06:00 +0100
Subject: [PATCH 11/16] Fix register and cfg in ekomark
---
benchmarks/apfel_bench.py | 10 ++++++----
src/ekomark/__init__.py | 15 ---------------
src/ekomark/banana_cfg.py | 3 ---
src/ekomark/benchmark/runner.py | 3 ++-
src/ekomark/navigator/__init__.py | 2 +-
src/ekomark/navigator/navigator.py | 4 +++-
6 files changed, 12 insertions(+), 25 deletions(-)
delete mode 100644 src/ekomark/banana_cfg.py
diff --git a/benchmarks/apfel_bench.py b/benchmarks/apfel_bench.py
index 928b9c708..3ca9e332a 100644
--- a/benchmarks/apfel_bench.py
+++ b/benchmarks/apfel_bench.py
@@ -2,15 +2,17 @@
"""
Benchmark EKO to Apfel
"""
+import pathlib
+
import numpy as np
+from banana import register
from banana.data import cartesian_product
-from ekomark.banana_cfg import register
from ekomark.benchmark.runner import Runner
from ekomark.data import operators
-register(__file__)
-
+here = pathlib.Path(__file__).parent
+register(here)
def tolist(input_dict):
output_dict = input_dict.copy()
@@ -179,4 +181,4 @@ def benchmark_sv(self, pto):
# obj.benchmark_plain(1)
# obj.benchmark_sv(1)
# obj.benchmark_kthr(2)
- obj.benchmark_msbar(2)
+ obj.benchmark_msbar(0)
diff --git a/src/ekomark/__init__.py b/src/ekomark/__init__.py
index 51d376978..bd7a64b44 100644
--- a/src/ekomark/__init__.py
+++ b/src/ekomark/__init__.py
@@ -1,23 +1,8 @@
"""
Additional package to benchmark eko.
"""
-import pathlib
-
-from banana import load_config
-
from eko import basis_rotation as br
-from . import banana_cfg
-
-
-def register(path):
- path = pathlib.Path(path)
- if path.is_file():
- path = path.parent
-
- banana_cfg.cfg = load_config(path)
-
-
def pdfname(pid_or_name):
"""Return pdf name"""
if isinstance(pid_or_name, int):
diff --git a/src/ekomark/banana_cfg.py b/src/ekomark/banana_cfg.py
deleted file mode 100644
index eef8232c7..000000000
--- a/src/ekomark/banana_cfg.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# -*- coding: utf-8 -*-
-
-cfg = None
diff --git a/src/ekomark/benchmark/runner.py b/src/ekomark/benchmark/runner.py
index 6ce535d99..37ffbf463 100644
--- a/src/ekomark/benchmark/runner.py
+++ b/src/ekomark/benchmark/runner.py
@@ -8,13 +8,14 @@
import sys
import pandas as pd
+from banana import cfg as banana_cfg
from banana.benchmark.runner import BenchmarkRunner
from banana.data import dfdict
import eko
from eko import basis_rotation as br
-from .. import banana_cfg, pdfname
+from .. import pdfname
from ..data import db, operators
diff --git a/src/ekomark/navigator/__init__.py b/src/ekomark/navigator/__init__.py
index ec679638f..5e4e4b863 100755
--- a/src/ekomark/navigator/__init__.py
+++ b/src/ekomark/navigator/__init__.py
@@ -4,7 +4,7 @@
"""
from banana import navigator as bnav
-from .. import banana_cfg
+from banana import cfg as banana_cfg
from . import navigator
diff --git a/src/ekomark/navigator/navigator.py b/src/ekomark/navigator/navigator.py
index c19655974..b489954f3 100644
--- a/src/ekomark/navigator/navigator.py
+++ b/src/ekomark/navigator/navigator.py
@@ -6,11 +6,13 @@
import pandas as pd
from banana import navigator as bnav
from banana.data import dfdict
+from banana import cfg as banana_cfg
+
from matplotlib.backends.backend_pdf import PdfPages
from eko import basis_rotation as br
-from .. import banana_cfg, pdfname
+from .. import pdfname
from ..data import db
from ..plots import input_figure, plot_dist
From 945f8ec19c9f4d0e6674d12647d4030e9e30f38b Mon Sep 17 00:00:00 2001
From: giacomomagni
Date: Thu, 10 Feb 2022 09:50:11 +0100
Subject: [PATCH 12/16] fix path in apfel bench
---
benchmarks/apfel_bench.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/benchmarks/apfel_bench.py b/benchmarks/apfel_bench.py
index 3ca9e332a..2c2b6274c 100644
--- a/benchmarks/apfel_bench.py
+++ b/benchmarks/apfel_bench.py
@@ -2,8 +2,6 @@
"""
Benchmark EKO to Apfel
"""
-import pathlib
-
import numpy as np
from banana import register
from banana.data import cartesian_product
@@ -11,8 +9,7 @@
from ekomark.benchmark.runner import Runner
from ekomark.data import operators
-here = pathlib.Path(__file__).parent
-register(here)
+register(__file__)
def tolist(input_dict):
output_dict = input_dict.copy()
From 914b3bc29e61deb90c866ae7abe09a0c61de628b Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Fri, 11 Feb 2022 17:28:57 +0100
Subject: [PATCH 13/16] Run pre-commit
---
benchmarks/CT14_bench.py | 2 +-
benchmarks/HERA20_bench.py | 2 +-
benchmarks/NNPDF_bench.py | 2 +-
benchmarks/apfel_bench.py | 1 +
doc/source/theory/Matching.rst | 2 +-
src/eko/anomalous_dimensions/lo.py | 4 +-
src/eko/anomalous_dimensions/nnlo.py | 176 +++++++++---------
src/eko/basis_rotation.py | 4 +-
src/eko/evolution_operator/__init__.py | 4 +-
src/eko/evolution_operator/flavors.py | 4 +-
src/eko/evolution_operator/physical.py | 2 +-
src/eko/gamma.py | 6 +-
src/eko/kernels/evolution_integrals.py | 8 +-
src/eko/kernels/non_singlet.py | 12 +-
src/eko/kernels/singlet.py | 14 +-
src/eko/matching_conditions/__init__.py | 2 +-
src/eko/matching_conditions/nlo.py | 22 +--
src/eko/matching_conditions/nnlo.py | 160 ++++++++--------
.../operator_matrix_element.py | 4 +-
src/eko/msbar_masses.py | 12 +-
src/eko/strong_coupling.py | 8 +-
src/eko/version.py | 1 +
src/ekomark/__init__.py | 2 +
src/ekomark/benchmark/__init__.py | 1 -
src/ekomark/benchmark/external/__init__.py | 1 -
src/ekomark/data/__init__.py | 1 -
src/ekomark/navigator/__init__.py | 2 +-
src/ekomark/navigator/navigator.py | 3 +-
tests/benchmark_msbar_evolution.py | 2 +-
tests/benchmark_strong_coupling.py | 44 ++---
tests/test_ad_harmonics.py | 2 +-
tests/test_ad_nlo.py | 12 +-
tests/test_basis_rotation.py | 1 +
tests/test_beta.py | 4 +-
tests/test_ev_op_grid.py | 4 +-
tests/test_ev_op_physical.py | 6 +-
tests/test_kernels_ei.py | 22 +--
tests/test_kernels_ns.py | 6 +-
tests/test_matching.py | 10 +-
tests/test_matching_nnlo.py | 10 +-
tests/test_strong_coupling.py | 6 +-
41 files changed, 296 insertions(+), 295 deletions(-)
diff --git a/benchmarks/CT14_bench.py b/benchmarks/CT14_bench.py
index adc8a1441..2b16b8248 100644
--- a/benchmarks/CT14_bench.py
+++ b/benchmarks/CT14_bench.py
@@ -1,4 +1,4 @@
-## -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
"""
Benchmark CT14 pdf family
diff --git a/benchmarks/HERA20_bench.py b/benchmarks/HERA20_bench.py
index a053b5078..0e49fbe80 100644
--- a/benchmarks/HERA20_bench.py
+++ b/benchmarks/HERA20_bench.py
@@ -1,4 +1,4 @@
-## -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
"""
Benchmark HERAPDF2.0 pdf family
diff --git a/benchmarks/NNPDF_bench.py b/benchmarks/NNPDF_bench.py
index 0b692a82b..71adf313a 100644
--- a/benchmarks/NNPDF_bench.py
+++ b/benchmarks/NNPDF_bench.py
@@ -1,4 +1,4 @@
-## -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
"""
Benchmark NNDPF31 pdf family
"""
diff --git a/benchmarks/apfel_bench.py b/benchmarks/apfel_bench.py
index 2c2b6274c..1d44f3f16 100644
--- a/benchmarks/apfel_bench.py
+++ b/benchmarks/apfel_bench.py
@@ -11,6 +11,7 @@
register(__file__)
+
def tolist(input_dict):
output_dict = input_dict.copy()
for key, item in output_dict.items():
diff --git a/doc/source/theory/Matching.rst b/doc/source/theory/Matching.rst
index 2b8b5522d..91844da3f 100644
--- a/doc/source/theory/Matching.rst
+++ b/doc/source/theory/Matching.rst
@@ -120,5 +120,5 @@ EKO implements two different strategies to perform this operation, that can be s
\mathbf{A}_{exp}^{-1}(\mu_{h}^2) &= \mathbf{I} - a_s(\mu_{h}^2) \mathbf{A}^{(1)} + a_s^2(\mu_{h}^2) \left [ \mathbf{A}^{(2)} - \left(\mathbf{A}^{(1)}\right)^2 \right ] + O(a_s^3) \\
We emphasize that in the backward evolution, below the threshold, the remaining high quark PDFs are always intrinsic and do not evolve anymore.
-In fact, if the initial PDFs (above threshold) do contain an intrinsic contribution, this has to be evolved below the threshold otherwise momentum sum rules
+In fact, if the initial PDFs (above threshold) do contain an intrinsic contribution, this has to be evolved below the threshold otherwise momentum sum rules
can be violated.
diff --git a/src/eko/anomalous_dimensions/lo.py b/src/eko/anomalous_dimensions/lo.py
index fc2bf9e71..0c5e23c50 100644
--- a/src/eko/anomalous_dimensions/lo.py
+++ b/src/eko/anomalous_dimensions/lo.py
@@ -50,7 +50,7 @@ def gamma_qg_0(N, nf: int):
gamma_qg_0 : complex
Leading-order quark-gluon anomalous dimension :math:`\\gamma_{qg}^{(0)}(N)`
"""
- gamma = -(N ** 2 + N + 2.0) / (N * (N + 1.0) * (N + 2.0))
+ gamma = -(N**2 + N + 2.0) / (N * (N + 1.0) * (N + 2.0))
result = 2.0 * constants.TR * 2.0 * nf * gamma
return result
@@ -72,7 +72,7 @@ def gamma_gq_0(N):
gamma_gq_0 : complex
Leading-order gluon-quark anomalous dimension :math:`\\gamma_{gq}^{(0)}(N)`
"""
- gamma = -(N ** 2 + N + 2.0) / (N * (N + 1.0) * (N - 1.0))
+ gamma = -(N**2 + N + 2.0) / (N * (N + 1.0) * (N - 1.0))
result = 2.0 * constants.CF * gamma
return result
diff --git a/src/eko/anomalous_dimensions/nnlo.py b/src/eko/anomalous_dimensions/nnlo.py
index 5cf5f1f52..f4154375b 100644
--- a/src/eko/anomalous_dimensions/nnlo.py
+++ b/src/eko/anomalous_dimensions/nnlo.py
@@ -42,8 +42,8 @@ def gamma_nsm_2(n, nf: int, sx):
S2 = sx[1]
S3 = sx[2]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
- E2 = 2.0 * (-S1 / n ** 3 + (zeta2 - S2) / n ** 2 - (S3 - zeta3) / n)
+ E1 = S1 / n**2 + (S2 - zeta2) / n
+ E2 = 2.0 * (-S1 / n**3 + (zeta2 - S2) / n**2 - (S3 - zeta3) / n)
pm2 = (
-1174.898 * (S1 - 1.0 / n)
@@ -53,10 +53,10 @@ def gamma_nsm_2(n, nf: int, sx):
+ 297.0 / (n + 2.0)
- 3505.0 / (n + 1.0)
+ 1860.2 / n
- - 1465.2 / n ** 2
- + 399.2 * 2.0 / n ** 3
- - 320.0 / 9.0 * 6.0 / n ** 4
- + 116.0 / 81.0 * 24.0 / n ** 5
+ - 1465.2 / n**2
+ + 399.2 * 2.0 / n**3
+ - 320.0 / 9.0 * 6.0 / n**4
+ + 116.0 / 81.0 * 24.0 / n**5
+ 684.0 * E1
+ 251.2 * E2
)
@@ -69,9 +69,9 @@ def gamma_nsm_2(n, nf: int, sx):
+ 77.89 / (n + 2.0)
+ 406.5 / (n + 1.0)
- 216.62 / n
- + 172.69 / n ** 2
- - 3216.0 / 81.0 * 2.0 / n ** 3
- + 256.0 / 81.0 * 6.0 / n ** 4
+ + 172.69 / n**2
+ - 3216.0 / 81.0 * 2.0 / n**3
+ + 256.0 / 81.0 * 6.0 / n**4
- 65.43 * E1
+ 1.136 * 6.0 / (n + 1.0) ** 4
)
@@ -82,14 +82,14 @@ def gamma_nsm_2(n, nf: int, sx):
- 2.0 / 27.0 * S1
- 10.0 / 27.0 * S2
+ 2.0 / 9.0 * S3
- - (12.0 * n ** 4 + 2.0 * n ** 3 - 12.0 * n ** 2 - 2.0 * n + 3.0)
- / (27.0 * n ** 3 * (n + 1.0) ** 3)
+ - (12.0 * n**4 + 2.0 * n**3 - 12.0 * n**2 - 2.0 * n + 3.0)
+ / (27.0 * n**3 * (n + 1.0) ** 3)
)
* 32.0
/ 3.0
)
- result = pm2 + nf * pm2_nf + nf ** 2 * pf2_nfnf
+ result = pm2 + nf * pm2_nf + nf**2 * pf2_nfnf
return result
@@ -119,8 +119,8 @@ def gamma_nsp_2(n, nf: int, sx):
S2 = sx[1]
S3 = sx[2]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
- E2 = 2.0 * (-S1 / n ** 3 + (zeta2 - S2) / n ** 2 - (S3 - zeta3) / n)
+ E1 = S1 / n**2 + (S2 - zeta2) / n
+ E2 = 2.0 * (-S1 / n**3 + (zeta2 - S2) / n**2 - (S3 - zeta3) / n)
pp2 = (
-1174.898 * (S1 - 1.0 / n)
@@ -130,10 +130,10 @@ def gamma_nsp_2(n, nf: int, sx):
+ 243.6 / (n + 2.0)
- 3135.0 / (n + 1.0)
+ 1641.1 / n
- - 1258.0 / n ** 2
- + 294.9 * 2.0 / n ** 3
- - 800 / 27.0 * 6.0 / n ** 4
- + 128 / 81.0 * 24.0 / n ** 5
+ - 1258.0 / n**2
+ + 294.9 * 2.0 / n**3
+ - 800 / 27.0 * 6.0 / n**4
+ + 128 / 81.0 * 24.0 / n**5
+ 563.9 * E1
+ 256.8 * E2
)
@@ -146,9 +146,9 @@ def gamma_nsp_2(n, nf: int, sx):
+ 72.94 / (n + 2.0)
+ 381.1 / (n + 1.0)
- 197.0 / n
- + 152.6 / n ** 2
- - 2608.0 / 81.0 * 2.0 / n ** 3
- + 192.0 / 81.0 * 6.0 / n ** 4
+ + 152.6 / n**2
+ - 2608.0 / 81.0 * 2.0 / n**3
+ + 192.0 / 81.0 * 6.0 / n**4
- 56.66 * E1
+ 1.497 * 6.0 / (n + 1.0) ** 4
)
@@ -159,14 +159,14 @@ def gamma_nsp_2(n, nf: int, sx):
- 2.0 / 27.0 * S1
- 10.0 / 27.0 * S2
+ 2.0 / 9.0 * S3
- - (12.0 * n ** 4 + 2.0 * n ** 3 - 12.0 * n ** 2 - 2.0 * n + 3.0)
- / (27.0 * n ** 3 * (n + 1.0) ** 3)
+ - (12.0 * n**4 + 2.0 * n**3 - 12.0 * n**2 - 2.0 * n + 3.0)
+ / (27.0 * n**3 * (n + 1.0) ** 3)
)
* 32.0
/ 3.0
)
- result = pp2 + nf * pp2_nf + nf ** 2 * pf2_nfnf
+ result = pp2 + nf * pp2_nf + nf**2 * pf2_nfnf
return result
@@ -196,8 +196,8 @@ def gamma_nsv_2(n, nf: int, sx):
S2 = sx[1]
S3 = sx[2]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
- E2 = 2.0 * (-S1 / n ** 3 + (zeta2 - S2) / n ** 2 - (S3 - zeta3) / n)
+ E1 = S1 / n**2 + (S2 - zeta2) / n
+ E2 = 2.0 * (-S1 / n**3 + (zeta2 - S2) / n**2 - (S3 - zeta3) / n)
B11 = -(S1 + 1.0 / (n + 1.0)) / (n + 1.0)
B12 = -(S1 + 1.0 / (n + 1.0) + 1.0 / (n + 2.0)) / (n + 2.0)
@@ -214,9 +214,9 @@ def gamma_nsv_2(n, nf: int, sx):
- 43.12 * (1.0 / (n + 2.0) - 1.0 / (n + 3.0))
+ 44.51 * (1.0 / (n + 1.0) - 1.0 / (n + 2.0))
+ 151.49 * (1.0 / n - 1.0 / (n + 1.0))
- - 178.04 / n ** 2
- + 6.892 * 2.0 / n ** 3
- - 40.0 / 27.0 * (-2.0 * 6.0 / n ** 4 - 24.0 / n ** 5)
+ - 178.04 / n**2
+ + 6.892 * 2.0 / n**3
+ - 40.0 / 27.0 * (-2.0 * 6.0 / n**4 - 24.0 / n**5)
- 173.1 * E1
+ 46.18 * E2
)
@@ -251,12 +251,12 @@ def gamma_ps_2(n, nf: int, sx):
S2 = sx[1]
S3 = sx[2]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
+ E1 = S1 / n**2 + (S2 - zeta2) / n
E11 = (S1 + 1.0 / (n + 1.0)) / (n + 1.0) ** 2 + (
S2 + 1.0 / (n + 1.0) ** 2 - zeta2
) / (n + 1.0)
B21 = ((S1 + 1.0 / (n + 1.0)) ** 2 + S2 + 1.0 / (n + 1.0) ** 2) / (n + 1.0)
- B3 = -(S1 ** 3 + 3.0 * S1 * S2 + 2.0 * S3) / n
+ B3 = -(S1**3 + 3.0 * S1 * S2 + 2.0 * S3) / n
B31 = -(
(S1 + 1.0 / (n + 1.0)) ** 3
+ 3.0 * (S1 + 1.0 / (n + 1.0)) * (S2 + 1.0 / (n + 1.0) ** 2)
@@ -264,14 +264,14 @@ def gamma_ps_2(n, nf: int, sx):
) / (n + 1.0)
ps1 = (
- -3584.0 / 27.0 * (-1.0 / (n - 1.0) ** 2 + 1.0 / n ** 2)
+ -3584.0 / 27.0 * (-1.0 / (n - 1.0) ** 2 + 1.0 / n**2)
- 506.0 * (1.0 / (n - 1.0) - 1.0 / n)
- + 160.0 / 27.0 * (24.0 / n ** 5 - 24.0 / (n + 1.0) ** 5)
- - 400.0 / 9.0 * (-6.0 / n ** 4 + 6.0 / (n + 1.0) ** 4)
- + 131.4 * (2.0 / n ** 3 - 2.0 / (n + 1.0) ** 3)
- - 661.6 * (-1.0 / n ** 2 + 1.0 / (n + 1.0) ** 2)
+ + 160.0 / 27.0 * (24.0 / n**5 - 24.0 / (n + 1.0) ** 5)
+ - 400.0 / 9.0 * (-6.0 / n**4 + 6.0 / (n + 1.0) ** 4)
+ + 131.4 * (2.0 / n**3 - 2.0 / (n + 1.0) ** 3)
+ - 661.6 * (-1.0 / n**2 + 1.0 / (n + 1.0) ** 2)
- 5.926 * (B3 - B31)
- - 9.751 * ((S1 ** 2 + S2) / n - B21)
+ - 9.751 * ((S1**2 + S2) / n - B21)
- 72.11 * (-S1 / n + (S1 + 1.0 / (n + 1.0)) / (n + 1.0))
+ 177.4 * (1.0 / n - 1.0 / (n + 1.0))
+ 392.9 * (1.0 / (n + 1.0) - 1.0 / (n + 2.0))
@@ -281,10 +281,10 @@ def gamma_ps_2(n, nf: int, sx):
ps2 = (
256.0 / 81.0 * (1.0 / (n - 1.0) - 1.0 / n)
- + 32.0 / 27.0 * (-6.0 / n ** 4 + 6.0 / (n + 1.0) ** 4)
- + 17.89 * (2.0 / n ** 3 - 2.0 / (n + 1.0) ** 3)
- + 61.75 * (-1.0 / n ** 2 + 1.0 / (n + 1.0) ** 2)
- + 1.778 * ((S1 ** 2 + S2) / n - B21)
+ + 32.0 / 27.0 * (-6.0 / n**4 + 6.0 / (n + 1.0) ** 4)
+ + 17.89 * (2.0 / n**3 - 2.0 / (n + 1.0) ** 3)
+ + 61.75 * (-1.0 / n**2 + 1.0 / (n + 1.0) ** 2)
+ + 1.778 * ((S1**2 + S2) / n - B21)
+ 5.944 * (-S1 / n + (S1 + 1.0 / (n + 1.0)) / (n + 1.0))
+ 100.1 * (1.0 / n - 1.0 / (n + 1.0))
- 125.2 * (1.0 / (n + 1.0) - 1.0 / (n + 2.0))
@@ -293,7 +293,7 @@ def gamma_ps_2(n, nf: int, sx):
- 1.889 * (E1 - E11)
)
- result = nf * ps1 + nf ** 2 * ps2
+ result = nf * ps1 + nf**2 * ps2
return result
@@ -324,21 +324,21 @@ def gamma_qg_2(n, nf: int, sx):
S3 = sx[2]
S4 = sx[3]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
- E2 = 2.0 * (-S1 / n ** 3 + (zeta2 - S2) / n ** 2 - (S3 - zeta3) / n)
- B3 = -(S1 ** 3 + 3.0 * S1 * S2 + 2.0 * S3) / n
- B4 = (S1 ** 4 + 6.0 * S1 ** 2 * S2 + 8.0 * S1 * S3 + 3.0 * S2 ** 2 + 6.0 * S4) / n
+ E1 = S1 / n**2 + (S2 - zeta2) / n
+ E2 = 2.0 * (-S1 / n**3 + (zeta2 - S2) / n**2 - (S3 - zeta3) / n)
+ B3 = -(S1**3 + 3.0 * S1 * S2 + 2.0 * S3) / n
+ B4 = (S1**4 + 6.0 * S1**2 * S2 + 8.0 * S1 * S3 + 3.0 * S2**2 + 6.0 * S4) / n
qg1 = (
+896.0 / 3.0 / (n - 1.0) ** 2
- 1268.3 / (n - 1.0)
- + 536.0 / 27.0 * 24.0 / n ** 5
- + 44.0 / 3.0 * 6.0 / n ** 4
- + 881.5 * 2.0 / n ** 3
- - 424.9 / n ** 2
+ + 536.0 / 27.0 * 24.0 / n**5
+ + 44.0 / 3.0 * 6.0 / n**4
+ + 881.5 * 2.0 / n**3
+ - 424.9 / n**2
+ 100.0 / 27.0 * B4
- 70.0 / 9.0 * B3
- - 120.5 * (S1 ** 2 + S2) / n
+ - 120.5 * (S1**2 + S2) / n
- 104.42 * S1 / n
+ 2522.0 / n
- 3316.0 / (n + 1.0)
@@ -350,12 +350,12 @@ def gamma_qg_2(n, nf: int, sx):
qg2 = (
1112.0 / 243.0 / (n - 1.0)
- - 16.0 / 9.0 * 24.0 / n ** 5
- + 376.0 / 27.0 * 6.0 / n ** 4
- - 90.8 * 2.0 / n ** 3
- + 254.0 / n ** 2
+ - 16.0 / 9.0 * 24.0 / n**5
+ + 376.0 / 27.0 * 6.0 / n**4
+ - 90.8 * 2.0 / n**3
+ + 254.0 / n**2
+ 20.0 / 27.0 * B3
- + 200.0 / 27.0 * (S1 ** 2 + S2) / n
+ + 200.0 / 27.0 * (S1**2 + S2) / n
+ 5.496 * S1 / n
- 252.0 / n
+ 158.0 / (n + 1.0)
@@ -367,7 +367,7 @@ def gamma_qg_2(n, nf: int, sx):
- 11.70 * 6.0 / (n + 1.0) ** 4
)
- result = nf * qg1 + nf ** 2 * qg2
+ result = nf * qg1 + nf**2 * qg2
return result
@@ -398,22 +398,22 @@ def gamma_gq_2(n, nf: int, sx):
S3 = sx[2]
S4 = sx[3]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
- E2 = 2.0 * (-S1 / n ** 3 + (zeta2 - S2) / n ** 2 - (S3 - zeta3) / n)
+ E1 = S1 / n**2 + (S2 - zeta2) / n
+ E2 = 2.0 * (-S1 / n**3 + (zeta2 - S2) / n**2 - (S3 - zeta3) / n)
B21 = ((S1 + 1.0 / (n + 1.0)) ** 2 + S2 + 1.0 / (n + 1.0) ** 2) / (n + 1.0)
- B3 = -(S1 ** 3 + 3.0 * S1 * S2 + 2.0 * S3) / n
- B4 = (S1 ** 4 + 6.0 * S1 ** 2 * S2 + 8.0 * S1 * S3 + 3.0 * S2 ** 2 + 6.0 * S4) / n
+ B3 = -(S1**3 + 3.0 * S1 * S2 + 2.0 * S3) / n
+ B4 = (S1**4 + 6.0 * S1**2 * S2 + 8.0 * S1 * S3 + 3.0 * S2**2 + 6.0 * S4) / n
gq0 = (
-1189.3 * 1.0 / (n - 1.0) ** 2
+ 6163.1 / (n - 1.0)
- - 4288.0 / 81.0 * 24.0 / n ** 5
- - 1568.0 / 9.0 * 6.0 / n ** 4
- - 1794.0 * 2.0 / n ** 3
- - 4033.0 * 1.0 / n ** 2
+ - 4288.0 / 81.0 * 24.0 / n**5
+ - 1568.0 / 9.0 * 6.0 / n**4
+ - 1794.0 * 2.0 / n**3
+ - 4033.0 * 1.0 / n**2
+ 400.0 / 81.0 * B4
+ 2200.0 / 27.0 * B3
- + 606.3 * (S1 ** 2 + S2) / n
+ + 606.3 * (S1**2 + S2) / n
- 2193.0 * S1 / n
- 4307.0 / n
+ 489.3 / (n + 1.0)
@@ -426,12 +426,12 @@ def gamma_gq_2(n, nf: int, sx):
gq1 = (
-71.082 / (n - 1.0) ** 2
- 46.41 / (n - 1.0)
- + 128.0 / 27.0 * 24.0 / n ** 5
- - 704 / 81.0 * 6.0 / n ** 4
- + 20.39 * 2.0 / n ** 3
- - 174.8 * 1.0 / n ** 2
+ + 128.0 / 27.0 * 24.0 / n**5
+ - 704 / 81.0 * 6.0 / n**4
+ + 20.39 * 2.0 / n**3
+ - 174.8 * 1.0 / n**2
- 400.0 / 81.0 * B3
- - 68.069 * (S1 ** 2 + S2) / n
+ - 68.069 * (S1**2 + S2) / n
+ 296.7 * S1 / n
- 183.8 / n
+ 33.35 / (n + 1.0)
@@ -450,13 +450,13 @@ def gamma_gq_2(n, nf: int, sx):
)
+ 96.0
* (
- ((S1 - 1.0 / n) ** 2 + S2 - 1.0 / n ** 2) / (n - 1.0)
- - (S1 ** 2 + S2) / n
+ ((S1 - 1.0 / n) ** 2 + S2 - 1.0 / n**2) / (n - 1.0)
+ - (S1**2 + S2) / n
+ 0.5 * B21
)
) / 27.0
- result = gq0 + nf * gq1 + nf ** 2 * gq2
+ result = gq0 + nf * gq1 + nf**2 * gq2
return result
@@ -487,19 +487,19 @@ def gamma_gg_2(n, nf: int, sx):
S2 = sx[1]
S3 = sx[2]
- E1 = S1 / n ** 2 + (S2 - zeta2) / n
+ E1 = S1 / n**2 + (S2 - zeta2) / n
E11 = (S1 + 1.0 / (n + 1.0)) / (n + 1.0) ** 2 + (
S2 + 1.0 / (n + 1.0) ** 2 - zeta2
) / (n + 1.0)
- E2 = 2.0 * (-S1 / n ** 3 + (zeta2 - S2) / n ** 2 - (S3 - zeta3) / n)
+ E2 = 2.0 * (-S1 / n**3 + (zeta2 - S2) / n**2 - (S3 - zeta3) / n)
gg0 = (
-2675.8 / (n - 1.0) ** 2
+ 14214.0 / (n - 1.0)
- - 144.0 * 24.0 / n ** 5
- - 72.0 * 6.0 / n ** 4
- - 7471.0 * 2.0 / n ** 3
- - 274.4 / n ** 2
+ - 144.0 * 24.0 / n**5
+ - 72.0 * 6.0 / n**4
+ - 7471.0 * 2.0 / n**3
+ - 274.4 / n**2
- 20852.0 / n
+ 3968.0 / (n + 1.0)
- 3363.0 / (n + 2.0)
@@ -514,10 +514,10 @@ def gamma_gg_2(n, nf: int, sx):
gg1 = (
-157.27 / (n - 1.0) ** 2
+ 182.96 / (n - 1.0)
- + 512.0 / 27.0 * 24.0 / n ** 5
- - 832.0 / 9.0 * 6.0 / n ** 4
- + 491.3 * 2.0 / n ** 3
- - 1541.0 / n ** 2
+ + 512.0 / 27.0 * 24.0 / n**5
+ - 832.0 / 9.0 * 6.0 / n**4
+ + 491.3 * 2.0 / n**3
+ - 1541.0 / n**2
- 350.2 / n
+ 755.7 / (n + 1.0)
- 713.8 / (n + 2.0)
@@ -531,9 +531,9 @@ def gamma_gg_2(n, nf: int, sx):
gg2 = (
-680.0 / 243.0 / (n - 1.0)
- + 32.0 / 27.0 * 6.0 / n ** 4
- + 9.680 * 2.0 / n ** 3
- + 3.422 / n ** 2
+ + 32.0 / 27.0 * 6.0 / n**4
+ + 9.680 * 2.0 / n**3
+ + 3.422 / n**2
- 13.878 / n
+ 153.4 / (n + 1.0)
- 187.7 / (n + 2.0)
@@ -545,7 +545,7 @@ def gamma_gg_2(n, nf: int, sx):
+ 16.0 / 9.0 * (S1 - 1.0 / n)
)
- result = gg0 + nf * gg1 + nf ** 2 * gg2
+ result = gg0 + nf * gg1 + nf**2 * gg2
return result
diff --git a/src/eko/basis_rotation.py b/src/eko/basis_rotation.py
index 08cbf66e4..9647bd16c 100644
--- a/src/eko/basis_rotation.py
+++ b/src/eko/basis_rotation.py
@@ -61,8 +61,8 @@
evol_basis_pids = tuple(
[22, 100, 21, 200]
- + [200 + n ** 2 - 1 for n in range(2, 6 + 1)]
- + [100 + n ** 2 - 1 for n in range(2, 6 + 1)]
+ + [200 + n**2 - 1 for n in range(2, 6 + 1)]
+ + [100 + n**2 - 1 for n in range(2, 6 + 1)]
)
"""|pid| representation of :data:`evol_basis`."""
diff --git a/src/eko/evolution_operator/__init__.py b/src/eko/evolution_operator/__init__.py
index cbf4b3d91..f42b972b6 100644
--- a/src/eko/evolution_operator/__init__.py
+++ b/src/eko/evolution_operator/__init__.py
@@ -51,7 +51,7 @@ def gamma_ns_fact(order, mode, n, nf, L):
if order >= 2:
gamma_ns[2] -= (
2 * beta.beta(0, nf) * gamma_ns[1] * L
- + (beta.beta(1, nf) * L - beta.beta(0, nf) ** 2 * L ** 2) * gamma_ns[0]
+ + (beta.beta(1, nf) * L - beta.beta(0, nf) ** 2 * L**2) * gamma_ns[0]
)
if order >= 1:
gamma_ns[1] -= beta.beta(0, nf) * gamma_ns[0] * L
@@ -90,7 +90,7 @@ def gamma_singlet_fact(order, n, nf, L):
if order >= 2:
gamma_singlet[2] -= (
2 * beta.beta(0, nf) * gamma_singlet[1] * L
- + (beta.beta(1, nf) * L - beta.beta(0, nf) ** 2 * L ** 2) * gamma_singlet[0]
+ + (beta.beta(1, nf) * L - beta.beta(0, nf) ** 2 * L**2) * gamma_singlet[0]
)
if order >= 1:
gamma_singlet[1] -= beta.beta(0, nf) * gamma_singlet[0] * L
diff --git a/src/eko/evolution_operator/flavors.py b/src/eko/evolution_operator/flavors.py
index 525cc844b..508c09283 100644
--- a/src/eko/evolution_operator/flavors.py
+++ b/src/eko/evolution_operator/flavors.py
@@ -141,11 +141,11 @@ def rotate_matching(nf, inverse=False):
l = {"g.g": 1.0, "ph.ph": 1.0}
# already active distributions
for k in range(2, nf): # nf is the upper, so excluded
- n = k ** 2 - 1
+ n = k**2 - 1
l[f"V{n}.V{n}"] = 1.0
l[f"T{n}.T{n}"] = 1.0
# the new contributions
- n = nf ** 2 - 1 # nf is pointing upwards
+ n = nf**2 - 1 # nf is pointing upwards
q = quark_names[nf - 1]
for (tot, oth, qpm) in (("S", f"T{n}", f"{q}+"), ("V", f"V{n}", f"{q}-")):
if inverse:
diff --git a/src/eko/evolution_operator/physical.py b/src/eko/evolution_operator/physical.py
index a07bbe62f..91548eac7 100644
--- a/src/eko/evolution_operator/physical.py
+++ b/src/eko/evolution_operator/physical.py
@@ -56,7 +56,7 @@ def ad_to_evol_map(cls, op_members, nf, q2_final, intrinsic_range):
}
# add elements which are already active
for f in range(2, nf + 1):
- n = f ** 2 - 1
+ n = f**2 - 1
m[f"V{n}.V{n}"] = op_members["NS_m"]
m[f"T{n}.T{n}"] = op_members["NS_p"]
# deal with intrinsic heavy quark PDFs
diff --git a/src/eko/gamma.py b/src/eko/gamma.py
index e1f728ac6..14d9d247a 100644
--- a/src/eko/gamma.py
+++ b/src/eko/gamma.py
@@ -19,7 +19,7 @@ def gamma_1(nf):
def gamma_2(nf):
- return 1249.0 - (2216.0 / 27.0 + 160.0 / 3.0 * zeta3) * nf - 140.0 / 81.0 * nf ** 2
+ return 1249.0 - (2216.0 / 27.0 + 160.0 / 3.0 * zeta3) * nf - 140.0 / 81.0 * nf**2
def gamma_3(nf):
@@ -35,8 +35,8 @@ def gamma_3(nf):
+ 18400.0 * zeta5 / 9.0
)
* nf
- + (5242.0 / 243.0 + 800.0 * zeta3 / 9.0 - 160.0 * zeta4 / 3.0) * nf ** 2
- + (332.0 / 243.0 + 64.0 * zeta3 / 27.0) * nf ** 3
+ + (5242.0 / 243.0 + 800.0 * zeta3 / 9.0 - 160.0 * zeta4 / 3.0) * nf**2
+ + (332.0 / 243.0 + 64.0 * zeta3 / 27.0) * nf**3
)
diff --git a/src/eko/kernels/evolution_integrals.py b/src/eko/kernels/evolution_integrals.py
index 2744de807..148990d4f 100644
--- a/src/eko/kernels/evolution_integrals.py
+++ b/src/eko/kernels/evolution_integrals.py
@@ -180,7 +180,7 @@ def j22_exact(a1, a0, nf):
b1 = beta.b(1, nf)
b2 = beta.b(2, nf)
# allow Delta to be complex for nf = 6, the final result will be real
- Delta = np.sqrt(complex(4 * b2 - b1 ** 2))
+ Delta = np.sqrt(complex(4 * b2 - b1**2))
delta = np.arctan((b1 + 2 * a1 * b2) / Delta) - np.arctan(
(b1 + 2 * a0 * b2) / Delta
)
@@ -218,7 +218,7 @@ def j12_exact(a1, a0, nf):
b1 = beta.b(1, nf)
b2 = beta.b(2, nf)
# allow Delta to be complex for nf = 6, the final result will be real
- Delta = np.sqrt(complex(4 * b2 - b1 ** 2))
+ Delta = np.sqrt(complex(4 * b2 - b1**2))
delta = np.arctan((b1 + 2 * a1 * b2) / Delta) - np.arctan(
(b1 + 2 * a0 * b2) / Delta
)
@@ -278,7 +278,7 @@ def j22_expanded(a1, a0, nf):
j22_exp : float
integral
"""
- return 1 / (2 * beta.beta(0, nf)) * (a1 ** 2 - a0 ** 2)
+ return 1 / (2 * beta.beta(0, nf)) * (a1**2 - a0**2)
@nb.njit("f8(f8,f8,u1)", cache=True)
@@ -305,7 +305,7 @@ def j12_expanded(a1, a0, nf):
integral
"""
b1 = beta.b(1, nf)
- return 1 / beta.beta(0, nf) * (a1 - a0 - b1 / 2 * (a1 ** 2 - a0 ** 2))
+ return 1 / beta.beta(0, nf) * (a1 - a0 - b1 / 2 * (a1**2 - a0**2))
@nb.njit("f8(f8,f8,u1)", cache=True)
diff --git a/src/eko/kernels/non_singlet.py b/src/eko/kernels/non_singlet.py
index a0c36e7ad..a0750f9e2 100644
--- a/src/eko/kernels/non_singlet.py
+++ b/src/eko/kernels/non_singlet.py
@@ -247,7 +247,7 @@ def nnlo_truncated(gamma_ns, a1, a0, nf, ev_op_iterations):
# U1 = R1
U1 = 1.0 / beta0 * (gamma_ns[1] - b1 * gamma_ns[0])
R2 = gamma_ns[2] / beta0 - b1 * U1 - b2 * gamma_ns[0] / beta0
- U2 = 0.5 * (U1 ** 2 + R2)
+ U2 = 0.5 * (U1**2 + R2)
e = 1.0
al = a_steps[0]
for ah in a_steps[1:]:
@@ -255,9 +255,9 @@ def nnlo_truncated(gamma_ns, a1, a0, nf, ev_op_iterations):
e *= e0 * (
1.0
+ U1 * (ah - al)
- + U2 * ah ** 2
- - ah * al * U1 ** 2
- + al ** 2 * (U1 ** 2 - U2)
+ + U2 * ah**2
+ - ah * al * U1**2
+ + al**2 * (U1**2 - U2)
)
al = ah
return e
@@ -293,12 +293,12 @@ def nnlo_ordered_truncated(gamma_ns, a1, a0, nf, ev_op_iterations):
# U1 = R1
U1 = 1.0 / beta0 * (gamma_ns[1] - b1 * gamma_ns[0])
R2 = gamma_ns[2] / beta0 - b1 * U1 - b2 * gamma_ns[0] / beta0
- U2 = 0.5 * (U1 ** 2 + R2)
+ U2 = 0.5 * (U1**2 + R2)
e = 1.0
al = a_steps[0]
for ah in a_steps[1:]:
e0 = lo_exact(gamma_ns, ah, al, nf)
- e *= e0 * (1.0 + ah * U1 + ah ** 2 * U2) / (1.0 + al * U1 + al ** 2 * U2)
+ e *= e0 * (1.0 + ah * U1 + ah**2 * U2) / (1.0 + al * U1 + al**2 * U2)
al = ah
return e
diff --git a/src/eko/kernels/singlet.py b/src/eko/kernels/singlet.py
index 8ef1a70de..a55fac2c8 100644
--- a/src/eko/kernels/singlet.py
+++ b/src/eko/kernels/singlet.py
@@ -242,18 +242,18 @@ def eko_iterate(gamma_singlet, a1, a0, nf, order, ev_op_iterations):
delta_a = ah - al
if order == 1:
ln = (
- (gamma_singlet[0] * a_half + gamma_singlet[1] * a_half ** 2)
- / (beta0 * a_half ** 2 + beta1 * a_half ** 3)
+ (gamma_singlet[0] * a_half + gamma_singlet[1] * a_half**2)
+ / (beta0 * a_half**2 + beta1 * a_half**3)
* delta_a
)
elif order == 2:
ln = (
(
gamma_singlet[0] * a_half
- + gamma_singlet[1] * a_half ** 2
- + gamma_singlet[2] * a_half ** 3
+ + gamma_singlet[1] * a_half**2
+ + gamma_singlet[2] * a_half**3
)
- / (beta0 * a_half ** 2 + beta1 * a_half ** 3 + beta2 * a_half ** 4)
+ / (beta0 * a_half**2 + beta1 * a_half**3 + beta2 * a_half**4)
* delta_a
)
ek = np.ascontiguousarray(ad.exp_singlet(ln)[0])
@@ -471,9 +471,9 @@ def eko_truncated(gamma_singlet, a1, a0, nf, order, ev_op_iterations):
ek = e0 + ah * u1 @ e0 - al * e0 @ u1
if order >= 2:
ek += (
- +(ah ** 2) * u2 @ e0
+ +(ah**2) * u2 @ e0
- ah * al * u1 @ e0 @ u1
- + al ** 2 * e0 @ (u1 @ u1 - u2)
+ + al**2 * e0 @ (u1 @ u1 - u2)
)
e = ek @ e
al = ah
diff --git a/src/eko/matching_conditions/__init__.py b/src/eko/matching_conditions/__init__.py
index 1a987f39b..be6554a96 100644
--- a/src/eko/matching_conditions/__init__.py
+++ b/src/eko/matching_conditions/__init__.py
@@ -53,7 +53,7 @@ def split_ad_to_evol_map(
# add elements which are already active
for f in range(2, nf + 1):
- n = f ** 2 - 1
+ n = f**2 - 1
m[f"V{n}.V{n}"] = m["V.V"]
m[f"T{n}.T{n}"] = m["V.V"]
diff --git a/src/eko/matching_conditions/nlo.py b/src/eko/matching_conditions/nlo.py
index 4b74da49e..374cf44cd 100644
--- a/src/eko/matching_conditions/nlo.py
+++ b/src/eko/matching_conditions/nlo.py
@@ -34,16 +34,16 @@ def A_hh_1(n, sx, L):
|NLO| heavy-heavy |OME| :math:`A_{HH}^{(1)}`
"""
S1m = sx[0] - 1 / n # harmonics.harmonic_S1(n - 1)
- S2m = sx[1] - 1 / n ** 2 # harmonics.harmonic_S2(n - 1)
- ahh_l = (2 + n - 3 * n ** 2) / (n * (1 + n)) + 4 * S1m
+ S2m = sx[1] - 1 / n**2 # harmonics.harmonic_S2(n - 1)
+ ahh_l = (2 + n - 3 * n**2) / (n * (1 + n)) + 4 * S1m
ahh = 2 * (
2
+ 5 * n
- + n ** 2
- - 6 * n ** 3
- - 2 * n ** 4
- - 2 * n * (-1 - 2 * n + n ** 3) * S1m
- ) / (n * (1 + n)) ** 2 + 4 * (S1m ** 2 + S2m)
+ + n**2
+ - 6 * n**3
+ - 2 * n**4
+ - 2 * n * (-1 - 2 * n + n**3) * S1m
+ ) / (n * (1 + n)) ** 2 + 4 * (S1m**2 + S2m)
return -CF * (ahh_l * L + ahh)
@@ -66,9 +66,9 @@ def A_gh_1(n, L):
|NLO| gluon-heavy |OME| :math:`A_{gH}^{(1)}`
"""
- agh_l1 = (2 + n + n ** 2) / (n * (n ** 2 - 1))
- agh_l0 = (-4 + 2 * n + n ** 2 * (15 + n * (3 + n - n ** 2))) / (
- n * (n ** 2 - 1)
+ agh_l1 = (2 + n + n**2) / (n * (n**2 - 1))
+ agh_l0 = (-4 + 2 * n + n**2 * (15 + n * (3 + n - n**2))) / (
+ n * (n**2 - 1)
) ** 2
return 2 * CF * (agh_l0 + agh_l1 * L)
@@ -92,7 +92,7 @@ def A_hg_1(n, L):
|NLO| heavy-gluon |OME| :math:`A_{Hg}^{S,(1)}`
"""
den = 1.0 / (n * (n + 1) * (2 + n))
- num = 2 * (2 + n + n ** 2)
+ num = 2 * (2 + n + n**2)
return num * den * L
diff --git a/src/eko/matching_conditions/nnlo.py b/src/eko/matching_conditions/nnlo.py
index b320704d8..e7923c377 100644
--- a/src/eko/matching_conditions/nnlo.py
+++ b/src/eko/matching_conditions/nnlo.py
@@ -45,7 +45,7 @@ def A_qq_2_ns(n, sx, L):
S2 = sx[1]
S3 = sx[2]
S1m = S1 - 1 / n # harmonic_S1(n - 1)
- S2m = S2 - 1 / n ** 2 # harmonic_S2(n - 1)
+ S2m = S2 - 1 / n**2 # harmonic_S2(n - 1)
a_qq_2_l0 = (
-224.0 / 27.0 * (S1 - 1.0 / n)
@@ -54,27 +54,27 @@ def A_qq_2_ns(n, sx, L):
+ 73.0 / 18.0
+ 44.0 / 27.0 / n
- 268.0 / 27.0 / (n + 1.0)
- + 8.0 / 3.0 * (-1.0 / n ** 2 + 1.0 / (n + 1.0) ** 2)
- + 20.0 / 9.0 * (S2 - 1.0 / n ** 2 - zeta2 + S2 + 1.0 / (n + 1.0) ** 2 - zeta2)
+ + 8.0 / 3.0 * (-1.0 / n**2 + 1.0 / (n + 1.0) ** 2)
+ + 20.0 / 9.0 * (S2 - 1.0 / n**2 - zeta2 + S2 + 1.0 / (n + 1.0) ** 2 - zeta2)
+ 2.0
/ 3.0
* (
- -2.0 * (S3 - 1.0 / n ** 3 - zeta3)
+ -2.0 * (S3 - 1.0 / n**3 - zeta3)
- 2.0 * (S3 + 1.0 / (n + 1.0) ** 3 - zeta3)
)
)
a_qq_2_l1 = (
2
- * (-12 - 28 * n + 9 * n ** 2 + 34 * n ** 3 - 3 * n ** 4)
+ * (-12 - 28 * n + 9 * n**2 + 34 * n**3 - 3 * n**4)
/ (9 * (n * (n + 1)) ** 2)
+ 80 / 9 * S1m
- 16 / 3 * S2m
)
- a_qq_2_l2 = -2 * ((2 + n - 3 * n ** 2) / (3 * n * (n + 1)) + 4 / 3 * S1m)
+ a_qq_2_l2 = -2 * ((2 + n - 3 * n**2) / (3 * n * (n + 1)) + 4 / 3 * S1m)
return (
- constants.CF * constants.TR * (a_qq_2_l2 * L ** 2 + a_qq_2_l1 * L + a_qq_2_l0)
+ constants.CF * constants.TR * (a_qq_2_l2 * L**2 + a_qq_2_l1 * L + a_qq_2_l0)
)
@@ -100,7 +100,7 @@ def A_hq_2_ps(n, sx, L):
"""
S2 = sx[1]
- F1M = 1.0 / (n - 1.0) * (zeta2 - (S2 - 1.0 / n ** 2))
+ F1M = 1.0 / (n - 1.0) * (zeta2 - (S2 - 1.0 / n**2))
F11 = 1.0 / (n + 1.0) * (zeta2 - (S2 + 1.0 / (n + 1.0) ** 2))
F12 = 1.0 / (n + 2.0) * (zeta2 - (S2 + 1.0 / (n + 1.0) ** 2 + 1.0 / (n + 2.0) ** 2))
F21 = -F11 / (n + 1.0)
@@ -115,18 +115,18 @@ def A_hq_2_ps(n, sx, L):
- 4.0 / 3.0 / n
- 124.0 / 3.0 * 1.0 / (n + 1.0)
+ 1600.0 / 27.0 / (n + 2.0)
- - 4.0 / 3.0 * (-6.0 / n ** 4 - 6.0 / (n + 1.0) ** 4)
- + 2.0 * 2.0 / n ** 3
+ - 4.0 / 3.0 * (-6.0 / n**4 - 6.0 / (n + 1.0) ** 4)
+ + 2.0 * 2.0 / n**3
+ 10.0 * 2.0 / (n + 1.0) ** 3
+ 16.0 / 3.0 * 2.0 / (n + 2.0) ** 3
- - 16.0 * zeta2 * (-1.0 / n ** 2 - 1.0 / (n + 1.0) ** 2)
- + 56.0 / 3.0 / n ** 2
+ - 16.0 * zeta2 * (-1.0 / n**2 - 1.0 / (n + 1.0) ** 2)
+ + 56.0 / 3.0 / n**2
+ 88.0 / 3.0 / (n + 1.0) ** 2
+ 448.0 / 9.0 / (n + 2.0) ** 2
+ 32.0 / 3.0 * F1M
+ 8.0 * ((zeta2 - S2) / n - F11)
- 32.0 / 3.0 * F12
- + 16.0 * (-(zeta2 - S2) / n ** 2 + F21)
+ + 16.0 * (-(zeta2 - S2) / n**2 + F21)
)
a_hq_2_l1 = (
@@ -136,10 +136,10 @@ def A_hq_2_ps(n, sx, L):
/ ((n - 1) * (n + 2) ** 2 * (n * (n + 1)) ** 3)
)
- a_hq_2_l2 = -4 * (2 + n + n ** 2) ** 2 / ((n - 1) * (n + 2) * (n * (n + 1)) ** 2)
+ a_hq_2_l2 = -4 * (2 + n + n**2) ** 2 / ((n - 1) * (n + 2) * (n * (n + 1)) ** 2)
return (
- constants.CF * constants.TR * (a_hq_2_l2 * L ** 2 + a_hq_2_l1 * L + a_hq_2_l0)
+ constants.CF * constants.TR * (a_hq_2_l2 * L**2 + a_hq_2_l1 * L + a_hq_2_l0)
)
@@ -168,7 +168,7 @@ def A_hg_2(n, sx, L):
S2 = sx[1]
S3 = sx[2]
S1m = S1 - 1 / n
- S2m = S2 - 1 / n ** 2
+ S2m = S2 - 1 / n**2
Sp2m = harmonics.harmonic_S2((n - 1) / 2)
Sp2p = harmonics.harmonic_S2(n / 2)
Sm1 = -S1 + harmonics.harmonic_S1(n / 2)
@@ -177,68 +177,68 @@ def A_hg_2(n, sx, L):
Sm21 = (
-5 / 8 * harmonics.zeta3
+ harmonics.zeta2 * (Sm1 - 1 / n + np.log(2))
- + S1 / n ** 2
+ + S1 / n**2
+ harmonics.mellin_g3(n)
)
a_hg_2_l0 = (
-(
3084
- + 192 / n ** 4
- + 1056 / n ** 3
- + 2496 / n ** 2
+ + 192 / n**4
+ + 1056 / n**3
+ + 2496 / n**2
+ 2928 / n
+ 2970 * n
- + 1782 * n ** 2
- + 6 * n ** 3
- - 1194 * n ** 4
- - 1152 * n ** 5
- - 516 * n ** 6
- - 120 * n ** 7
- - 12 * n ** 8
+ + 1782 * n**2
+ + 6 * n**3
+ - 1194 * n**4
+ - 1152 * n**5
+ - 516 * n**6
+ - 120 * n**7
+ - 12 * n**8
)
/ ((n - 1) * ((1 + n) * (2 + n)) ** 4)
+ (
764
- - 16 / n ** 4
- - 80 / n ** 3
- - 100 / n ** 2
+ - 16 / n**4
+ - 80 / n**3
+ - 100 / n**2
+ 3 * 72 / n
- + 208 * n ** 3
- + 3 * (288 * n + 176 * n ** 2 + 16 * n ** 4)
+ + 208 * n**3
+ + 3 * (288 * n + 176 * n**2 + 16 * n**4)
)
/ (3 * (1 + n) ** 4 * (2 + n))
- + 12 * Sm3 * (2 + n + n ** 2) / (n * (1 + n) * (2 + n))
- - 24 * Sm2 * (4 + n - n ** 2) / ((1 + n) * (2 + n)) ** 2
+ + 12 * Sm3 * (2 + n + n**2) / (n * (1 + n) * (2 + n))
+ - 24 * Sm2 * (4 + n - n**2) / ((1 + n) * (2 + n)) ** 2
- S1
* (
48 / n
+ 432
+ 564 * n
- + 324 * n ** 2
- + 138 * n ** 3
- + 48 * n ** 4
- + 6 * n ** 5
+ + 324 * n**2
+ + 138 * n**3
+ + 48 * n**4
+ + 6 * n**5
)
/ ((1 + n) * (2 + n)) ** 3
+ S1
- * (-160 - 32 / n ** 2 - 80 / n + 8 * n * (n - 1))
+ * (-160 - 32 / n**2 - 80 / n + 8 * n * (n - 1))
/ (3 * (1 + n) ** 2 * (2 + n))
- - 6 * S1 ** 2 * (11 + 8 * n + n ** 2 + 2 / n) / ((1 + n) * (2 + n)) ** 2
- + 8 * S1 ** 2 * (2 / (3 * n) + 1) / (n * (2 + n))
+ - 6 * S1**2 * (11 + 8 * n + n**2 + 2 / n) / ((1 + n) * (2 + n)) ** 2
+ + 8 * S1**2 * (2 / (3 * n) + 1) / (n * (2 + n))
- 2
* S2
- * (63 + 48 / n ** 2 + 54 / n + 39 * n + 63 * n ** 2 + 21 * n ** 3)
+ * (63 + 48 / n**2 + 54 / n + 39 * n + 63 * n**2 + 21 * n**3)
/ ((n - 1) * (1 + n) ** 2 * (2 + n) ** 2)
+ 8
* S2
- * (17 - 2 / n ** 2 - 5 / n + n * (17 + n))
+ * (17 - 2 / n**2 - 5 / n + n * (17 + n))
/ (3 * (1 + n) ** 2 * (2 + n))
+ (1 + 2 / n + n)
/ ((1 + n) * (2 + n))
* (
24 * Sm2 * S1
- + 10 * S1 ** 3 / 9
+ + 10 * S1**3 / 9
+ 46 * S1 * S2 / 3
+ 176 * S3 / 9
- 24 * Sm21
@@ -250,14 +250,14 @@ def A_hg_2(n, sx, L):
* (
+640
+ 2192 * n
- + 2072 * n ** 2
- + 868 * n ** 3
- + 518 * n ** 4
- + 736 * n ** 5
- + 806 * n ** 6
- + 542 * n ** 7
- + 228 * n ** 8
- + 38 * n ** 9
+ + 2072 * n**2
+ + 868 * n**3
+ + 518 * n**4
+ + 736 * n**5
+ + 806 * n**6
+ + 542 * n**7
+ + 228 * n**8
+ + 38 * n**9
)
/ (3 * (n * (n + 1) * (n + 2)) ** 3 * (n - 1))
)
@@ -266,29 +266,29 @@ def A_hg_2(n, sx, L):
2
* (
n
- * (n ** 2 - 1)
+ * (n**2 - 1)
* (n + 2)
* (
4 * (36 + n * (88 + n * (33 + n * (8 + 9 * n)))) * S1m
+ n
* (n + 1)
* (n + 2)
- * (2 + n + n ** 2)
- * (10 * S1m ** 2 - 9 * Sp2m + 26 * S2m + 9 * Sp2p)
+ * (2 + n + n**2)
+ * (10 * S1m**2 - 9 * Sp2m + 26 * S2m + 9 * Sp2p)
)
)
/ (3 * (n * (n + 1) * (n + 2)) ** 3 * (n - 1))
)
- a_hg_2_l1 += 12 * zeta2 * (-2 + n + n ** 3) / (n * (n ** 2 - 1) * (n + 2))
+ a_hg_2_l1 += 12 * zeta2 * (-2 + n + n**3) / (n * (n**2 - 1) * (n + 2))
a_hg_2_l2 = (
4
- * (2 + n + n ** 2)
- * (2 * (-11 + n + n ** 2) * (1 + n + n ** 2) / (n - 1))
+ * (2 + n + n**2)
+ * (2 * (-11 + n + n**2) * (1 + n + n**2) / (n - 1))
/ (3 * (n * (n + 1) * (n + 2)) ** 2)
- ) + 20 * (2 + n + n ** 2) * S1 / (3 * n * (n + 1) * (n + 2))
+ ) + 20 * (2 + n + n**2) * S1 / (3 * n * (n + 1) * (n + 2))
- return a_hg_2_l2 * L ** 2 + a_hg_2_l1 * L + a_hg_2_l0
+ return a_hg_2_l2 * L**2 + a_hg_2_l1 * L + a_hg_2_l0
@nb.njit("c16(c16,c16[:],f8)", cache=True)
@@ -315,11 +315,11 @@ def A_gq_2(n, sx, L):
S2 = sx[1]
S1m = S1 - 1 / n # harmonic_S1(n - 1)
- B2M = ((S1 - 1.0 / n) ** 2 + S2 - 1.0 / n ** 2) / (n - 1.0)
+ B2M = ((S1 - 1.0 / n) ** 2 + S2 - 1.0 / n**2) / (n - 1.0)
B21 = ((S1 + 1.0 / (n + 1.0)) ** 2 + S2 + 1.0 / (n + 1.0) ** 2) / (n + 1.0)
a_gq_2_l0 = (
- 4.0 / 3.0 * (2.0 * B2M - 2.0 * (S1 ** 2 + S2) / n + B21)
+ 4.0 / 3.0 * (2.0 * B2M - 2.0 * (S1**2 + S2) / n + B21)
+ 8.0
/ 9.0
* (
@@ -332,14 +332,14 @@ def A_gq_2(n, sx, L):
a_gq_2_l1 = -(
-96
- + 16 * n * (7 + n * (21 + 10 * n + 8 * n ** 2))
- - 48 * n * (1 + n) * (2 + n + n ** 2) * S1m
+ + 16 * n * (7 + n * (21 + 10 * n + 8 * n**2))
+ - 48 * n * (1 + n) * (2 + n + n**2) * S1m
) / (9 * (n - 1) * (n * (1 + n)) ** 2)
- a_gq_2_l2 = 8 * (2 + n + n ** 2) / (3 * n * (n ** 2 - 1))
+ a_gq_2_l2 = 8 * (2 + n + n**2) / (3 * n * (n**2 - 1))
return (
- constants.CF * constants.TR * (a_gq_2_l2 * L ** 2 + a_gq_2_l1 * L + a_gq_2_l0)
+ constants.CF * constants.TR * (a_gq_2_l2 * L**2 + a_gq_2_l1 * L + a_gq_2_l0)
)
@@ -366,9 +366,9 @@ def A_gg_2(n, sx, L):
S1 = sx[0]
S1m = S1 - 1 / n # harmonic_S1(n - 1)
- D1 = -1.0 / n ** 2
+ D1 = -1.0 / n**2
D11 = -1.0 / (n + 1.0) ** 2
- D2 = 2.0 / n ** 3
+ D2 = 2.0 / n**3
D21 = 2.0 / (n + 1.0) ** 3
a_gg_2f = (
@@ -377,7 +377,7 @@ def A_gg_2(n, sx, L):
+ 80.0 / n
- 48.0 / (n + 1.0)
- 24.0 / (n + 2.0)
- + 4.0 / 3.0 * (-6.0 / n ** 4 - 6.0 / (n + 1.0) ** 4)
+ + 4.0 / 3.0 * (-6.0 / n**4 - 6.0 / (n + 1.0) ** 4)
+ 6.0 * D2
+ 10.0 * D21
+ 32.0 * D1
@@ -403,15 +403,15 @@ def A_gg_2(n, sx, L):
(
8
+ 2 * n
- - 34 * n ** 2
- - 72 * n ** 3
- - 77 * n ** 4
- - 37 * n ** 5
- - 19 * n ** 6
- - 11 * n ** 7
- - 4 * n ** 8
+ - 34 * n**2
+ - 72 * n**3
+ - 77 * n**4
+ - 37 * n**5
+ - 19 * n**6
+ - 11 * n**7
+ - 4 * n**8
)
- / ((n * (n + 1)) ** 3 * (-2 + n + n ** 2))
+ / ((n * (n + 1)) ** 3 * (-2 + n + n**2))
+ 5 * S1m
)
)
@@ -421,13 +421,13 @@ def A_gg_2(n, sx, L):
/ 9
* (
1
- + 6 * (2 + n + n ** 2) ** 2 / ((n * (n + 1)) ** 2 * (-2 + n + n ** 2))
- - 9 * (-4 - 3 * n + n ** 3) / (n * (n + 1) * (-2 + n + n ** 2))
+ + 6 * (2 + n + n**2) ** 2 / ((n * (n + 1)) ** 2 * (-2 + n + n**2))
+ - 9 * (-4 - 3 * n + n**3) / (n * (n + 1) * (-2 + n + n**2))
)
- 4 * S1m
)
- return a_gg_2_l2 * L ** 2 + a_gg_2_l1 * L + a_gg_2_l0
+ return a_gg_2_l2 * L**2 + a_gg_2_l1 * L + a_gg_2_l0
@nb.njit("c16[:,:](c16,c16[:],f8,b1)", cache=True)
diff --git a/src/eko/matching_conditions/operator_matrix_element.py b/src/eko/matching_conditions/operator_matrix_element.py
index 47205930e..708ca218e 100644
--- a/src/eko/matching_conditions/operator_matrix_element.py
+++ b/src/eko/matching_conditions/operator_matrix_element.py
@@ -130,7 +130,7 @@ def build_ome(A, order, a_s, backward_method):
if order >= 1:
ome -= a_s * A[0]
if order >= 2:
- ome += a_s ** 2 * (
+ ome += a_s**2 * (
-A[1] + np.ascontiguousarray(A[0]) @ np.ascontiguousarray(A[0])
)
else:
@@ -138,7 +138,7 @@ def build_ome(A, order, a_s, backward_method):
if order >= 1:
ome += a_s * A[0]
if order >= 2:
- ome += a_s ** 2 * A[1]
+ ome += a_s**2 * A[1]
# need inverse exact ? so add the missing pieces
if backward_method == "exact":
ome = np.linalg.inv(ome)
diff --git a/src/eko/msbar_masses.py b/src/eko/msbar_masses.py
index fdcc2cbe5..d9ef3203e 100644
--- a/src/eko/msbar_masses.py
+++ b/src/eko/msbar_masses.py
@@ -46,8 +46,8 @@ def msbar_ker_exact(a0, a1, order, nf):
# quad ker
def integrand(a, b_vec, g_vec):
# minus sign goes away
- fgamma = np.sum([a ** k * b for k, b in enumerate(g_vec)])
- fbeta = a * np.sum([a ** k * b for k, b in enumerate(b_vec)])
+ fgamma = np.sum([a**k * b for k, b in enumerate(g_vec)])
+ fbeta = a * np.sum([a**k * b for k, b in enumerate(b_vec)])
return fgamma / fbeta
res = integrate.quad(
@@ -105,9 +105,9 @@ def msbar_ker_expanded(a0, a1, order, nf):
if order >= 2:
b2 = b(2, nf)
c2 = gamma(2, nf) / b0
- r = (c2 - c1 * b1 - b2 * c0 + b1 ** 2 * c0 + (c1 - b1 * c0) ** 2) / 2.0
- num += a1 ** 2 * r
- den += a0 ** 2 * r
+ r = (c2 - c1 * b1 - b2 * c0 + b1**2 * c0 + (c1 - b1 * c0) ** 2) / 2.0
+ num += a1**2 * r
+ den += a0**2 * r
return ev_mass * num / den
@@ -224,7 +224,7 @@ def rge(m2, q2m_ref, strong_coupling, fact_to_ren, nf_ref):
ev_mass *= msbar_ker_dispatcher(
q2_final, q2_init, strong_coupling, fact_to_ren, n
)
- return m2_ref * ev_mass ** 2
+ return m2_ref * ev_mass**2
def compute_msbar_mass(theory_card):
diff --git a/src/eko/strong_coupling.py b/src/eko/strong_coupling.py
index 1109a5273..4676f50d5 100644
--- a/src/eko/strong_coupling.py
+++ b/src/eko/strong_coupling.py
@@ -77,7 +77,7 @@ def as_expanded(order, as_ref, nf, scale_from, scale_to):
b2 = beta2 / beta0
res = as_LO * (
1.0
- + as_LO * (as_LO - as_ref) * (b2 - b1 ** 2)
+ + as_LO * (as_LO - as_ref) * (b2 - b1**2)
+ as_NLO * b1 * np.log(as_NLO / as_ref)
)
@@ -213,7 +213,7 @@ def from_dict(cls, theory_card, masses=None):
[theory_card[f"m{q}"] / fact_to_ren for q in heavy_flavors], 2
)
else:
- masses = masses / fact_to_ren ** 2
+ masses = masses / fact_to_ren**2
thresholds_ratios = np.power(
[theory_card[f"k{q}Thr"] for q in heavy_flavors], 2
)
@@ -270,7 +270,7 @@ def compute_exact(self, as_ref, nf, scale_from, scale_to):
b_vec.append(b2)
# integration kernel
def rge(_t, a, b_vec):
- return -(a ** 2) * np.sum([a ** k * b for k, b in enumerate(b_vec)])
+ return -(a**2) * np.sum([a**k * b for k, b in enumerate(b_vec)])
# let scipy solve
res = scipy.integrate.solve_ivp(
@@ -367,7 +367,7 @@ def a_s(
# shift
for n in range(1, self.order + 1):
for l in range(n + 1):
- fact += new_as ** n * L ** l * m_coeffs[n, l]
+ fact += new_as**n * L**l * m_coeffs[n, l]
# shift
new_as *= fact
final_as = new_as
diff --git a/src/eko/version.py b/src/eko/version.py
index 6c8e6b979..f09cc807b 100644
--- a/src/eko/version.py
+++ b/src/eko/version.py
@@ -1 +1,2 @@
+# -*- coding: utf-8 -*-
__version__ = "0.0.0"
diff --git a/src/ekomark/__init__.py b/src/ekomark/__init__.py
index bd7a64b44..759c15142 100644
--- a/src/ekomark/__init__.py
+++ b/src/ekomark/__init__.py
@@ -1,8 +1,10 @@
+# -*- coding: utf-8 -*-
"""
Additional package to benchmark eko.
"""
from eko import basis_rotation as br
+
def pdfname(pid_or_name):
"""Return pdf name"""
if isinstance(pid_or_name, int):
diff --git a/src/ekomark/benchmark/__init__.py b/src/ekomark/benchmark/__init__.py
index 40a96afc6..e69de29bb 100644
--- a/src/ekomark/benchmark/__init__.py
+++ b/src/ekomark/benchmark/__init__.py
@@ -1 +0,0 @@
-# -*- coding: utf-8 -*-
diff --git a/src/ekomark/benchmark/external/__init__.py b/src/ekomark/benchmark/external/__init__.py
index 40a96afc6..e69de29bb 100644
--- a/src/ekomark/benchmark/external/__init__.py
+++ b/src/ekomark/benchmark/external/__init__.py
@@ -1 +0,0 @@
-# -*- coding: utf-8 -*-
diff --git a/src/ekomark/data/__init__.py b/src/ekomark/data/__init__.py
index 40a96afc6..e69de29bb 100644
--- a/src/ekomark/data/__init__.py
+++ b/src/ekomark/data/__init__.py
@@ -1 +0,0 @@
-# -*- coding: utf-8 -*-
diff --git a/src/ekomark/navigator/__init__.py b/src/ekomark/navigator/__init__.py
index 5e4e4b863..d9befee26 100755
--- a/src/ekomark/navigator/__init__.py
+++ b/src/ekomark/navigator/__init__.py
@@ -2,9 +2,9 @@
"""
ekomark specialization of the navigator
"""
+from banana import cfg as banana_cfg
from banana import navigator as bnav
-from banana import cfg as banana_cfg
from . import navigator
diff --git a/src/ekomark/navigator/navigator.py b/src/ekomark/navigator/navigator.py
index b489954f3..a817bb632 100644
--- a/src/ekomark/navigator/navigator.py
+++ b/src/ekomark/navigator/navigator.py
@@ -4,10 +4,9 @@
import matplotlib.pyplot as plt
import pandas as pd
+from banana import cfg as banana_cfg
from banana import navigator as bnav
from banana.data import dfdict
-from banana import cfg as banana_cfg
-
from matplotlib.backends.backend_pdf import PdfPages
from eko import basis_rotation as br
diff --git a/tests/benchmark_msbar_evolution.py b/tests/benchmark_msbar_evolution.py
index e7b861aca..c42ee6bc0 100644
--- a/tests/benchmark_msbar_evolution.py
+++ b/tests/benchmark_msbar_evolution.py
@@ -18,7 +18,7 @@ class BenchmarkMSbar:
def benchmark_APFEL_msbar_evolution(self):
Q2s = np.power([1, 96, 150], 2)
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
thresholds_ratios = np.power((1.0, 1.0, 1.0), 2)
Q2m = np.power([2.0, 4.5, 175], 2)
m2 = np.power((1.4, 4.5, 175), 2)
diff --git a/tests/benchmark_strong_coupling.py b/tests/benchmark_strong_coupling.py
index 01813a5c7..523239990 100644
--- a/tests/benchmark_strong_coupling.py
+++ b/tests/benchmark_strong_coupling.py
@@ -73,7 +73,7 @@ def benchmark_LHA_paper(self):
def benchmark_APFEL_ffns(self):
Q2s = [1e1, 1e2, 1e3, 1e4]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
nf = 4
apfel_vals_dict = {
0: np.array(
@@ -138,7 +138,7 @@ def benchmark_APFEL_ffns(self):
def benchmark_pegasus_ffns(self):
Q2s = [1e1, 1e2, 1e3, 1e4]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
nf = 4
pegasus_vals_dict = {
0: np.array(
@@ -208,9 +208,9 @@ def benchmark_pegasus_ffns(self):
)
def benchmark_APFEL_vfns(self):
- Q2s = [1, 2 ** 2, 3 ** 2, 90 ** 2, 100 ** 2]
+ Q2s = [1, 2**2, 3**2, 90**2, 100**2]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
threshold_list = np.power([2, 4, 175], 2)
apfel_vals_dict = {
0: np.array(
@@ -278,19 +278,19 @@ def benchmark_APFEL_vfns(self):
def benchmark_APFEL_vfns_fact_to_ren(self):
Q2s = [
- 1.5 ** 2,
- 2 ** 2,
- 3 ** 2,
- 4 ** 2,
- 70 ** 2,
- 80 ** 2,
- 90 ** 2,
- 100 ** 2,
- 110 ** 2,
- 120 ** 2,
+ 1.5**2,
+ 2**2,
+ 3**2,
+ 4**2,
+ 70**2,
+ 80**2,
+ 90**2,
+ 100**2,
+ 110**2,
+ 120**2,
]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
fact_to_ren_lin_list = [0.567, 2.34]
threshold_list = np.power([2, 2 * 4, 2 * 92], 2)
apfel_vals_dict_list = [
@@ -391,14 +391,14 @@ def benchmark_APFEL_vfns_fact_to_ren(self):
as_VFNS = StrongCoupling(
alphas_ref,
scale_ref,
- 1 / fact_to_ren_lin ** 2 * threshold_list,
+ 1 / fact_to_ren_lin**2 * threshold_list,
(1.0, 1.0, 1.0),
order=order,
method="exact",
)
my_vals = []
for Q2 in Q2s:
- my_vals.append(as_VFNS.a_s(Q2, fact_to_ren_lin ** 2 * Q2))
+ my_vals.append(as_VFNS.a_s(Q2, fact_to_ren_lin**2 * Q2))
# get APFEL numbers - if available else use cache
apfel_vals = apfel_vals_dict[order]
if use_APFEL:
@@ -425,7 +425,7 @@ def benchmark_APFEL_vfns_fact_to_ren(self):
def benchmark_APFEL_vfns_threshold(self):
Q2s = np.power([30, 96, 150], 2)
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
threshold_list = np.power([30, 95, 240], 2)
thresholds_ratios = np.power((2.34, 1.0, 0.5), 2)
apfel_vals_dict = {
@@ -476,7 +476,7 @@ def benchmark_APFEL_vfns_threshold(self):
def benchmark_APFEL_vfns_msbar(self):
Q2s = np.power([30, 96, 150], 2)
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
thresholds_ratios = np.power((1.0, 1.0, 1.0), 2)
Q2m = np.power([2.0, 2.0, 175], 2)
m2 = np.power((1.4, 2.0, 175), 2)
@@ -535,7 +535,7 @@ def benchmark_lhapdf_ffns_lo(self):
"""test FFNS LO towards LHAPDF"""
Q2s = [1, 1e1, 1e2, 1e3, 1e4]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
nf = 4
# collect my values
threshold_holder = thresholds.ThresholdsAtlas.ffns(nf)
@@ -579,7 +579,7 @@ def benchmark_apfel_exact(self):
"""test exact towards APFEL"""
Q2s = [1e1, 1e2, 1e3, 1e4]
alphas_ref = 0.118
- scale_ref = 90 ** 2
+ scale_ref = 90**2
# collect my values
threshold_holder = thresholds.ThresholdsAtlas.ffns(3)
# LHAPDF cache
@@ -646,7 +646,7 @@ def benchmark_lhapdf_exact(self):
"""test exact towards LHAPDF"""
Q2s = [1e1, 1e2, 1e3, 1e4]
alphas_ref = 0.118
- scale_ref = 90 ** 2
+ scale_ref = 90**2
# collect my values
threshold_holder = thresholds.ThresholdsAtlas.ffns(3)
# LHAPDF cache
diff --git a/tests/test_ad_harmonics.py b/tests/test_ad_harmonics.py
index 9dc86b78b..6e48ebf05 100644
--- a/tests/test_ad_harmonics.py
+++ b/tests/test_ad_harmonics.py
@@ -84,7 +84,7 @@ def test_harmonic_Sx():
"""test harmonic sums S_x on real axis"""
# test on real axis
def sx(n, m):
- return np.sum([1 / k ** m for k in range(1, n + 1)])
+ return np.sum([1 / k**m for k in range(1, n + 1)])
ls = [harmonics.harmonic_S1, harmonics.harmonic_S2, harmonics.harmonic_S3]
for k in range(1, 3 + 1):
diff --git a/tests/test_ad_nlo.py b/tests/test_ad_nlo.py
index 2cb0bf1c6..82033d3a7 100644
--- a/tests/test_ad_nlo.py
+++ b/tests/test_ad_nlo.py
@@ -38,8 +38,8 @@ def test_gamma_1():
np.testing.assert_allclose(
ad_nlo.gamma_nsm_1(2, NF),
(
- (34.0 / 27.0 * (-47.0 + 6 * np.pi ** 2) - 16.0 * h.zeta3) * CF
- + (373.0 / 9.0 - 34.0 * np.pi ** 2 / 9.0 + 8.0 * h.zeta3) * CA
+ (34.0 / 27.0 * (-47.0 + 6 * np.pi**2) - 16.0 * h.zeta3) * CF
+ + (373.0 / 9.0 - 34.0 * np.pi**2 / 9.0 + 8.0 * h.zeta3) * CA
- 64.0 * NF / 27.0
)
* CF,
@@ -47,8 +47,8 @@ def test_gamma_1():
np.testing.assert_allclose(
ad_nlo.gamma_nsp_1(3, NF),
(
- (-34487.0 / 432.0 + 86.0 * np.pi ** 2 / 9.0 - 16.0 * h.zeta3) * CF
- + (459.0 / 8.0 - 43.0 * np.pi ** 2 / 9.0 + 8.0 * h.zeta3) * CA
+ (-34487.0 / 432.0 + 86.0 * np.pi**2 / 9.0 - 16.0 * h.zeta3) * CF
+ + (459.0 / 8.0 - 43.0 * np.pi**2 / 9.0 + 8.0 * h.zeta3) * CA
- 415.0 * NF / 108.0
)
* CF,
@@ -59,7 +59,7 @@ def test_gamma_1():
gS1[1, 0],
(
973.0 / 432.0 * CF
- + (2801.0 / 5400.0 - 7.0 * np.pi ** 2 / 9.0) * CA
+ + (2801.0 / 5400.0 - 7.0 * np.pi**2 / 9.0) * CA
+ 61.0 / 54.0 * NF
)
* CF,
@@ -67,7 +67,7 @@ def test_gamma_1():
np.testing.assert_allclose(
gS1[1, 1],
(
- (-79909.0 / 3375.0 + 194.0 * np.pi ** 2 / 45.0 - 8.0 * h.zeta3) * CA ** 2
+ (-79909.0 / 3375.0 + 194.0 * np.pi**2 / 45.0 - 8.0 * h.zeta3) * CA**2
- 967.0 / 270.0 * CA * NF
+ 541.0 / 216.0 * CF * NF
),
diff --git a/tests/test_basis_rotation.py b/tests/test_basis_rotation.py
index 2687874a6..1747c0182 100644
--- a/tests/test_basis_rotation.py
+++ b/tests/test_basis_rotation.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
import numpy as np
from eko import basis_rotation as br
diff --git a/tests/test_beta.py b/tests/test_beta.py
index a8cf1894f..93f7d5116 100644
--- a/tests/test_beta.py
+++ b/tests/test_beta.py
@@ -28,14 +28,14 @@ def test_beta_1():
"""Test second beta function coefficient"""
_flav_test(beta.beta_1)
# from hep-ph/9706430
- np.testing.assert_approx_equal(beta.beta_1(5), 4 ** 2 * 29 / 12)
+ np.testing.assert_approx_equal(beta.beta_1(5), 4**2 * 29 / 12)
def test_beta_2():
"""Test third beta function coefficient"""
_flav_test(beta.beta_2)
# from hep-ph/9706430
- np.testing.assert_approx_equal(beta.beta_2(5), 4 ** 3 * 9769 / 3456)
+ np.testing.assert_approx_equal(beta.beta_2(5), 4**3 * 9769 / 3456)
def test_beta():
diff --git a/tests/test_ev_op_grid.py b/tests/test_ev_op_grid.py
index 938d8d030..37fe0ceb0 100644
--- a/tests/test_ev_op_grid.py
+++ b/tests/test_ev_op_grid.py
@@ -38,7 +38,7 @@ def _get_setup(self, use_FFNS):
"HQ": "POLE",
}
operators_card = {
- "Q2grid": [1, 100 ** 2],
+ "Q2grid": [1, 100**2],
"interpolation_xgrid": [0.1, 1.0],
"interpolation_polynomial_degree": 1,
"interpolation_is_log": True,
@@ -121,7 +121,7 @@ def test_compute_q2grid(self):
def test_grid_computation_VFNS(self):
"""Checks that the grid can be computed"""
opgrid = self._get_operator_grid(False)
- qgrid_check = [3, 5, 200 ** 2]
+ qgrid_check = [3, 5, 200**2]
operators = opgrid.compute(qgrid_check)
assert len(operators) == len(qgrid_check)
diff --git a/tests/test_ev_op_physical.py b/tests/test_ev_op_physical.py
index 36d249c1b..98a7a18a5 100644
--- a/tests/test_ev_op_physical.py
+++ b/tests/test_ev_op_physical.py
@@ -85,7 +85,7 @@ def test_matmul(self):
c = b @ a
assert c.q2_final == b.q2_final
# V, T3 and S can be computed
- assert sorted([str(k) for k in c.op_members.keys()]) == sorted(
+ assert sorted(str(k) for k in c.op_members.keys()) == sorted(
["V.V", "T3.T3", "S.S"]
)
assert c.op_members[member.MemberName("V.V")] == VVh @ VVl
@@ -112,13 +112,13 @@ def test_matmul(self):
)
# check matching conditions
d = b @ mc @ ap
- assert sorted([str(k) for k in d.op_members.keys()]) == sorted(["T3.S"])
+ assert sorted(str(k) for k in d.op_members.keys()) == sorted(["T3.S"])
assert (
d.op_members[member.MemberName("T3.S")]
== T3T3h @ T3S @ SSl + T3T3h @ T3g @ gSl
)
dd = b @ (mc @ ap)
- assert sorted([str(k) for k in dd.op_members.keys()]) == sorted(["T3.S"])
+ assert sorted(str(k) for k in dd.op_members.keys()) == sorted(["T3.S"])
assert (
d.op_members[member.MemberName("T3.S")]
== dd.op_members[member.MemberName("T3.S")]
diff --git a/tests/test_kernels_ei.py b/tests/test_kernels_ei.py
index 50b35a028..ccc0d33e1 100644
--- a/tests/test_kernels_ei.py
+++ b/tests/test_kernels_ei.py
@@ -32,7 +32,7 @@ def test_der_nlo_exp():
a1 = 0.1
delta_a = -1e-6
# 01
- rhs = 1.0 / (beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1 ** 2)
+ rhs = 1.0 / (beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1**2)
lhs = (
ei.j01_expanded(a1 + 0.5 * delta_a, a0, nf)
- ei.j01_expanded(a1 - 0.5 * delta_a, a0, nf)
@@ -54,7 +54,7 @@ def test_der_nlo_exa():
a1 = 0.1
delta_a = -1e-6
# 01
- rhs = 1.0 / (beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1 ** 2)
+ rhs = 1.0 / (beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1**2)
lhs = (
ei.j01_exact(a1 + 0.5 * delta_a, a0, nf)
- ei.j01_exact(a1 - 0.5 * delta_a, a0, nf)
@@ -81,7 +81,7 @@ def test_der_nnlo_exp():
# 02
rhs = 1.0 / (
- beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1 ** 2 + beta.beta(2, nf) * a1 ** 3
+ beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1**2 + beta.beta(2, nf) * a1**3
)
lhs = (
ei.j02_expanded(a1 + 0.5 * delta_a, a0, nf)
@@ -90,25 +90,25 @@ def test_der_nnlo_exp():
toll = (
(-beta.b(1, nf) ** 3 + 2 * beta.b(2, nf) * beta.b(1, nf))
/ beta.beta(0, nf)
- * a1 ** 2
+ * a1**2
)
np.testing.assert_allclose(rhs, lhs, atol=np.abs(toll))
# 12
- rhs = 1.0 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1 ** 2)
+ rhs = 1.0 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1**2)
lhs = (
ei.j12_expanded(a1 + 0.5 * delta_a, a0, nf)
- ei.j12_expanded(a1 - 0.5 * delta_a, a0, nf)
) / delta_a
- toll = (beta.b(1, nf) ** 2 - beta.b(2, nf)) / beta.beta(0, nf) * a1 ** 2
+ toll = (beta.b(1, nf) ** 2 - beta.b(2, nf)) / beta.beta(0, nf) * a1**2
np.testing.assert_allclose(rhs, lhs, atol=np.abs(toll))
# 22
- rhs = a1 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1 ** 2)
+ rhs = a1 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1**2)
lhs = (
ei.j22_expanded(a1 + 0.5 * delta_a, a0, nf)
- ei.j22_expanded(a1 - 0.5 * delta_a, a0, nf)
) / delta_a
np.testing.assert_allclose(
- rhs, lhs, atol=np.abs(beta.b(1, nf) / beta.beta(0, nf) * a1 ** 2)
+ rhs, lhs, atol=np.abs(beta.b(1, nf) / beta.beta(0, nf) * a1**2)
)
@@ -120,7 +120,7 @@ def test_der_nnlo_exa():
delta_a = -1e-6
# 02
rhs = 1.0 / (
- beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1 ** 2 + beta.beta(2, nf) * a1 ** 3
+ beta.beta(0, nf) * a1 + beta.beta(1, nf) * a1**2 + beta.beta(2, nf) * a1**3
)
lhs = (
ei.j02_exact(a1 + 0.5 * delta_a, a0, nf)
@@ -128,14 +128,14 @@ def test_der_nnlo_exa():
) / delta_a
np.testing.assert_allclose(rhs, lhs, atol=np.abs(delta_a)) # in fact O(delta_a^2)
# 12
- rhs = 1.0 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1 ** 2)
+ rhs = 1.0 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1**2)
lhs = (
ei.j12_exact(a1 + 0.5 * delta_a, a0, nf)
- ei.j12_exact(a1 - 0.5 * delta_a, a0, nf)
) / delta_a
np.testing.assert_allclose(rhs, lhs, atol=np.abs(delta_a)) # in fact O(delta_a^2)
# 12
- rhs = a1 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1 ** 2)
+ rhs = a1 / (beta.beta(0, nf) + beta.beta(1, nf) * a1 + beta.beta(2, nf) * a1**2)
lhs = (
ei.j22_exact(a1 + 0.5 * delta_a, a0, nf)
- ei.j22_exact(a1 - 0.5 * delta_a, a0, nf)
diff --git a/tests/test_kernels_ns.py b/tests/test_kernels_ns.py
index 4922b8de1..3f2a7dd9e 100644
--- a/tests/test_kernels_ns.py
+++ b/tests/test_kernels_ns.py
@@ -49,7 +49,7 @@ def test_ode_lo():
delta_a = -1e-6
a0 = 0.3
for a1 in [0.1, 0.2]:
- r = a1 * gamma_ns / (beta.beta(0, nf) * a1 ** 2)
+ r = a1 * gamma_ns / (beta.beta(0, nf) * a1**2)
for method in methods:
rhs = r * ns.dispatcher(0, method, gamma_ns, a1, a0, nf, ev_op_iterations)
lhs = (
@@ -70,8 +70,8 @@ def test_ode_nlo():
delta_a = -1e-6
a0 = 0.3
for a1 in [0.1, 0.2]:
- r = (a1 * gamma_ns[0] + a1 ** 2 * gamma_ns[1]) / (
- beta.beta(0, nf) * a1 ** 2 + beta.beta(1, nf) * a1 ** 3
+ r = (a1 * gamma_ns[0] + a1**2 * gamma_ns[1]) / (
+ beta.beta(0, nf) * a1**2 + beta.beta(1, nf) * a1**3
)
for method in ["iterate-exact"]:
rhs = r * ns.dispatcher(1, method, gamma_ns, a1, a0, nf, ev_op_iterations)
diff --git a/tests/test_matching.py b/tests/test_matching.py
index 434028694..02f1d0d04 100644
--- a/tests/test_matching.py
+++ b/tests/test_matching.py
@@ -49,7 +49,7 @@ def test_split_ad_to_evol_map(self):
"c+.g",
"c-.V",
]
- assert sorted([str(k) for k in a.op_members.keys()]) == sorted(
+ assert sorted(str(k) for k in a.op_members.keys()) == sorted(
[*triv_keys, *keys3]
)
assert_almost_equal(
@@ -58,7 +58,7 @@ def test_split_ad_to_evol_map(self):
)
# # if alpha is zero, nothing non-trivial should happen
b = MatchingCondition.split_ad_to_evol_map(ome, 3, 1, [])
- assert sorted([str(k) for k in b.op_members.keys()]) == sorted(
+ assert sorted(str(k) for k in b.op_members.keys()) == sorted(
[*triv_keys, *keys3]
)
# assert_almost_equal(
@@ -68,7 +68,7 @@ def test_split_ad_to_evol_map(self):
# nf=3 + IC
self.update_intrinsic_OME(ome)
c = MatchingCondition.split_ad_to_evol_map(ome, 3, 1, [4])
- assert sorted([str(k) for k in c.op_members.keys()]) == sorted(
+ assert sorted(str(k) for k in c.op_members.keys()) == sorted(
[*triv_keys, *keys3, "g.c+", "c+.c+", "c-.c-"]
)
assert_almost_equal(
@@ -77,7 +77,7 @@ def test_split_ad_to_evol_map(self):
)
# nf=3 + IB
d = MatchingCondition.split_ad_to_evol_map(ome, 3, 1, [5])
- assert sorted([str(k) for k in d.op_members.keys()]) == sorted(
+ assert sorted(str(k) for k in d.op_members.keys()) == sorted(
[*triv_keys, *keys3, "b+.b+", "b-.b-"]
)
assert_almost_equal(
@@ -86,7 +86,7 @@ def test_split_ad_to_evol_map(self):
)
# nf=4 + IB
d = MatchingCondition.split_ad_to_evol_map(ome, 4, 1, [5])
- assert sorted([str(k) for k in d.op_members.keys()]) == sorted(
+ assert sorted(str(k) for k in d.op_members.keys()) == sorted(
[
*triv_keys,
"T15.T15",
diff --git a/tests/test_matching_nnlo.py b/tests/test_matching_nnlo.py
index 4090949e5..ca7f16c7e 100644
--- a/tests/test_matching_nnlo.py
+++ b/tests/test_matching_nnlo.py
@@ -162,15 +162,15 @@ def test_Hg2_pegasus():
a_hg_2_param = (
-0.006
- + 1.111 * (S1 ** 3 + 3.0 * S1 * S2 + 2.0 * S3) / N
- - 0.400 * (S1 ** 2 + S2) / N
+ + 1.111 * (S1**3 + 3.0 * S1 * S2 + 2.0 * S3) / N
+ - 0.400 * (S1**2 + S2) / N
+ 2.770 * S1 / N
- 24.89 / (N - 1.0)
- 187.8 / N
+ 249.6 / (N + 1.0)
- + 1.556 * 6.0 / N ** 4
- - 3.292 * 2.0 / N ** 3
- + 93.68 * 1.0 / N ** 2
+ + 1.556 * 6.0 / N**4
+ - 3.292 * 2.0 / N**3
+ + 93.68 * 1.0 / N**2
- 146.8 * E2
)
diff --git a/tests/test_strong_coupling.py b/tests/test_strong_coupling.py
index 20ef41af8..a52da8183 100644
--- a/tests/test_strong_coupling.py
+++ b/tests/test_strong_coupling.py
@@ -35,7 +35,7 @@ def test_from_dict(self):
def test_init(self):
# prepare
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
nf = 4
threshold_holder = thresholds.ThresholdsAtlas.ffns(nf)
# create
@@ -125,7 +125,7 @@ def test_ref(self):
(2, 4, 175),
]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
for thresh_setup in thresh_setups:
for order in [0, 1, 2]:
for method in ["exact", "expanded"]:
@@ -150,7 +150,7 @@ def test_exact_LO(self):
(2, 4, 175),
]
alphas_ref = 0.118
- scale_ref = 91.0 ** 2
+ scale_ref = 91.0**2
for thresh_setup in thresh_setups:
# in LO expanded = exact
sc_expanded = StrongCoupling(
From a73ca7d8f930a8240105cf9ce162a58b3ffba398 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Fri, 11 Feb 2022 18:02:00 +0100
Subject: [PATCH 14/16] Update CONTRIBUTING
---
.github/CONTRIBUTING.md | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 8ad6069ba..2e5990548 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -3,7 +3,7 @@
:tada: Thanks, for considering to contribute to EKO!
:pray: For the sake of simplicity we switch below to imperative
-language, however, please read a "Please" infront of everything.
+language, however, please read a "Please" in front of everything.
- :brain: Be reasonable and use common sense when contributing: we
added some points we would like to highlight below
@@ -14,19 +14,18 @@ language, however, please read a "Please" infront of everything.
## Tools
-- [`poetry`](https://github.com/python-poetry/poetry) is the
+- :books: [`poetry`](https://github.com/python-poetry/poetry) is the
dependency manager and packaging back-end of choice for this
- project, refers to official [installation
+ project - see the official [installation
guide](https://python-poetry.org/docs/#installation)
-- [`poery-dynamic-versioning`](https://github.com/mtkennerly/poetry-dynamic-versioning),
+- :hash: [`poery-dynamic-versioning`](https://github.com/mtkennerly/poetry-dynamic-versioning),
is used to update the package version based on VCS status (tags and
commits); note that since the version is dumped in output object,
this is to be used not only for releases, but whenever output is
generated (and intended to be used)
-- [`pre-commit`](https://pre-commit.com/) is used to enforce
+- :parking: [`pre-commit`](https://pre-commit.com/) is used to enforce
automation and standardize the tools for all developers; if you want
- to contribute to this project, please
- [install](https://pre-commit.com/#install) it and \[setup\]
+ to contribute to this project, install it and setup
## Testing
From 2fc11cd28d8618e82d0d355380c8f09036a51904 Mon Sep 17 00:00:00 2001
From: Felix Hekhorn
Date: Fri, 11 Feb 2022 18:14:34 +0100
Subject: [PATCH 15/16] Update Readme
---
README.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 2696bb38e..fabc78bad 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
-EKO is a Python module to solve the DGLAP equations in terms of Evolution Kernel Operators in x-space.
+EKO is a Python module to solve the DGLAP equations in N-space in terms of Evolution Kernel Operators in x-space.
## Installation
EKO is available via PyPI: - so you can simply run
@@ -26,21 +26,21 @@ poetry install
```
To setup `poetry`, and other tools, see [Contribution
-Guidlines](https://github.com/N3PDF/eko/blob/master/.github/CONTRIBUTING.md).
+Guidelines](https://github.com/N3PDF/eko/blob/master/.github/CONTRIBUTING.md).
## Documentation
- The documentation is available here:
- To build the documentation from source install [graphviz](https://www.graphviz.org/) and run in addition to the installation commands
```bash
-pip install -r dev_requirements.txt
-cd doc
-make html
+poe docs
```
## Citation policy
-Please cite our DOI when using our code:
+When using our code please cite
+- our DOI:
+- our paper: [![arXiv](https://img.shields.io/badge/arXiv-2202.02338-b31b1b?labelColor=222222)](https://arxiv.org/abs/2202.02338)
## Contributing
- Your feedback is welcome! If you want to report a (possible) bug or want to ask for a new feature, please raise an issue:
- Please follow our [Code of Conduct](https://github.com/N3PDF/eko/blob/master/.github/CODE_OF_CONDUCT.md) and read the
- [Contribution Guidlines](https://github.com/N3PDF/eko/blob/master/.github/CONTRIBUTING.md)
+ [Contribution Guidelines](https://github.com/N3PDF/eko/blob/master/.github/CONTRIBUTING.md)
From 14da8576500925ba73efc898611d44ee7c7788f9 Mon Sep 17 00:00:00 2001
From: Alessandro Candido
Date: Mon, 14 Feb 2022 15:26:34 +0100
Subject: [PATCH 16/16] Update banana to v0.6
---
poetry.lock | 377 ++++++++++++++++++++++++-------------------------
pyproject.toml | 2 +-
2 files changed, 185 insertions(+), 194 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index 494a92815..27688fccd 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -70,7 +70,7 @@ python-versions = "*"
[[package]]
name = "banana-hep"
-version = "0.5.9"
+version = "0.6.0"
description = "Benchmark QCD physics"
category = "main"
optional = true
@@ -135,7 +135,7 @@ python-versions = ">=3.6.1"
[[package]]
name = "charset-normalizer"
-version = "2.0.10"
+version = "2.0.12"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
@@ -176,11 +176,11 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
[[package]]
name = "coverage"
-version = "6.2"
+version = "6.3.1"
description = "Code coverage measurement for Python"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.dependencies]
tomli = {version = "*", optional = true, markers = "extra == \"toml\""}
@@ -246,14 +246,14 @@ testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-co
[[package]]
name = "fonttools"
-version = "4.28.5"
+version = "4.29.1"
description = "Tools to manipulate font files"
category = "main"
optional = true
python-versions = ">=3.7"
[package.extras]
-all = ["fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "zopfli (>=0.1.4)", "lz4 (>=1.7.4.2)", "matplotlib", "sympy", "skia-pathops (>=0.5.0)", "brotlicffi (>=0.8.0)", "scipy", "brotli (>=1.0.1)", "munkres", "unicodedata2 (>=13.0.0)", "xattr"]
+all = ["fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "zopfli (>=0.1.4)", "lz4 (>=1.7.4.2)", "matplotlib", "sympy", "skia-pathops (>=0.5.0)", "brotlicffi (>=0.8.0)", "scipy", "brotli (>=1.0.1)", "munkres", "unicodedata2 (>=14.0.0)", "xattr"]
graphite = ["lz4 (>=1.7.4.2)"]
interpolatable = ["scipy", "munkres"]
lxml = ["lxml (>=4.0,<5)"]
@@ -262,7 +262,7 @@ plot = ["matplotlib"]
symfont = ["sympy"]
type1 = ["xattr"]
ufo = ["fs (>=2.2.0,<3)"]
-unicode = ["unicodedata2 (>=13.0.0)"]
+unicode = ["unicodedata2 (>=14.0.0)"]
woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"]
[[package]]
@@ -278,11 +278,11 @@ docs = ["sphinx"]
[[package]]
name = "identify"
-version = "2.4.4"
+version = "2.4.9"
description = "File identification library for Python"
category = "dev"
optional = false
-python-versions = ">=3.6.1"
+python-versions = ">=3.7"
[package.extras]
license = ["ukkonen"]
@@ -305,7 +305,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "importlib-metadata"
-version = "4.10.1"
+version = "4.11.0"
description = "Read metadata from Python packages"
category = "main"
optional = false
@@ -514,7 +514,7 @@ python-versions = "*"
[[package]]
name = "numba"
-version = "0.55.0"
+version = "0.55.1"
description = "compiling Python code using LLVM"
category = "main"
optional = false
@@ -545,7 +545,7 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
[[package]]
name = "pandas"
-version = "1.4.0"
+version = "1.4.1"
description = "Powerful data structures for data analysis, time series, and statistics"
category = "main"
optional = true
@@ -634,7 +634,7 @@ python-versions = "*"
[[package]]
name = "pillow"
-version = "9.0.0"
+version = "9.0.1"
description = "Python Imaging Library (Fork)"
category = "main"
optional = true
@@ -642,7 +642,7 @@ python-versions = ">=3.7"
[[package]]
name = "platformdirs"
-version = "2.4.1"
+version = "2.5.0"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "dev"
optional = false
@@ -682,7 +682,7 @@ virtualenv = ">=20.0.8"
[[package]]
name = "prompt-toolkit"
-version = "3.0.24"
+version = "3.0.28"
description = "Library for building powerful interactive command lines in Python"
category = "main"
optional = true
@@ -905,14 +905,14 @@ jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"]
[[package]]
name = "scipy"
-version = "1.7.3"
+version = "1.8.0"
description = "SciPy: Scientific Library for Python"
category = "main"
optional = false
-python-versions = ">=3.7,<3.11"
+python-versions = ">=3.8,<3.11"
[package.dependencies]
-numpy = ">=1.16.5,<1.23.0"
+numpy = ">=1.17.3,<1.25.0"
[[package]]
name = "setuptools-scm"
@@ -1139,7 +1139,7 @@ test = ["pytest"]
[[package]]
name = "typing-extensions"
-version = "4.0.1"
+version = "4.1.1"
description = "Backported and Experimental Type Hints for Python 3.6+"
category = "dev"
optional = false
@@ -1160,7 +1160,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[[package]]
name = "virtualenv"
-version = "20.13.0"
+version = "20.13.1"
description = "Virtual Python Environment builder"
category = "dev"
optional = false
@@ -1219,7 +1219,7 @@ mark = ["banana-hep", "sqlalchemy", "pandas", "matplotlib"]
[metadata]
lock-version = "1.1"
python-versions = "^3.8,<3.11"
-content-hash = "462c26c58f88ce01c16224becfb88fef298a8b81a69d4d85cc461ca00ebd84c0"
+content-hash = "50fc2db62be958b4a328ba0faaef3b7cc5968dd13811d88e432354238e9f2ef7"
[metadata.files]
alabaster = [
@@ -1251,8 +1251,8 @@ backcall = [
{file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"},
]
banana-hep = [
- {file = "banana-hep-0.5.9.tar.gz", hash = "sha256:11978d312277049f6c7d07aac0bf8b5d51dc12529906f509e7a7bef20de94fdb"},
- {file = "banana_hep-0.5.9-py3-none-any.whl", hash = "sha256:22305ebd11f5c62073506789368e9802d936a1500f78f1d52a7991cbee3e7cc2"},
+ {file = "banana-hep-0.6.0.tar.gz", hash = "sha256:83cbf7341a01fdfb6fe410abac776dc3103da1e4f5154deb9d5e8e79ff82284b"},
+ {file = "banana_hep-0.6.0-py3-none-any.whl", hash = "sha256:98f5fac7f874e7f03781c65a1bde9c47b5d4368ab2b66c568f39943fe073a87b"},
]
black = [
{file = "black-21.12b0-py3-none-any.whl", hash = "sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f"},
@@ -1267,8 +1267,8 @@ cfgv = [
{file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"},
]
charset-normalizer = [
- {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"},
- {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"},
+ {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"},
+ {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"},
]
click = [
{file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"},
@@ -1283,53 +1283,47 @@ commonmark = [
{file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"},
]
coverage = [
- {file = "coverage-6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6dbc1536e105adda7a6312c778f15aaabe583b0e9a0b0a324990334fd458c94b"},
- {file = "coverage-6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:174cf9b4bef0db2e8244f82059a5a72bd47e1d40e71c68ab055425172b16b7d0"},
- {file = "coverage-6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:92b8c845527eae547a2a6617d336adc56394050c3ed8a6918683646328fbb6da"},
- {file = "coverage-6.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c7912d1526299cb04c88288e148c6c87c0df600eca76efd99d84396cfe00ef1d"},
- {file = "coverage-6.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d2033d5db1d58ae2d62f095e1aefb6988af65b4b12cb8987af409587cc0739"},
- {file = "coverage-6.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3feac4084291642165c3a0d9eaebedf19ffa505016c4d3db15bfe235718d4971"},
- {file = "coverage-6.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:276651978c94a8c5672ea60a2656e95a3cce2a3f31e9fb2d5ebd4c215d095840"},
- {file = "coverage-6.2-cp310-cp310-win32.whl", hash = "sha256:f506af4f27def639ba45789fa6fde45f9a217da0be05f8910458e4557eed020c"},
- {file = "coverage-6.2-cp310-cp310-win_amd64.whl", hash = "sha256:3f7c17209eef285c86f819ff04a6d4cbee9b33ef05cbcaae4c0b4e8e06b3ec8f"},
- {file = "coverage-6.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:13362889b2d46e8d9f97c421539c97c963e34031ab0cb89e8ca83a10cc71ac76"},
- {file = "coverage-6.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:22e60a3ca5acba37d1d4a2ee66e051f5b0e1b9ac950b5b0cf4aa5366eda41d47"},
- {file = "coverage-6.2-cp311-cp311-win_amd64.whl", hash = "sha256:b637c57fdb8be84e91fac60d9325a66a5981f8086c954ea2772efe28425eaf64"},
- {file = "coverage-6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f467bbb837691ab5a8ca359199d3429a11a01e6dfb3d9dcc676dc035ca93c0a9"},
- {file = "coverage-6.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2641f803ee9f95b1f387f3e8f3bf28d83d9b69a39e9911e5bfee832bea75240d"},
- {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1219d760ccfafc03c0822ae2e06e3b1248a8e6d1a70928966bafc6838d3c9e48"},
- {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9a2b5b52be0a8626fcbffd7e689781bf8c2ac01613e77feda93d96184949a98e"},
- {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8e2c35a4c1f269704e90888e56f794e2d9c0262fb0c1b1c8c4ee44d9b9e77b5d"},
- {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:5d6b09c972ce9200264c35a1d53d43ca55ef61836d9ec60f0d44273a31aa9f17"},
- {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e3db840a4dee542e37e09f30859f1612da90e1c5239a6a2498c473183a50e781"},
- {file = "coverage-6.2-cp36-cp36m-win32.whl", hash = "sha256:4e547122ca2d244f7c090fe3f4b5a5861255ff66b7ab6d98f44a0222aaf8671a"},
- {file = "coverage-6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:01774a2c2c729619760320270e42cd9e797427ecfddd32c2a7b639cdc481f3c0"},
- {file = "coverage-6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb8b8ee99b3fffe4fd86f4c81b35a6bf7e4462cba019997af2fe679365db0c49"},
- {file = "coverage-6.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:619346d57c7126ae49ac95b11b0dc8e36c1dd49d148477461bb66c8cf13bb521"},
- {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0a7726f74ff63f41e95ed3a89fef002916c828bb5fcae83b505b49d81a066884"},
- {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cfd9386c1d6f13b37e05a91a8583e802f8059bebfccde61a418c5808dea6bbfa"},
- {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:17e6c11038d4ed6e8af1407d9e89a2904d573be29d51515f14262d7f10ef0a64"},
- {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c254b03032d5a06de049ce8bca8338a5185f07fb76600afff3c161e053d88617"},
- {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dca38a21e4423f3edb821292e97cec7ad38086f84313462098568baedf4331f8"},
- {file = "coverage-6.2-cp37-cp37m-win32.whl", hash = "sha256:600617008aa82032ddeace2535626d1bc212dfff32b43989539deda63b3f36e4"},
- {file = "coverage-6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bf154ba7ee2fd613eb541c2bc03d3d9ac667080a737449d1a3fb342740eb1a74"},
- {file = "coverage-6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f9afb5b746781fc2abce26193d1c817b7eb0e11459510fba65d2bd77fe161d9e"},
- {file = "coverage-6.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edcada2e24ed68f019175c2b2af2a8b481d3d084798b8c20d15d34f5c733fa58"},
- {file = "coverage-6.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c8c4283e17690ff1a7427123ffb428ad6a52ed720d550e299e8291e33184dc"},
- {file = "coverage-6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f614fc9956d76d8a88a88bb41ddc12709caa755666f580af3a688899721efecd"},
- {file = "coverage-6.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9365ed5cce5d0cf2c10afc6add145c5037d3148585b8ae0e77cc1efdd6aa2953"},
- {file = "coverage-6.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8bdfe9ff3a4ea37d17f172ac0dff1e1c383aec17a636b9b35906babc9f0f5475"},
- {file = "coverage-6.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:63c424e6f5b4ab1cf1e23a43b12f542b0ec2e54f99ec9f11b75382152981df57"},
- {file = "coverage-6.2-cp38-cp38-win32.whl", hash = "sha256:49dbff64961bc9bdd2289a2bda6a3a5a331964ba5497f694e2cbd540d656dc1c"},
- {file = "coverage-6.2-cp38-cp38-win_amd64.whl", hash = "sha256:9a29311bd6429be317c1f3fe4bc06c4c5ee45e2fa61b2a19d4d1d6111cb94af2"},
- {file = "coverage-6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03b20e52b7d31be571c9c06b74746746d4eb82fc260e594dc662ed48145e9efd"},
- {file = "coverage-6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:215f8afcc02a24c2d9a10d3790b21054b58d71f4b3c6f055d4bb1b15cecce685"},
- {file = "coverage-6.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a4bdeb0a52d1d04123b41d90a4390b096f3ef38eee35e11f0b22c2d031222c6c"},
- {file = "coverage-6.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c332d8f8d448ded473b97fefe4a0983265af21917d8b0cdcb8bb06b2afe632c3"},
- {file = "coverage-6.2-cp39-cp39-win32.whl", hash = "sha256:6e1394d24d5938e561fbeaa0cd3d356207579c28bd1792f25a068743f2d5b282"},
- {file = "coverage-6.2-cp39-cp39-win_amd64.whl", hash = "sha256:86f2e78b1eff847609b1ca8050c9e1fa3bd44ce755b2ec30e70f2d3ba3844644"},
- {file = "coverage-6.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de"},
- {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"},
+ {file = "coverage-6.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeffd96882d8c06d31b65dddcf51db7c612547babc1c4c5db6a011abe9798525"},
+ {file = "coverage-6.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:621f6ea7260ea2ffdaec64fe5cb521669984f567b66f62f81445221d4754df4c"},
+ {file = "coverage-6.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84f2436d6742c01136dd940ee158bfc7cf5ced3da7e4c949662b8703b5cd8145"},
+ {file = "coverage-6.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de73fca6fb403dd72d4da517cfc49fcf791f74eee697d3219f6be29adf5af6ce"},
+ {file = "coverage-6.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78fbb2be068a13a5d99dce9e1e7d168db880870f7bc73f876152130575bd6167"},
+ {file = "coverage-6.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f5a4551dfd09c3bd12fca8144d47fe7745275adf3229b7223c2f9e29a975ebda"},
+ {file = "coverage-6.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7bff3a98f63b47464480de1b5bdd80c8fade0ba2832c9381253c9b74c4153c27"},
+ {file = "coverage-6.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a06c358f4aed05fa1099c39decc8022261bb07dfadc127c08cfbd1391b09689e"},
+ {file = "coverage-6.3.1-cp310-cp310-win32.whl", hash = "sha256:9fff3ff052922cb99f9e52f63f985d4f7a54f6b94287463bc66b7cdf3eb41217"},
+ {file = "coverage-6.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:276b13cc085474e482566c477c25ed66a097b44c6e77132f3304ac0b039f83eb"},
+ {file = "coverage-6.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:56c4a409381ddd7bbff134e9756077860d4e8a583d310a6f38a2315b9ce301d0"},
+ {file = "coverage-6.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9eb494070aa060ceba6e4bbf44c1bc5fa97bfb883a0d9b0c9049415f9e944793"},
+ {file = "coverage-6.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e15d424b8153756b7c903bde6d4610be0c3daca3986173c18dd5c1a1625e4cd"},
+ {file = "coverage-6.3.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61d47a897c1e91f33f177c21de897267b38fbb45f2cd8e22a710bcef1df09ac1"},
+ {file = "coverage-6.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:25e73d4c81efa8ea3785274a2f7f3bfbbeccb6fcba2a0bdd3be9223371c37554"},
+ {file = "coverage-6.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:fac0bcc5b7e8169bffa87f0dcc24435446d329cbc2b5486d155c2e0f3b493ae1"},
+ {file = "coverage-6.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:72128176fea72012063200b7b395ed8a57849282b207321124d7ff14e26988e8"},
+ {file = "coverage-6.3.1-cp37-cp37m-win32.whl", hash = "sha256:1bc6d709939ff262fd1432f03f080c5042dc6508b6e0d3d20e61dd045456a1a0"},
+ {file = "coverage-6.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:618eeba986cea7f621d8607ee378ecc8c2504b98b3fdc4952b30fe3578304687"},
+ {file = "coverage-6.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ed164af5c9078596cfc40b078c3b337911190d3faeac830c3f1274f26b8320"},
+ {file = "coverage-6.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:352c68e233409c31048a3725c446a9e48bbff36e39db92774d4f2380d630d8f8"},
+ {file = "coverage-6.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:448d7bde7ceb6c69e08474c2ddbc5b4cd13c9e4aa4a717467f716b5fc938a734"},
+ {file = "coverage-6.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9fde6b90889522c220dd56a670102ceef24955d994ff7af2cb786b4ba8fe11e4"},
+ {file = "coverage-6.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e647a0be741edbb529a72644e999acb09f2ad60465f80757da183528941ff975"},
+ {file = "coverage-6.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a5cdc3adb4f8bb8d8f5e64c2e9e282bc12980ef055ec6da59db562ee9bdfefa"},
+ {file = "coverage-6.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2dd70a167843b4b4b2630c0c56f1b586fe965b4f8ac5da05b6690344fd065c6b"},
+ {file = "coverage-6.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9ad0a117b8dc2061ce9461ea4c1b4799e55edceb236522c5b8f958ce9ed8fa9a"},
+ {file = "coverage-6.3.1-cp38-cp38-win32.whl", hash = "sha256:e92c7a5f7d62edff50f60a045dc9542bf939758c95b2fcd686175dd10ce0ed10"},
+ {file = "coverage-6.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:482fb42eea6164894ff82abbcf33d526362de5d1a7ed25af7ecbdddd28fc124f"},
+ {file = "coverage-6.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c5b81fb37db76ebea79aa963b76d96ff854e7662921ce742293463635a87a78d"},
+ {file = "coverage-6.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a4f923b9ab265136e57cc14794a15b9dcea07a9c578609cd5dbbfff28a0d15e6"},
+ {file = "coverage-6.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56d296cbc8254a7dffdd7bcc2eb70be5a233aae7c01856d2d936f5ac4e8ac1f1"},
+ {file = "coverage-6.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245ab82e8554fa88c4b2ab1e098ae051faac5af829efdcf2ce6b34dccd5567c"},
+ {file = "coverage-6.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f2b05757c92ad96b33dbf8e8ec8d4ccb9af6ae3c9e9bd141c7cc44d20c6bcba"},
+ {file = "coverage-6.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9e3dd806f34de38d4c01416344e98eab2437ac450b3ae39c62a0ede2f8b5e4ed"},
+ {file = "coverage-6.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d651fde74a4d3122e5562705824507e2f5b2d3d57557f1916c4b27635f8fbe3f"},
+ {file = "coverage-6.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:704f89b87c4f4737da2860695a18c852b78ec7279b24eedacab10b29067d3a38"},
+ {file = "coverage-6.3.1-cp39-cp39-win32.whl", hash = "sha256:2aed4761809640f02e44e16b8b32c1a5dee5e80ea30a0ff0912158bde9c501f2"},
+ {file = "coverage-6.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:9976fb0a5709988778ac9bc44f3d50fccd989987876dfd7716dee28beed0a9fa"},
+ {file = "coverage-6.3.1-pp36.pp37.pp38-none-any.whl", hash = "sha256:463e52616ea687fd323888e86bf25e864a3cc6335a043fad6bbb037dbf49bbe2"},
+ {file = "coverage-6.3.1.tar.gz", hash = "sha256:6c3f6158b02ac403868eea390930ae64e9a9a2a5bbfafefbb920d29258d9f2f8"},
]
cycler = [
{file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"},
@@ -1356,8 +1350,8 @@ filelock = [
{file = "filelock-3.4.2.tar.gz", hash = "sha256:38b4f4c989f9d06d44524df1b24bd19e167d851f19b50bf3e3559952dddc5b80"},
]
fonttools = [
- {file = "fonttools-4.28.5-py3-none-any.whl", hash = "sha256:edf251d5d2cc0580d5f72de4621c338d8c66c5f61abb50cf486640f73c8194d5"},
- {file = "fonttools-4.28.5.zip", hash = "sha256:545c05d0f7903a863c2020e07b8f0a57517f2c40d940bded77076397872d14ca"},
+ {file = "fonttools-4.29.1-py3-none-any.whl", hash = "sha256:1933415e0fbdf068815cb1baaa1f159e17830215f7e8624e5731122761627557"},
+ {file = "fonttools-4.29.1.zip", hash = "sha256:2b18a172120e32128a80efee04cff487d5d140fe7d817deb648b2eee023a40e4"},
]
greenlet = [
{file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"},
@@ -1412,8 +1406,8 @@ greenlet = [
{file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"},
]
identify = [
- {file = "identify-2.4.4-py2.py3-none-any.whl", hash = "sha256:aa68609c7454dbcaae60a01ff6b8df1de9b39fe6e50b1f6107ec81dcda624aa6"},
- {file = "identify-2.4.4.tar.gz", hash = "sha256:6b4b5031f69c48bf93a646b90de9b381c6b5f560df4cbe0ed3cf7650ae741e4d"},
+ {file = "identify-2.4.9-py2.py3-none-any.whl", hash = "sha256:bff7c4959d68510bc28b99d664b6a623e36c6eadc933f89a4e0a9ddff9b4fee4"},
+ {file = "identify-2.4.9.tar.gz", hash = "sha256:e926ae3b3dc142b6a7a9c65433eb14ccac751b724ee255f7c2ed3b5970d764fb"},
]
idna = [
{file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
@@ -1424,8 +1418,8 @@ imagesize = [
{file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
]
importlib-metadata = [
- {file = "importlib_metadata-4.10.1-py3-none-any.whl", hash = "sha256:899e2a40a8c4a1aec681feef45733de8a6c58f3f6a0dbed2eb6574b4387a77b6"},
- {file = "importlib_metadata-4.10.1.tar.gz", hash = "sha256:951f0d8a5b7260e9db5e41d429285b5f451e928479f19d80818878527d36e95e"},
+ {file = "importlib_metadata-4.11.0-py3-none-any.whl", hash = "sha256:6affcdb3aec542dd98df8211e730bba6c5f2bec8288d47bacacde898f548c9ad"},
+ {file = "importlib_metadata-4.11.0.tar.gz", hash = "sha256:9e5e553bbba1843cb4a00823014b907616be46ee503d2b9ba001d214a8da218f"},
]
iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
@@ -1696,31 +1690,31 @@ nodeenv = [
{file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"},
]
numba = [
- {file = "numba-0.55.0-1-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:72c680b297200d4c60004081f6e83dbb3460fe73fafd6f0bd53b074aaa2e776f"},
- {file = "numba-0.55.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:637643dfe941ec608ecd2fbc1f75c309c4415043291d03d7608acdd5789ecaa4"},
- {file = "numba-0.55.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:52560a73ffbc62f2a4a43acc0d7ece19707a9f739fd6c9424b5b23d542185e96"},
- {file = "numba-0.55.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2d5c7839c1915c5687b8c1ff07a5bb1c3ea1301ba51971156018676609c1fbf1"},
- {file = "numba-0.55.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b661f56b8508743deb78d7f69d5c517491f7bd8c35ec1cb735218a11af9a2449"},
- {file = "numba-0.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:a9aa9fcb98dd6462c1d75b95d32faf0192932f6c9587072acb15cf1f4c726503"},
- {file = "numba-0.55.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:384589eaddb47f57d84726cbe53178cfb948cf5545f3eff24e3018087e94dbf3"},
- {file = "numba-0.55.0-cp37-cp37m-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e1439a3f7f656d44fd2c484b3914809355bc515a7da3336443d6f45b5806f0aa"},
- {file = "numba-0.55.0-cp37-cp37m-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d09c61c04fdf4d14b9b3d455de5ced68458503d2075ac37c55deb40fe530bbe7"},
- {file = "numba-0.55.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dc2df1a8d985546e2043de28a502fd14e6f3278491ecffb4973fd3f409cd7606"},
- {file = "numba-0.55.0-cp37-cp37m-win32.whl", hash = "sha256:9598f6903bc4e7f775cb018be90f595d7af11b2a614f26109c29f991d8e49d62"},
- {file = "numba-0.55.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b756a6fdbeae0d9de28c345522e9f7dc609b10f195fdf31073dd06b9ab17c82e"},
- {file = "numba-0.55.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:5d78e680f25e4febc224637fb0f22545321f4580fc7e8239f1b48a90e7f4f89d"},
- {file = "numba-0.55.0-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b92608bbf54b5ae5fcbdaa911985ae6f3fc35a71c2785f4b64350e72ec91d3d"},
- {file = "numba-0.55.0-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b0cccc1a65d317b9d4f0e4438d0a8c2e59e0c81bca121a40ba56ce403c7c81ae"},
- {file = "numba-0.55.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:897accfe6320cd72011e99ff918619175bc312bbf13a74377fc33a22290aef96"},
- {file = "numba-0.55.0-cp38-cp38-win32.whl", hash = "sha256:8b9d8899b07c8136c02f0a08ab9bbb5ac5ebec02034024ef81f78aaa367ff32f"},
- {file = "numba-0.55.0-cp38-cp38-win_amd64.whl", hash = "sha256:936301026c6a1d9a1e2e4a6df81805f3e4a29d105be21668bbfd253813249d5b"},
- {file = "numba-0.55.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:efd9115234a76977af45c395dbade9ff1d29b5fbd85e6002f07d7379d54a328e"},
- {file = "numba-0.55.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb8b47026d0edba77caf561389895a021a1c0c3c65d7af290e2f2fb459f26c5e"},
- {file = "numba-0.55.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:def2085df4aa34a7de9df06953ff21988b464bdef77ee845129741cf787061a7"},
- {file = "numba-0.55.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7ca365f06426fca3ff93ac6be04467ce07c839d497290b3b44dc9736daf4f7ae"},
- {file = "numba-0.55.0-cp39-cp39-win32.whl", hash = "sha256:e2cd740c6fc6adc5b15000832307bdd31d724ad793f647d855f9a2ca24e1ad32"},
- {file = "numba-0.55.0-cp39-cp39-win_amd64.whl", hash = "sha256:f8c86a11d7a6e017f65d46e3ffb87c4a5c554deb2695009a7ab4bd9f73716463"},
- {file = "numba-0.55.0.tar.gz", hash = "sha256:b221ebd997662a1dcb77e4f09140e022fbfe7577ad0781fc2e0214135dba6cbd"},
+ {file = "numba-0.55.1-1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:be56fb78303973e6c19c7c2759996a5863bac69ca87570543d9f18f2f287a441"},
+ {file = "numba-0.55.1-1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ee71407be9cba09b4f68afa668317e97d66d5f83c37ab4caa20d8abcf5fad32b"},
+ {file = "numba-0.55.1-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39a109efc317e8eb786feff0a29476036971ce08e3280be8153c3b6c1ccba415"},
+ {file = "numba-0.55.1-1-cp37-cp37m-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0dc8294b2b6b2dbe3a709787bbb1e6f9dcef62197429de8daaa714d77052eefe"},
+ {file = "numba-0.55.1-1-cp37-cp37m-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bcd5e09dba5e19ff7a1b9716a1ce58f0931cec09515683011e57415c6a33ac3d"},
+ {file = "numba-0.55.1-1-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:64209d71b1e33415d5b1b177ed218d679062f844667dd279ee9094c4e3e2babc"},
+ {file = "numba-0.55.1-1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff5ed5c7665f8a5405af53332d224caca68358909abde9ca8dfef3495cdea789"},
+ {file = "numba-0.55.1-1-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d80afc5618e66af2d101eff0e6214acb865136ae886d8b01414ca3dedd9166d6"},
+ {file = "numba-0.55.1-1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d0042371880fa56ed58be27502b11a08bff0b6335f0ebde82af1a7aef5e1287"},
+ {file = "numba-0.55.1-1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4a5cb8930e729aeed96809524ca4df41b6f2432b379f220014ef4fdff21dbfe6"},
+ {file = "numba-0.55.1-1-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:fee529ddc9c0584b932f7885735162e52344eded8c01c78c17e2768aa6787780"},
+ {file = "numba-0.55.1-1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:230e542649c7087454bc851d2e22b5e15694b6cf0549a27234d1baea6c2e0a87"},
+ {file = "numba-0.55.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:adc88fe64f5235c8b1e7230ae29476a08ffb61a65e9f79f745bd357f215e2d52"},
+ {file = "numba-0.55.1-cp310-cp310-win32.whl", hash = "sha256:a5af7f1d30f56029d1b9ea288372f924f9dcb322f0e6358f6d5203b20eb6f7a0"},
+ {file = "numba-0.55.1-cp310-cp310-win_amd64.whl", hash = "sha256:71815c501b2f6309c432e98ff93a582a9bfb61da943e0cb9a52595fadbb1131d"},
+ {file = "numba-0.55.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:53909143917ea4962cfbfae7038ac882987ff54cb2c408538ce71f83b356f106"},
+ {file = "numba-0.55.1-cp37-cp37m-win32.whl", hash = "sha256:cddc13939e2b27782258826686800ae9c2e90b35c36ef1ab5ccfae7cedca0516"},
+ {file = "numba-0.55.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ac6ae19ff5093a42bf8b365550322a2e39650d608daa379dff71571272d88d93"},
+ {file = "numba-0.55.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:77187ed09e6b25ae24b840e1acc4b5f9886b551cdc5f919ddad8e5933a6027d5"},
+ {file = "numba-0.55.1-cp38-cp38-win32.whl", hash = "sha256:53ee562b873e00eaa26390690ac5d36b706782d429e5a18b255161f607f13c17"},
+ {file = "numba-0.55.1-cp38-cp38-win_amd64.whl", hash = "sha256:02fb0ecd218ab1e1171cbaee11235a3a1f7dcf79dee3fa786243a2a6411f2fea"},
+ {file = "numba-0.55.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:6aa8f18a003a0e4876826fe080e6038fc6da083899873b77172ec29c32e49b56"},
+ {file = "numba-0.55.1-cp39-cp39-win32.whl", hash = "sha256:d5ee721ce884f8313802295633fdd3e7c83541e0917bafea2bdfed6aabab93bf"},
+ {file = "numba-0.55.1-cp39-cp39-win_amd64.whl", hash = "sha256:b72350160eb9a73a36aa17d808f954353a263a0295d495497c87439d79bdaec7"},
+ {file = "numba-0.55.1.tar.gz", hash = "sha256:03e9069a2666d1c84f93b00dbd716fb8fedde8bb2c6efafa2f04842a46442ea3"},
]
numpy = [
{file = "numpy-1.21.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:301e408a052fdcda5cdcf03021ebafc3c6ea093021bf9d1aa47c54d48bdad166"},
@@ -1759,27 +1753,27 @@ packaging = [
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
]
pandas = [
- {file = "pandas-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de62cf699122dcef175988f0714678e59c453dc234c5b47b7136bfd7641e3c8c"},
- {file = "pandas-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46a18572f3e1cb75db59d9461940e9ba7ee38967fa48dd58f4139197f6e32280"},
- {file = "pandas-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:73f7da2ccc38cc988b74e5400b430b7905db5f2c413ff215506bea034eaf832d"},
- {file = "pandas-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5229c95db3a907451dacebc551492db6f7d01743e49bbc862f4a6010c227d187"},
- {file = "pandas-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe454180ad31bbbe1e5d111b44443258730467f035e26b4e354655ab59405871"},
- {file = "pandas-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:784cca3f69cfd7f6bd7c7fdb44f2bbab17e6de55725e9ff36d6f382510dfefb5"},
- {file = "pandas-1.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:de8f8999864399529e8514a2e6bfe00fd161f0a667903655552ed12e583ae3cb"},
- {file = "pandas-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0f19504f2783526fb5b4de675ea69d68974e21c1624f4b92295d057a31d5ec5f"},
- {file = "pandas-1.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f045bb5c6bfaba536089573bf97d6b8ccc7159d951fe63904c395a5e486fbe14"},
- {file = "pandas-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5280d057ddae06fe4a3cd6aa79040b8c205cd6dd21743004cf8635f39ed01712"},
- {file = "pandas-1.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f3b74335390dda49f5d5089fab71958812bf56f42aa27663ee4c16d19f4f1c5"},
- {file = "pandas-1.4.0-cp38-cp38-win32.whl", hash = "sha256:51e5da3802aaee1aa4254108ffaf1129a15fb3810b7ce8da1ec217c655b418f5"},
- {file = "pandas-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:f103a5cdcd66cb18882ccdc18a130c31c3cfe3529732e7f10a8ab3559164819c"},
- {file = "pandas-1.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4a8d5a200f8685e7ea562b2f022c77ab7cb82c1ca5b240e6965faa6f84e5c1e9"},
- {file = "pandas-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b5af258c7b090cca7b742cf2bd67ad1919aa9e4e681007366c9edad2d6a3d42b"},
- {file = "pandas-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:156aac90dd7b303bf0b91bae96c0503212777f86c731e41929c571125d26c8e9"},
- {file = "pandas-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dad075089e17a72391de33021ad93720aff258c3c4b68c78e1cafce7e447045"},
- {file = "pandas-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d59c958d6b8f96fdf850c7821571782168d5acfe75ccf78cd8d1ac15fb921df"},
- {file = "pandas-1.4.0-cp39-cp39-win32.whl", hash = "sha256:55ec0e192eefa26d823fc25a1f213d6c304a3592915f368e360652994cdb8d9a"},
- {file = "pandas-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:23c04dab11f3c6359cfa7afa83d3d054a8f8c283d773451184d98119ef54da97"},
- {file = "pandas-1.4.0.tar.gz", hash = "sha256:cdd76254c7f0a1583bd4e4781fb450d0ebf392e10d3f12e92c95575942e37df5"},
+ {file = "pandas-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3dfb32ed50122fe8c5e7f2b8d97387edd742cc78f9ec36f007ee126cd3720907"},
+ {file = "pandas-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0259cd11e7e6125aaea3af823b80444f3adad6149ff4c97fef760093598b3e34"},
+ {file = "pandas-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96e9ece5759f9b47ae43794b6359bbc54805d76e573b161ae770c1ea59393106"},
+ {file = "pandas-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:508c99debccd15790d526ce6b1624b97a5e1e4ca5b871319fb0ebfd46b8f4dad"},
+ {file = "pandas-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6a7bbbb7950063bfc942f8794bc3e31697c020a14f1cd8905fc1d28ec674a01"},
+ {file = "pandas-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:c614001129b2a5add5e3677c3a213a9e6fd376204cb8d17c04e84ff7dfc02a73"},
+ {file = "pandas-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4e1176f45981c8ccc8161bc036916c004ca51037a7ed73f2d2a9857e6dbe654f"},
+ {file = "pandas-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bbb15ad79050e8b8d39ec40dd96a30cd09b886a2ae8848d0df1abba4d5502a67"},
+ {file = "pandas-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6d6ad1da00c7cc7d8dd1559a6ba59ba3973be6b15722d49738b2be0977eb8a0c"},
+ {file = "pandas-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:358b0bc98a5ff067132d23bf7a2242ee95db9ea5b7bbc401cf79205f11502fd3"},
+ {file = "pandas-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6105af6533f8b63a43ea9f08a2ede04e8f43e49daef0209ab0d30352bcf08bee"},
+ {file = "pandas-1.4.1-cp38-cp38-win32.whl", hash = "sha256:04dd15d9db538470900c851498e532ef28d4e56bfe72c9523acb32042de43dfb"},
+ {file = "pandas-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b384516dbb4e6aae30e3464c2e77c563da5980440fbdfbd0968e3942f8f9d70"},
+ {file = "pandas-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f02e85e6d832be37d7f16cf6ac8bb26b519ace3e5f3235564a91c7f658ab2a43"},
+ {file = "pandas-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0b1a13f647e4209ed7dbb5da3497891d0045da9785327530ab696417ef478f84"},
+ {file = "pandas-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:19f7c632436b1b4f84615c3b127bbd7bc603db95e3d4332ed259dc815c9aaa26"},
+ {file = "pandas-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ea47ba1d6f359680130bd29af497333be6110de8f4c35b9211eec5a5a9630fa"},
+ {file = "pandas-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e5a7a1e0ecaac652326af627a3eca84886da9e667d68286866d4e33f6547caf"},
+ {file = "pandas-1.4.1-cp39-cp39-win32.whl", hash = "sha256:1d85d5f6be66dfd6d1d8d13b9535e342a2214260f1852654b19fa4d7b8d1218b"},
+ {file = "pandas-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:3129a35d9dad1d80c234dd78f8f03141b914395d23f97cf92a366dcd19f8f8bf"},
+ {file = "pandas-1.4.1.tar.gz", hash = "sha256:8db93ec98ac7cb5f8ac1420c10f5e3c43533153f253fe7fb6d891cf5aa2b80d2"},
]
parso = [
{file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"},
@@ -1825,42 +1819,45 @@ pickleshare = [
{file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"},
]
pillow = [
- {file = "Pillow-9.0.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:113723312215b25c22df1fdf0e2da7a3b9c357a7d24a93ebbe80bfda4f37a8d4"},
- {file = "Pillow-9.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bb47a548cea95b86494a26c89d153fd31122ed65255db5dcbc421a2d28eb3379"},
- {file = "Pillow-9.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31b265496e603985fad54d52d11970383e317d11e18e856971bdbb86af7242a4"},
- {file = "Pillow-9.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d154ed971a4cc04b93a6d5b47f37948d1f621f25de3e8fa0c26b2d44f24e3e8f"},
- {file = "Pillow-9.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80fe92813d208ce8aa7d76da878bdc84b90809f79ccbad2a288e9bcbeac1d9bd"},
- {file = "Pillow-9.0.0-cp310-cp310-win32.whl", hash = "sha256:d5dcea1387331c905405b09cdbfb34611050cc52c865d71f2362f354faee1e9f"},
- {file = "Pillow-9.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:52abae4c96b5da630a8b4247de5428f593465291e5b239f3f843a911a3cf0105"},
- {file = "Pillow-9.0.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:72c3110228944019e5f27232296c5923398496b28be42535e3b2dc7297b6e8b6"},
- {file = "Pillow-9.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97b6d21771da41497b81652d44191489296555b761684f82b7b544c49989110f"},
- {file = "Pillow-9.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72f649d93d4cc4d8cf79c91ebc25137c358718ad75f99e99e043325ea7d56100"},
- {file = "Pillow-9.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aaf07085c756f6cb1c692ee0d5a86c531703b6e8c9cae581b31b562c16b98ce"},
- {file = "Pillow-9.0.0-cp37-cp37m-win32.whl", hash = "sha256:03b27b197deb4ee400ed57d8d4e572d2d8d80f825b6634daf6e2c18c3c6ccfa6"},
- {file = "Pillow-9.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a09a9d4ec2b7887f7a088bbaacfd5c07160e746e3d47ec5e8050ae3b2a229e9f"},
- {file = "Pillow-9.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:490e52e99224858f154975db61c060686df8a6b3f0212a678e5d2e2ce24675c9"},
- {file = "Pillow-9.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:500d397ddf4bbf2ca42e198399ac13e7841956c72645513e8ddf243b31ad2128"},
- {file = "Pillow-9.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ebd8b9137630a7bbbff8c4b31e774ff05bbb90f7911d93ea2c9371e41039b52"},
- {file = "Pillow-9.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd0e5062f11cb3e730450a7d9f323f4051b532781026395c4323b8ad055523c4"},
- {file = "Pillow-9.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f3b4522148586d35e78313db4db0df4b759ddd7649ef70002b6c3767d0fdeb7"},
- {file = "Pillow-9.0.0-cp38-cp38-win32.whl", hash = "sha256:0b281fcadbb688607ea6ece7649c5d59d4bbd574e90db6cd030e9e85bde9fecc"},
- {file = "Pillow-9.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5050d681bcf5c9f2570b93bee5d3ec8ae4cf23158812f91ed57f7126df91762"},
- {file = "Pillow-9.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:c2067b3bb0781f14059b112c9da5a91c80a600a97915b4f48b37f197895dd925"},
- {file = "Pillow-9.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2d16b6196fb7a54aff6b5e3ecd00f7c0bab1b56eee39214b2b223a9d938c50af"},
- {file = "Pillow-9.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98cb63ca63cb61f594511c06218ab4394bf80388b3d66cd61d0b1f63ee0ea69f"},
- {file = "Pillow-9.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc462d24500ba707e9cbdef436c16e5c8cbf29908278af053008d9f689f56dee"},
- {file = "Pillow-9.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3586e12d874ce2f1bc875a3ffba98732ebb12e18fb6d97be482bd62b56803281"},
- {file = "Pillow-9.0.0-cp39-cp39-win32.whl", hash = "sha256:68e06f8b2248f6dc8b899c3e7ecf02c9f413aab622f4d6190df53a78b93d97a5"},
- {file = "Pillow-9.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:6579f9ba84a3d4f1807c4aab4be06f373017fc65fff43498885ac50a9b47a553"},
- {file = "Pillow-9.0.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:47f5cf60bcb9fbc46011f75c9b45a8b5ad077ca352a78185bd3e7f1d294b98bb"},
- {file = "Pillow-9.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fd8053e1f8ff1844419842fd474fc359676b2e2a2b66b11cc59f4fa0a301315"},
- {file = "Pillow-9.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c5439bfb35a89cac50e81c751317faea647b9a3ec11c039900cd6915831064d"},
- {file = "Pillow-9.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95545137fc56ce8c10de646074d242001a112a92de169986abd8c88c27566a05"},
- {file = "Pillow-9.0.0.tar.gz", hash = "sha256:ee6e2963e92762923956fe5d3479b1fdc3b76c83f290aad131a2f98c3df0593e"},
+ {file = "Pillow-9.0.1-1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4"},
+ {file = "Pillow-9.0.1-1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976"},
+ {file = "Pillow-9.0.1-1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b9618823bd237c0d2575283f2939655f54d51b4527ec3972907a927acbcc5bfc"},
+ {file = "Pillow-9.0.1-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd"},
+ {file = "Pillow-9.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f"},
+ {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a"},
+ {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f29d831e2151e0b7b39981756d201f7108d3d215896212ffe2e992d06bfe049"},
+ {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:855c583f268edde09474b081e3ddcd5cf3b20c12f26e0d434e1386cc5d318e7a"},
+ {file = "Pillow-9.0.1-cp310-cp310-win32.whl", hash = "sha256:d9d7942b624b04b895cb95af03a23407f17646815495ce4547f0e60e0b06f58e"},
+ {file = "Pillow-9.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81c4b81611e3a3cb30e59b0cf05b888c675f97e3adb2c8672c3154047980726b"},
+ {file = "Pillow-9.0.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:413ce0bbf9fc6278b2d63309dfeefe452835e1c78398efb431bab0672fe9274e"},
+ {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80fe64a6deb6fcfdf7b8386f2cf216d329be6f2781f7d90304351811fb591360"},
+ {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cef9c85ccbe9bee00909758936ea841ef12035296c748aaceee535969e27d31b"},
+ {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d19397351f73a88904ad1aee421e800fe4bbcd1aeee6435fb62d0a05ccd1030"},
+ {file = "Pillow-9.0.1-cp37-cp37m-win32.whl", hash = "sha256:d21237d0cd37acded35154e29aec853e945950321dd2ffd1a7d86fe686814669"},
+ {file = "Pillow-9.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ede5af4a2702444a832a800b8eb7f0a7a1c0eed55b644642e049c98d589e5092"},
+ {file = "Pillow-9.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:b5b3f092fe345c03bca1e0b687dfbb39364b21ebb8ba90e3fa707374b7915204"},
+ {file = "Pillow-9.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:335ace1a22325395c4ea88e00ba3dc89ca029bd66bd5a3c382d53e44f0ccd77e"},
+ {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db6d9fac65bd08cea7f3540b899977c6dee9edad959fa4eaf305940d9cbd861c"},
+ {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f154d173286a5d1863637a7dcd8c3437bb557520b01bddb0be0258dcb72696b5"},
+ {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d4b1341ac07ae07eb2cc682f459bec932a380c3b122f5540432d8977e64eae"},
+ {file = "Pillow-9.0.1-cp38-cp38-win32.whl", hash = "sha256:effb7749713d5317478bb3acb3f81d9d7c7f86726d41c1facca068a04cf5bb4c"},
+ {file = "Pillow-9.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:7f7609a718b177bf171ac93cea9fd2ddc0e03e84d8fa4e887bdfc39671d46b00"},
+ {file = "Pillow-9.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:80ca33961ced9c63358056bd08403ff866512038883e74f3a4bf88ad3eb66838"},
+ {file = "Pillow-9.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c3c33ac69cf059bbb9d1a71eeaba76781b450bc307e2291f8a4764d779a6b28"},
+ {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12875d118f21cf35604176872447cdb57b07126750a33748bac15e77f90f1f9c"},
+ {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:514ceac913076feefbeaf89771fd6febde78b0c4c1b23aaeab082c41c694e81b"},
+ {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c5c79ab7dfce6d88f1ba639b77e77a17ea33a01b07b99840d6ed08031cb2a7"},
+ {file = "Pillow-9.0.1-cp39-cp39-win32.whl", hash = "sha256:718856856ba31f14f13ba885ff13874be7fefc53984d2832458f12c38205f7f7"},
+ {file = "Pillow-9.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:f25ed6e28ddf50de7e7ea99d7a976d6a9c415f03adcaac9c41ff6ff41b6d86ac"},
+ {file = "Pillow-9.0.1-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:011233e0c42a4a7836498e98c1acf5e744c96a67dd5032a6f666cc1fb97eab97"},
+ {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253e8a302a96df6927310a9d44e6103055e8fb96a6822f8b7f514bb7ef77de56"},
+ {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6295f6763749b89c994fcb6d8a7f7ce03c3992e695f89f00b741b4580b199b7e"},
+ {file = "Pillow-9.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a9f44cd7e162ac6191491d7249cceb02b8116b0f7e847ee33f739d7cb1ea1f70"},
+ {file = "Pillow-9.0.1.tar.gz", hash = "sha256:6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa"},
]
platformdirs = [
- {file = "platformdirs-2.4.1-py3-none-any.whl", hash = "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca"},
- {file = "platformdirs-2.4.1.tar.gz", hash = "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"},
+ {file = "platformdirs-2.5.0-py3-none-any.whl", hash = "sha256:30671902352e97b1eafd74ade8e4a694782bd3471685e78c32d0fdfd3aa7e7bb"},
+ {file = "platformdirs-2.5.0.tar.gz", hash = "sha256:8ec11dfba28ecc0715eb5fb0147a87b1bf325f349f3da9aab2cd6b50b96b692b"},
]
pluggy = [
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
@@ -1871,8 +1868,8 @@ pre-commit = [
{file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"},
]
prompt-toolkit = [
- {file = "prompt_toolkit-3.0.24-py3-none-any.whl", hash = "sha256:e56f2ff799bacecd3e88165b1e2f5ebf9bcd59e80e06d395fa0cc4b8bd7bb506"},
- {file = "prompt_toolkit-3.0.24.tar.gz", hash = "sha256:1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6"},
+ {file = "prompt_toolkit-3.0.28-py3-none-any.whl", hash = "sha256:30129d870dcb0b3b6a53efdc9d0a83ea96162ffd28ffe077e94215b233dc670c"},
+ {file = "prompt_toolkit-3.0.28.tar.gz", hash = "sha256:9f1cd16b1e86c2968f2519d7fb31dd9d669916f515612c269d14e9ed52b51650"},
]
ptyprocess = [
{file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
@@ -1977,35 +1974,29 @@ rich = [
{file = "rich-10.16.2.tar.gz", hash = "sha256:720974689960e06c2efdb54327f8bf0cdbdf4eae4ad73b6c94213cad405c371b"},
]
scipy = [
- {file = "scipy-1.7.3-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:c9e04d7e9b03a8a6ac2045f7c5ef741be86727d8f49c45db45f244bdd2bcff17"},
- {file = "scipy-1.7.3-1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b0e0aeb061a1d7dcd2ed59ea57ee56c9b23dd60100825f98238c06ee5cc4467e"},
- {file = "scipy-1.7.3-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:b78a35c5c74d336f42f44106174b9851c783184a85a3fe3e68857259b37b9ffb"},
- {file = "scipy-1.7.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:173308efba2270dcd61cd45a30dfded6ec0085b4b6eb33b5eb11ab443005e088"},
- {file = "scipy-1.7.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:21b66200cf44b1c3e86495e3a436fc7a26608f92b8d43d344457c54f1c024cbc"},
- {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceebc3c4f6a109777c0053dfa0282fddb8893eddfb0d598574acfb734a926168"},
- {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7eaea089345a35130bc9a39b89ec1ff69c208efa97b3f8b25ea5d4c41d88094"},
- {file = "scipy-1.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:304dfaa7146cffdb75fbf6bb7c190fd7688795389ad060b970269c8576d038e9"},
- {file = "scipy-1.7.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:033ce76ed4e9f62923e1f8124f7e2b0800db533828c853b402c7eec6e9465d80"},
- {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4d242d13206ca4302d83d8a6388c9dfce49fc48fdd3c20efad89ba12f785bf9e"},
- {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8499d9dd1459dc0d0fe68db0832c3d5fc1361ae8e13d05e6849b358dc3f2c279"},
- {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca36e7d9430f7481fc7d11e015ae16fbd5575615a8e9060538104778be84addf"},
- {file = "scipy-1.7.3-cp37-cp37m-win32.whl", hash = "sha256:e2c036492e673aad1b7b0d0ccdc0cb30a968353d2c4bf92ac8e73509e1bf212c"},
- {file = "scipy-1.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:866ada14a95b083dd727a845a764cf95dd13ba3dc69a16b99038001b05439709"},
- {file = "scipy-1.7.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:65bd52bf55f9a1071398557394203d881384d27b9c2cad7df9a027170aeaef93"},
- {file = "scipy-1.7.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:f99d206db1f1ae735a8192ab93bd6028f3a42f6fa08467d37a14eb96c9dd34a3"},
- {file = "scipy-1.7.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5f2cfc359379c56b3a41b17ebd024109b2049f878badc1e454f31418c3a18436"},
- {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb7ae2c4dbdb3c9247e07acc532f91077ae6dbc40ad5bd5dca0bb5a176ee9bda"},
- {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c2d250074cfa76715d58830579c64dff7354484b284c2b8b87e5a38321672c"},
- {file = "scipy-1.7.3-cp38-cp38-win32.whl", hash = "sha256:87069cf875f0262a6e3187ab0f419f5b4280d3dcf4811ef9613c605f6e4dca95"},
- {file = "scipy-1.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:7edd9a311299a61e9919ea4192dd477395b50c014cdc1a1ac572d7c27e2207fa"},
- {file = "scipy-1.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eef93a446114ac0193a7b714ce67659db80caf940f3232bad63f4c7a81bc18df"},
- {file = "scipy-1.7.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb326658f9b73c07081300daba90a8746543b5ea177184daed26528273157294"},
- {file = "scipy-1.7.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93378f3d14fff07572392ce6a6a2ceb3a1f237733bd6dcb9eb6a2b29b0d19085"},
- {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edad1cf5b2ce1912c4d8ddad20e11d333165552aba262c882e28c78bbc09dbf6"},
- {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d1cc2c19afe3b5a546ede7e6a44ce1ff52e443d12b231823268019f608b9b12"},
- {file = "scipy-1.7.3-cp39-cp39-win32.whl", hash = "sha256:2c56b820d304dffcadbbb6cbfbc2e2c79ee46ea291db17e288e73cd3c64fefa9"},
- {file = "scipy-1.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:3f78181a153fa21c018d346f595edd648344751d7f03ab94b398be2ad083ed3e"},
- {file = "scipy-1.7.3.tar.gz", hash = "sha256:ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf"},
+ {file = "scipy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:87b01c7d5761e8a266a0fbdb9d88dcba0910d63c1c671bdb4d99d29f469e9e03"},
+ {file = "scipy-1.8.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ae3e327da323d82e918e593460e23babdce40d7ab21490ddf9fc06dec6b91a18"},
+ {file = "scipy-1.8.0-cp310-cp310-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:16e09ef68b352d73befa8bcaf3ebe25d3941fe1a58c82909d5589856e6bc8174"},
+ {file = "scipy-1.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c17a1878d00a5dd2797ccd73623ceca9d02375328f6218ee6d921e1325e61aff"},
+ {file = "scipy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937d28722f13302febde29847bbe554b89073fbb924a30475e5ed7b028898b5f"},
+ {file = "scipy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:8f4d059a97b29c91afad46b1737274cb282357a305a80bdd9e8adf3b0ca6a3f0"},
+ {file = "scipy-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:38aa39b6724cb65271e469013aeb6f2ce66fd44f093e241c28a9c6bc64fd79ed"},
+ {file = "scipy-1.8.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:559a8a4c03a5ba9fe3232f39ed24f86457e4f3f6c0abbeae1fb945029f092720"},
+ {file = "scipy-1.8.0-cp38-cp38-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:f4a6d3b9f9797eb2d43938ac2c5d96d02aed17ef170c8b38f11798717523ddba"},
+ {file = "scipy-1.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:92b2c2af4183ed09afb595709a8ef5783b2baf7f41e26ece24e1329c109691a7"},
+ {file = "scipy-1.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a279e27c7f4566ef18bab1b1e2c37d168e365080974758d107e7d237d3f0f484"},
+ {file = "scipy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad5be4039147c808e64f99c0e8a9641eb5d2fa079ff5894dcd8240e94e347af4"},
+ {file = "scipy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:3d9dd6c8b93a22bf9a3a52d1327aca7e092b1299fb3afc4f89e8eba381be7b59"},
+ {file = "scipy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:5e73343c5e0d413c1f937302b2e04fb07872f5843041bcfd50699aef6e95e399"},
+ {file = "scipy-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:de2e80ee1d925984c2504812a310841c241791c5279352be4707cdcd7c255039"},
+ {file = "scipy-1.8.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:c2bae431d127bf0b1da81fc24e4bba0a84d058e3a96b9dd6475dfcb3c5e8761e"},
+ {file = "scipy-1.8.0-cp39-cp39-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:723b9f878095ed994756fa4ee3060c450e2db0139c5ba248ee3f9628bd64e735"},
+ {file = "scipy-1.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:011d4386b53b933142f58a652aa0f149c9b9242abd4f900b9f4ea5fbafc86b89"},
+ {file = "scipy-1.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f0cd9c0bd374ef834ee1e0f0999678d49dcc400ea6209113d81528958f97c7"},
+ {file = "scipy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3720d0124aced49f6f2198a6900304411dbbeed12f56951d7c66ebef05e3df6"},
+ {file = "scipy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:3d573228c10a3a8c32b9037be982e6440e411b443a6267b067cac72f690b8d56"},
+ {file = "scipy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bb7088e89cd751acf66195d2f00cf009a1ea113f3019664032d9075b1e727b6c"},
+ {file = "scipy-1.8.0.tar.gz", hash = "sha256:31d4f2d6b724bc9a98e527b5849b8a7e589bf1ea630c33aa563eda912c9ff0bd"},
]
setuptools-scm = [
{file = "setuptools_scm-6.4.2-py3-none-any.whl", hash = "sha256:acea13255093849de7ccb11af9e1fb8bde7067783450cee9ef7a93139bddf6d4"},
@@ -2106,16 +2097,16 @@ traitlets = [
{file = "traitlets-5.1.1.tar.gz", hash = "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"},
]
typing-extensions = [
- {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"},
- {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"},
+ {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"},
+ {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"},
]
urllib3 = [
{file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
{file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
]
virtualenv = [
- {file = "virtualenv-20.13.0-py2.py3-none-any.whl", hash = "sha256:339f16c4a86b44240ba7223d0f93a7887c3ca04b5f9c8129da7958447d079b09"},
- {file = "virtualenv-20.13.0.tar.gz", hash = "sha256:d8458cf8d59d0ea495ad9b34c2599487f8a7772d796f9910858376d1600dd2dd"},
+ {file = "virtualenv-20.13.1-py2.py3-none-any.whl", hash = "sha256:45e1d053cad4cd453181ae877c4ffc053546ae99e7dd049b9ff1d9be7491abf7"},
+ {file = "virtualenv-20.13.1.tar.gz", hash = "sha256:e0621bcbf4160e4e1030f05065c8834b4e93f4fcc223255db2a823440aca9c14"},
]
wcwidth = [
{file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
diff --git a/pyproject.toml b/pyproject.toml
index 75d352098..99327c360 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -38,7 +38,7 @@ Sphinx = { version = "^4.3.2", optional = true }
sphinx-rtd-theme = { version = "^1.0.0", optional = true }
sphinxcontrib-bibtex = { version = "^2.4.1", optional = true }
# ekomark
-banana-hep = { version = "^0.5.9", optional = true }
+banana-hep = { version = "^0.6.0", optional = true }
sqlalchemy = { version = "^1.4.21", optional = true }
pandas = { version = "^1.3.0", optional = true }
matplotlib = { version = "^3.5.1", optional = true }