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 @@ EKO

- Tests + Tests Docs CodeFactor 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 @@ CodeFactor

-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: 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: Docs - 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: DOI +When using our code please cite +- our DOI: 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: GitHub issues - 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 }