From ff57aab39e0eeb5679dc925a4ac949edf730bd6a Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 14:28:45 +0200 Subject: [PATCH 01/36] First implementation --- src/pineko/check.py | 26 ++++++++++++++++++++++++++ src/pineko/cli/check.py | 10 ++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/pineko/check.py b/src/pineko/check.py index 49a8d9a2..d72fccb8 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -41,3 +41,29 @@ def check_grid_and_eko_compatible(pineappl_grid, operators): # x-grid if not np.all(in1d(np.unique(operators["targetgrid"]), np.array(x_grid))): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") + + +def check_grid_contains_sv(pineappl_grid, theory_card): + """ + Raises a `ValueError if the theory_card asks for scale-variations but they are not + available in the pineappl grid. + + Parameters + ---------- + pineappl_grid : pineappl.grid.Grid + grid + theory_card : dict + theory card + """ + xir = theory_card["XIR"] + xif = theory_card["XIF"] + ftr = theory_card["fact_to_ren_scale_ratio"] + if xir == 1 and xif == 1 and ftr == 1: + return 0 + order_list = [order.as_tuple() for order in pineappl_grid.orders()] + for order in order_list: + if order[-1] != 0 or order[-2] != 0: + return 0 + raise ValueError( + "Theory card is requesting scale variations but they are not available for this grid!" + ) diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index afe53e55..97bb56b8 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -24,3 +24,13 @@ def subcommand(pineappl_path, eko_path): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.argument("theory_ID", metavar="ID", type=click.Path(exists=True)) +def subcommand(pineappl_path, theory_ID): + """Check if PineAPPL grid contains scale variations if theory card needs them.""" + theory_card = theory_card.load(theory_ID) + pineappl_grid = pineappl.grid.Grid.read(pineappl_path) + check.check_grid_contains_sv(pineappl_grid, theory_card) From c13474d9aa1b2a7cc82f9b1af34129120549d935 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 14:39:53 +0200 Subject: [PATCH 02/36] Fixing --- src/pineko/cli/check.py | 10 ---------- src/pineko/cli/check_scalevar.py | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 src/pineko/cli/check_scalevar.py diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 97bb56b8..afe53e55 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -24,13 +24,3 @@ def subcommand(pineappl_path, eko_path): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) - - -@command.command("check_scalevar") -@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.argument("theory_ID", metavar="ID", type=click.Path(exists=True)) -def subcommand(pineappl_path, theory_ID): - """Check if PineAPPL grid contains scale variations if theory card needs them.""" - theory_card = theory_card.load(theory_ID) - pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - check.check_grid_contains_sv(pineappl_grid, theory_card) diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py new file mode 100644 index 00000000..323db011 --- /dev/null +++ b/src/pineko/cli/check_scalevar.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import click +import pineappl +import rich + +from .. import check, theory_card +from ._base import command + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.argument("theory_ID", metavar="ID", type=click.Path(exists=True)) +def subcommand(pineappl_path, theory_ID): + """Check if PineAPPL grid contains scale variations if theory card needs them""" + t_card = theory_card.load(theory_ID) + pineappl_grid = pineappl.grid.Grid.read(pineappl_path) + check.check_grid_contains_sv(pineappl_grid, t_card) From f7f3e0688077d4739e083f6c6c34d25d0308f30e Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 15:04:57 +0200 Subject: [PATCH 03/36] Put scalevar parameters as arguments --- src/pineko/check.py | 16 ++++++++-------- src/pineko/cli/check_scalevar.py | 5 ++++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index d72fccb8..6427c14a 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -43,21 +43,21 @@ def check_grid_and_eko_compatible(pineappl_grid, operators): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") -def check_grid_contains_sv(pineappl_grid, theory_card): - """ - Raises a `ValueError if the theory_card asks for scale-variations but they are not +def check_grid_contains_sv(pineappl_grid, xir, xif, ftr): + """Raises a `ValueError if the theory_card asks for scale-variations but they are not available in the pineappl grid. Parameters ---------- pineappl_grid : pineappl.grid.Grid grid - theory_card : dict - theory card + xir : float + log of renormalization scale ratio to central + xif : float + log of factorization scale ratio to central (scheme-C) + ftr : float + log of factorization scale ratio to central (scheme-B) """ - xir = theory_card["XIR"] - xif = theory_card["XIF"] - ftr = theory_card["fact_to_ren_scale_ratio"] if xir == 1 and xif == 1 and ftr == 1: return 0 order_list = [order.as_tuple() for order in pineappl_grid.orders()] diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py index 323db011..10d7c3eb 100644 --- a/src/pineko/cli/check_scalevar.py +++ b/src/pineko/cli/check_scalevar.py @@ -13,5 +13,8 @@ def subcommand(pineappl_path, theory_ID): """Check if PineAPPL grid contains scale variations if theory card needs them""" t_card = theory_card.load(theory_ID) + xir = t_card["XIR"] + xif = t_card["XIF"] + ftr = t_card["fact_to_ren_scale_ratio"] pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - check.check_grid_contains_sv(pineappl_grid, t_card) + check.check_grid_contains_sv(pineappl_grid, xir, xif, ftr) From 02ee40d888914f50b6ddb7c3abdc7b0e65a737fa Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 15:13:35 +0200 Subject: [PATCH 04/36] Fixed init of cli --- src/pineko/cli/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pineko/cli/__init__.py b/src/pineko/cli/__init__.py index 943ede4a..f392e146 100644 --- a/src/pineko/cli/__init__.py +++ b/src/pineko/cli/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import check, compare, convolute, opcard, theory_ +from . import check, check_scalevar, compare, convolute, opcard, theory_ from ._base import command From 4fad3030d029b1f389eef3932662a45a34b91f78 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Thu, 16 Jun 2022 13:59:52 +0200 Subject: [PATCH 05/36] Added SV check as default when computing fks --- src/pineko/check.py | 12 +++++++----- src/pineko/cli/check_scalevar.py | 3 +-- src/pineko/theory.py | 7 ++++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index 6427c14a..74824f4e 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import numpy as np +import pineappl def in1d(a, b, rtol=1e-05, atol=1e-08): @@ -43,23 +44,24 @@ def check_grid_and_eko_compatible(pineappl_grid, operators): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") -def check_grid_contains_sv(pineappl_grid, xir, xif, ftr): +def check_grid_contains_sv(grid_path, xir, xif, ftr): """Raises a `ValueError if the theory_card asks for scale-variations but they are not available in the pineappl grid. Parameters ---------- - pineappl_grid : pineappl.grid.Grid - grid + grid_path : pathlib.Path + path to grid xir : float - log of renormalization scale ratio to central + log of renormalization scale ratio to central xif : float log of factorization scale ratio to central (scheme-C) ftr : float - log of factorization scale ratio to central (scheme-B) + log of factorization scale ratio to central (scheme-B) """ if xir == 1 and xif == 1 and ftr == 1: return 0 + pineappl_grid = pineappl.grid.Grid.read(grid_path) order_list = [order.as_tuple() for order in pineappl_grid.orders()] for order in order_list: if order[-1] != 0 or order[-2] != 0: diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py index 10d7c3eb..6b46653f 100644 --- a/src/pineko/cli/check_scalevar.py +++ b/src/pineko/cli/check_scalevar.py @@ -16,5 +16,4 @@ def subcommand(pineappl_path, theory_ID): xir = t_card["XIR"] xif = t_card["XIF"] ftr = t_card["fact_to_ren_scale_ratio"] - pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - check.check_grid_contains_sv(pineappl_grid, xir, xif, ftr) + check.check_grid_contains_sv(pineappl_path, xir, xif, ftr) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 6c04ebf1..9cb02cff 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -6,7 +6,7 @@ import rich import yaml -from . import configs, evolve, parser, theory_card +from . import check, configs, evolve, parser, theory_card logger = logging.getLogger(__name__) @@ -315,6 +315,11 @@ def fk(self, name, grid_path, tcard, pdf): do_log = self.activate_logging( paths["logs"]["fk"], f"{self.theory_id}-{name}-{pdf}.log" ) + # check if grid contains SV if theory is requesting them + xir = t_card["XIR"] + xif = t_card["XIF"] + ftr = t_card["fact_to_ren_scale_ratio"] + check.check_grid_contains_sv(grid_path, xir, xif, ftr) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 7713ff01adef7b54889d00be2bbc643973edab11 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Thu, 16 Jun 2022 14:01:36 +0200 Subject: [PATCH 06/36] Fixing --- src/pineko/theory.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 9cb02cff..d919c67e 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -316,9 +316,9 @@ def fk(self, name, grid_path, tcard, pdf): paths["logs"]["fk"], f"{self.theory_id}-{name}-{pdf}.log" ) # check if grid contains SV if theory is requesting them - xir = t_card["XIR"] - xif = t_card["XIF"] - ftr = t_card["fact_to_ren_scale_ratio"] + xir = tcard["XIR"] + xif = tcard["XIF"] + ftr = tcard["fact_to_ren_scale_ratio"] check.check_grid_contains_sv(grid_path, xir, xif, ftr) # setup data eko_filename = self.ekos_path() / f"{name}.tar" From b1598f68c6541b30e12c657eb4fee990832881eb Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:50:14 +0200 Subject: [PATCH 07/36] Splitted funcs, put if in theory and change cli --- src/pineko/check.py | 35 +++++++++++++++++--------------- src/pineko/cli/__init__.py | 2 +- src/pineko/cli/check.py | 32 +++++++++++++++++++++++++++++ src/pineko/cli/check_scalevar.py | 19 ----------------- src/pineko/theory.py | 5 ++++- 5 files changed, 56 insertions(+), 37 deletions(-) delete mode 100644 src/pineko/cli/check_scalevar.py diff --git a/src/pineko/check.py b/src/pineko/check.py index 74824f4e..54ecd842 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -44,28 +44,31 @@ def check_grid_and_eko_compatible(pineappl_grid, operators): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") -def check_grid_contains_sv(grid_path, xir, xif, ftr): - """Raises a `ValueError if the theory_card asks for scale-variations but they are not - available in the pineappl grid. +def check_grid_contains_fact_sv(grid_path): + """Checks whether factorization scale-variations are available in the pineappl grid. + Parameters + ---------- + grid_path : pathlib.Path + path to grid + """ + pineappl_grid = pineappl.grid.Grid.read(grid_path) + order_list = [order.as_tuple() for order in pineappl_grid.orders()] + for order in order_list: + if order[-1] != 0: + return + raise ValueError("Factorization scale variations are not available for this grid") + +def check_grid_contains_ren_sv(grid_path): + """Checks whether renormalization scale-variations are available in the pineappl grid. Parameters ---------- grid_path : pathlib.Path path to grid - xir : float - log of renormalization scale ratio to central - xif : float - log of factorization scale ratio to central (scheme-C) - ftr : float - log of factorization scale ratio to central (scheme-B) """ - if xir == 1 and xif == 1 and ftr == 1: - return 0 pineappl_grid = pineappl.grid.Grid.read(grid_path) order_list = [order.as_tuple() for order in pineappl_grid.orders()] for order in order_list: - if order[-1] != 0 or order[-2] != 0: - return 0 - raise ValueError( - "Theory card is requesting scale variations but they are not available for this grid!" - ) + if order[-2] != 0: + return + raise ValueError("Renormalization scale variations are not available for this grid") diff --git a/src/pineko/cli/__init__.py b/src/pineko/cli/__init__.py index f392e146..943ede4a 100644 --- a/src/pineko/cli/__init__.py +++ b/src/pineko/cli/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import check, check_scalevar, compare, convolute, opcard, theory_ +from . import check, compare, convolute, opcard, theory_ from ._base import command diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index afe53e55..37cd512a 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -24,3 +24,35 @@ def subcommand(pineappl_path, eko_path): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.option( + "--tocheck", + required=True, + type=str, + default=None, + help="scale variations to check (xir or xif)", + show_default=True, +) +def subcommand_sv(pineappl_path, tocheck): + """Check if PineAPPL grid contains requested scale variations""" + if tocheck == "xir": + try: + check.check_grid_contains_ren_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain renormalization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + elif tocheck == "xif": + try: + check.check_grid_contains_fact_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain factorization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + else: + raise ValueError("Scale variation to check can be one between xir and xif") diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py deleted file mode 100644 index 6b46653f..00000000 --- a/src/pineko/cli/check_scalevar.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -import click -import pineappl -import rich - -from .. import check, theory_card -from ._base import command - - -@command.command("check_scalevar") -@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.argument("theory_ID", metavar="ID", type=click.Path(exists=True)) -def subcommand(pineappl_path, theory_ID): - """Check if PineAPPL grid contains scale variations if theory card needs them""" - t_card = theory_card.load(theory_ID) - xir = t_card["XIR"] - xif = t_card["XIF"] - ftr = t_card["fact_to_ren_scale_ratio"] - check.check_grid_contains_sv(pineappl_path, xir, xif, ftr) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index d919c67e..af0b6a94 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -319,7 +319,10 @@ def fk(self, name, grid_path, tcard, pdf): xir = tcard["XIR"] xif = tcard["XIF"] ftr = tcard["fact_to_ren_scale_ratio"] - check.check_grid_contains_sv(grid_path, xir, xif, ftr) + if not np.isclose(xir, 1.0): + check.check_grid_contains_ren_sv(grid_path) + if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): + check_grid_contains_fact_sv(grid_path) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From c7987f8185518c642f3ef035dcd7551ef4e2c8db Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:52:33 +0200 Subject: [PATCH 08/36] Fixing --- src/pineko/theory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index af0b6a94..49431276 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -5,6 +5,7 @@ import eko import rich import yaml +import numpy as np from . import check, configs, evolve, parser, theory_card @@ -322,7 +323,7 @@ def fk(self, name, grid_path, tcard, pdf): if not np.isclose(xir, 1.0): check.check_grid_contains_ren_sv(grid_path) if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): - check_grid_contains_fact_sv(grid_path) + check.check_grid_contains_fact_sv(grid_path) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 9fdd291c893d2860b67f6093745da712d0692fba Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:50:14 +0200 Subject: [PATCH 09/36] Splitted funcs, put if in theory and change cli --- src/pineko/check.py | 29 +++++++++++++++++++++++++++++ src/pineko/cli/check.py | 32 ++++++++++++++++++++++++++++++++ src/pineko/theory.py | 8 ++++++++ 3 files changed, 69 insertions(+) diff --git a/src/pineko/check.py b/src/pineko/check.py index 5a93ae79..510617da 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -65,3 +65,32 @@ def check_grid_and_eko_compatible(pineappl_grid, operators, xif): # x-grid if not np.all(in1d(np.unique(operators["targetgrid"]), np.array(x_grid))): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") + +def check_grid_contains_fact_sv(grid_path): + """Checks whether factorization scale-variations are available in the pineappl grid. + Parameters + ---------- + grid_path : pathlib.Path + path to grid + """ + pineappl_grid = pineappl.grid.Grid.read(grid_path) + order_list = [order.as_tuple() for order in pineappl_grid.orders()] + for order in order_list: + if order[-1] != 0: + return + raise ValueError("Factorization scale variations are not available for this grid") + + +def check_grid_contains_ren_sv(grid_path): + """Checks whether renormalization scale-variations are available in the pineappl grid. + Parameters + ---------- + grid_path : pathlib.Path + path to grid + """ + pineappl_grid = pineappl.grid.Grid.read(grid_path) + order_list = [order.as_tuple() for order in pineappl_grid.orders()] + for order in order_list: + if order[-2] != 0: + return + raise ValueError("Renormalization scale variations are not available for this grid") diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 2b5e2c54..4e660690 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -28,3 +28,35 @@ def subcommand(pineappl_path, eko_path, xif): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.option( + "--tocheck", + required=True, + type=str, + default=None, + help="scale variations to check (xir or xif)", + show_default=True, +) +def subcommand_sv(pineappl_path, tocheck): + """Check if PineAPPL grid contains requested scale variations""" + if tocheck == "xir": + try: + check.check_grid_contains_ren_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain renormalization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + elif tocheck == "xif": + try: + check.check_grid_contains_fact_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain factorization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + else: + raise ValueError("Scale variation to check can be one between xir and xif") diff --git a/src/pineko/theory.py b/src/pineko/theory.py index efcb534f..0a4afecb 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -346,6 +346,14 @@ def fk(self, name, grid_path, tcard, pdf): do_log = self.activate_logging( paths["logs"]["fk"], f"{self.theory_id}-{name}-{pdf}.log" ) + # check if grid contains SV if theory is requesting them + xir = tcard["XIR"] + xif = tcard["XIF"] + ftr = tcard["fact_to_ren_scale_ratio"] + if not np.isclose(xir, 1.0): + check.check_grid_contains_ren_sv(grid_path) + if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): + check_grid_contains_fact_sv(grid_path) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 832219875e8250419f4fada0cd8532595fbb6aaa Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:52:33 +0200 Subject: [PATCH 10/36] Fixing --- src/pineko/theory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 0a4afecb..2ffa4f41 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -353,7 +353,7 @@ def fk(self, name, grid_path, tcard, pdf): if not np.isclose(xir, 1.0): check.check_grid_contains_ren_sv(grid_path) if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): - check_grid_contains_fact_sv(grid_path) + check.check_grid_contains_fact_sv(grid_path) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From b4dc401e4feef5cffc4b137081c246b66c8ea8d8 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Tue, 5 Jul 2022 12:02:26 +0200 Subject: [PATCH 11/36] Change argument of the function and put tocheck as argument --- src/pineko/check.py | 19 +++++++++---------- src/pineko/cli/check.py | 14 ++++++-------- src/pineko/theory.py | 5 +++-- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index 324b0536..2c20ce97 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -67,30 +67,29 @@ def check_grid_and_eko_compatible(pineappl_grid, operators, xif): if not np.all(in1d(np.unique(operators["targetgrid"]), np.array(x_grid))): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") -def check_grid_contains_fact_sv(grid_path): + +def check_grid_contains_fact_sv(grid): """Checks whether factorization scale-variations are available in the pineappl grid. Parameters ---------- - grid_path : pathlib.Path - path to grid + grid: pineappl.grid.Grid + Pineappl grid """ - pineappl_grid = pineappl.grid.Grid.read(grid_path) - order_list = [order.as_tuple() for order in pineappl_grid.orders()] + order_list = [order.as_tuple() for order in grid.orders()] for order in order_list: if order[-1] != 0: return raise ValueError("Factorization scale variations are not available for this grid") -def check_grid_contains_ren_sv(grid_path): +def check_grid_contains_ren_sv(grid): """Checks whether renormalization scale-variations are available in the pineappl grid. Parameters ---------- - grid_path : pathlib.Path - path to grid + grid: pineappl.grid.Grid + Pineappl grid """ - pineappl_grid = pineappl.grid.Grid.read(grid_path) - order_list = [order.as_tuple() for order in pineappl_grid.orders()] + order_list = [order.as_tuple() for order in grid.orders()] for order in order_list: if order[-2] != 0: return diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 4e660690..34626dc9 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -32,19 +32,17 @@ def subcommand(pineappl_path, eko_path, xif): @command.command("check_scalevar") @click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.option( - "--tocheck", - required=True, +@click.argument( + "tocheck", + metavar="TOCHECK", type=str, - default=None, - help="scale variations to check (xir or xif)", - show_default=True, ) def subcommand_sv(pineappl_path, tocheck): """Check if PineAPPL grid contains requested scale variations""" + pineappl_grid = pineappl.grid.Grid.read(pineappl_path) if tocheck == "xir": try: - check.check_grid_contains_ren_sv(pineappl_path) + check.check_grid_contains_ren_sv(pineappl_grid) rich.print( "[green]Success:[/] grids contain renormalization scale variations" ) @@ -52,7 +50,7 @@ def subcommand_sv(pineappl_path, tocheck): rich.print("[red]Error:[/]", e) elif tocheck == "xif": try: - check.check_grid_contains_fact_sv(pineappl_path) + check.check_grid_contains_fact_sv(pineappl_grid) rich.print( "[green]Success:[/] grids contain factorization scale variations" ) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 31ffdece..bcbba8af 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -350,10 +350,11 @@ def fk(self, name, grid_path, tcard, pdf): xir = tcard["XIR"] xif = tcard["XIF"] ftr = tcard["fact_to_ren_scale_ratio"] + pineappl_grid = pineappl.grid.Grid.read(grid_path) if not np.isclose(xir, 1.0): - check.check_grid_contains_ren_sv(grid_path) + check.check_grid_contains_ren_sv(pineappl_grid) if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): - check.check_grid_contains_fact_sv(grid_path) + check.check_grid_contains_fact_sv(pineappl_grid) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 8c14399d2719fd5d540ae6df0c5527df7b5a3e63 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 09:57:17 +0200 Subject: [PATCH 12/36] put the grid as argument of evolve --- src/pineko/cli/convolute.py | 12 +++++++++++- src/pineko/evolve.py | 13 ++----------- src/pineko/theory.py | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 5687ca35..6b4f213b 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- """CLI entry point to convolution.""" import click +import pineappl as pine +import rich from .. import evolve from ._base import command @@ -38,8 +40,16 @@ def subcommand(pineappl, eko, fktable, max_as, max_al, xir, xif, pdf, assumption PDF is an optional PDF set compatible with the EKO to compare grid and FK table. """ + pineappl_grid = pine.grid.Grid.read(pineappl) + rich.print( + rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), + f" {pineappl}\n", + f"+ {eko}\n", + f"= {fktable}\n", + f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", + ) _grid, _fk, comp = evolve.evolve_grid( - pineappl, + pineappl_grid, eko, fktable, max_as, diff --git a/src/pineko/evolve.py b/src/pineko/evolve.py index 6844f042..55261a92 100644 --- a/src/pineko/evolve.py +++ b/src/pineko/evolve.py @@ -77,7 +77,7 @@ def write_operator_card(pineappl_grid, default_card, card_path, xi): def evolve_grid( - pineappl_path, + pineappl_grid, eko_path, fktable_path, max_as, @@ -92,7 +92,7 @@ def evolve_grid( Parameters ---------- - pineappl_path : str + pineappl_grid : pineappl.grid.Grid unconvoluted grid eko_path : str evolution operator @@ -113,15 +113,6 @@ def evolve_grid( comparison_pdf : None or str if given, a comparison table (with / without evolution) will be printed """ - rich.print( - rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), - f" {pineappl_path}\n", - f"+ {eko_path}\n", - f"= {fktable_path}\n", - f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", - ) - # load - pineappl_grid = pineappl.grid.Grid.read(str(pineappl_path)) _x_grid, _pids, mur2_grid, _muf2_grid = pineappl_grid.axes() operators = eko.output.Output.load_tar(eko_path) check.check_grid_and_eko_compatible(pineappl_grid, operators, xif) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index bcbba8af..5d7c243f 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -383,8 +383,16 @@ def fk(self, name, grid_path, tcard, pdf): logger.info("Start computation of %s", name) logger.info("max_as=%d, max_al=%d, xir=%f, xif=%f", max_as, max_al, xir, xif) start_time = time.perf_counter() + + rich.print( + rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), + f" {grid_path}\n", + f"+ {eko_filename}\n", + f"= {fk_filename}\n", + f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", + ) _grid, _fk, comparison = evolve.evolve_grid( - grid_path, + pineappl_grid, eko_filename, fk_filename, max_as, From 7c3147a5f4af7e5da59759b05aa2b5eb03a98ca6 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 10:56:36 +0200 Subject: [PATCH 13/36] Run pre-commit --- src/pineko/cli/convolute.py | 2 +- src/pineko/theory.py | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 6b4f213b..325a82d3 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """CLI entry point to convolution.""" import click -import pineappl as pine +import pineappl as pine import rich from .. import evolve diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 5d7c243f..62d47c89 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -385,12 +385,12 @@ def fk(self, name, grid_path, tcard, pdf): start_time = time.perf_counter() rich.print( - rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), - f" {grid_path}\n", - f"+ {eko_filename}\n", - f"= {fk_filename}\n", - f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", - ) + rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), + f" {grid_path}\n", + f"+ {eko_filename}\n", + f"= {fk_filename}\n", + f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", + ) _grid, _fk, comparison = evolve.evolve_grid( pineappl_grid, eko_filename, From 0316a2f0d30e15c79f3817de772866d463f673ee Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 12:32:24 +0200 Subject: [PATCH 14/36] Removed redundant def of xir and xif --- src/pineko/theory.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 62d47c89..e761e8ef 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -371,8 +371,6 @@ def fk(self, name, grid_path, tcard, pdf): # q2_grid = ocard["Q2grid"] operators = eko.output.Output.load_tar(eko_filename) q2_grid = operators["Q2grid"].keys() - xir = tcard["XIR"] - xif = tcard["XIF"] # PineAPPL wants alpha_s = 4*pi*a_s alphas_values = [ 4.0 * np.pi * astrong.a_s(xir * xir * Q2 / xif / xif) for Q2 in q2_grid From cd68db01ea9a74e12eeb8f1ca981991bc078aa47 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 12:56:00 +0200 Subject: [PATCH 15/36] Fixed import of pineappl --- src/pineko/check.py | 1 - src/pineko/cli/convolute.py | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index 2c20ce97..54cebb2f 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- """Tools to check compatibility of EKO and grid.""" import numpy as np -import pineappl def in1d(a, b, rtol=1e-05, atol=1e-08): diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 325a82d3..8f30249d 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """CLI entry point to convolution.""" import click -import pineappl as pine +import pineappl import rich from .. import evolve @@ -9,7 +9,7 @@ @command.command("convolute") -@click.argument("pineappl", type=click.Path(exists=True)) +@click.argument("pine", type=click.Path(exists=True)) @click.argument("eko", type=click.Path(exists=True)) @click.argument("fktable", type=click.Path()) @click.argument("max_as", type=int) @@ -25,10 +25,10 @@ help="the flavor assumptions to be used", show_default=True, ) -def subcommand(pineappl, eko, fktable, max_as, max_al, xir, xif, pdf, assumptions): +def subcommand(pine, eko, fktable, max_as, max_al, xir, xif, pdf, assumptions): """Convolute PineAPPL grid and EKO into an FK table. - PINEAPPL and EKO are the path to the respective elements to convolute, and + PINE and EKO are the path to the respective elements to convolute, and FKTABLE is the path where to dump the output. MAX_AS and MAX_AL are used to specify the order in QCD and QED @@ -40,7 +40,7 @@ def subcommand(pineappl, eko, fktable, max_as, max_al, xir, xif, pdf, assumption PDF is an optional PDF set compatible with the EKO to compare grid and FK table. """ - pineappl_grid = pine.grid.Grid.read(pineappl) + pineappl_grid = pineappl.grid.Grid.read(pine) rich.print( rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), f" {pineappl}\n", From bd2dbdd89d46abdcc661deb12175c538c7791954 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 9 Jul 2022 14:43:41 +0200 Subject: [PATCH 16/36] Upgrade PineAPPL to v0.5.4 --- poetry.lock | 497 +++++++++++++++---------------------------------- pyproject.toml | 2 +- 2 files changed, 152 insertions(+), 347 deletions(-) diff --git a/poetry.lock b/poetry.lock index 478dd0c4..07c241fa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -32,7 +32,7 @@ python-versions = "*" [[package]] name = "astroid" -version = "2.11.5" +version = "2.11.6" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false @@ -45,7 +45,7 @@ wrapt = ">=1.11,<2" [[package]] name = "atomicwrites" -version = "1.4.0" +version = "1.4.1" description = "Atomic file writes." category = "dev" optional = false @@ -67,7 +67,7 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> [[package]] name = "babel" -version = "2.10.1" +version = "2.10.3" description = "Internationalization utilities" category = "main" optional = false @@ -86,7 +86,7 @@ python-versions = "*" [[package]] name = "certifi" -version = "2022.5.18.1" +version = "2022.6.15" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -94,11 +94,11 @@ python-versions = ">=3.6" [[package]] name = "charset-normalizer" -version = "2.0.12" +version = "2.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false -python-versions = ">=3.5.0" +python-versions = ">=3.6.0" [package.extras] unicode_backport = ["unicodedata2"] @@ -116,7 +116,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.5" description = "Cross-platform colored terminal text." category = "main" optional = false @@ -135,7 +135,7 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] [[package]] name = "coverage" -version = "6.4" +version = "6.4.1" description = "Code coverage measurement for Python" category = "dev" optional = false @@ -212,7 +212,7 @@ python-versions = ">=3.5" [[package]] name = "imagesize" -version = "1.3.0" +version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "main" optional = false @@ -220,7 +220,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "importlib-metadata" -version = "4.11.4" +version = "4.12.0" description = "Read metadata from Python packages" category = "main" optional = false @@ -232,7 +232,7 @@ zipp = ">=0.5" [package.extras] docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] [[package]] name = "iniconfig" @@ -244,7 +244,7 @@ python-versions = "*" [[package]] name = "ipython" -version = "7.33.0" +version = "7.34.0" description = "IPython: Productive Interactive Computing" category = "dev" optional = false @@ -417,7 +417,7 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pandas" -version = "1.4.2" +version = "1.4.3" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false @@ -486,15 +486,19 @@ python-versions = "*" [[package]] name = "pineappl" -version = "0.5.2" +version = "0.5.4" description = "Python bindings to PineAPPL" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] numpy = ">=1.16.0,<2.0.0" +[package.extras] +test = ["pytest", "pytest-cov"] +docs = ["sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex", "nbsphinx"] + [[package]] name = "platformdirs" version = "2.5.2" @@ -521,7 +525,7 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "prompt-toolkit" -version = "3.0.29" +version = "3.0.30" description = "Library for building powerful interactive command lines in Python" category = "dev" optional = false @@ -584,24 +588,26 @@ python-versions = ">=3.6" [[package]] name = "pylint" -version = "2.13.9" +version = "2.14.4" description = "python code static checker" category = "dev" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7.2" [package.dependencies] -astroid = ">=2.11.5,<=2.12.0-dev0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} +astroid = ">=2.11.6,<=2.12.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = ">=0.2" isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] -testutil = ["gitpython (>3)"] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] [[package]] name = "pyparsing" @@ -707,21 +713,21 @@ python-versions = ">=3.6" [[package]] name = "requests" -version = "2.27.1" +version = "2.28.1" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7, <4" [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +charset-normalizer = ">=2,<3" +idna = ">=2.5,<4" urllib3 = ">=1.21.1,<1.27" [package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rich" @@ -914,9 +920,17 @@ category = "main" optional = false python-versions = ">=3.7" +[[package]] +name = "tomlkit" +version = "0.11.1" +description = "Style preserving TOML library" +category = "dev" +optional = false +python-versions = ">=3.6,<4.0" + [[package]] name = "traitlets" -version = "5.2.1.post0" +version = "5.3.0" description = "" category = "dev" optional = false @@ -927,7 +941,7 @@ test = ["pre-commit", "pytest"] [[package]] name = "typing-extensions" -version = "4.2.0" +version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" category = "dev" optional = false @@ -935,11 +949,11 @@ python-versions = ">=3.7" [[package]] name = "urllib3" -version = "1.26.9" +version = "1.26.10" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] @@ -988,7 +1002,7 @@ docs = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex"] [metadata] lock-version = "1.1" python-versions = ">=3.8,<3.11" -content-hash = "96e5920ee452d3066f8e2fc70969af7cd7d686c4efcdb29c5d80a0dcde4a4c16" +content-hash = "f3384f17db0e314e3baadae7b1b113e261ed964b080dcef7772f374fad6f225c" [metadata.files] a3b2bbc3ced97675ac3a71df45f55ba = [ @@ -1000,10 +1014,7 @@ a3b2bbc3ced97675ac3a71df45f55ba = [ {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0147a1d9dab10f8b23ef5fc97f570ce044e9f8409bfee2fbce551180fafcbb2e"}, {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0.tar.gz", hash = "sha256:1bd60035f9862db1130be035f631c2cfcf90d2ee0cfc6f33ce29fbf8a70b5a04"}, ] -alabaster = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, -] +alabaster = [] appdirs = [ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, @@ -1012,105 +1023,78 @@ appnope = [ {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, ] -astroid = [ - {file = "astroid-2.11.5-py3-none-any.whl", hash = "sha256:14ffbb4f6aa2cf474a0834014005487f7ecd8924996083ab411e7fa0b508ce0b"}, - {file = "astroid-2.11.5.tar.gz", hash = "sha256:f4e4ec5294c4b07ac38bab9ca5ddd3914d4bf46f9006eb5c0ae755755061044e"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] +astroid = [] +atomicwrites = [] attrs = [ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] -babel = [ - {file = "Babel-2.10.1-py3-none-any.whl", hash = "sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2"}, - {file = "Babel-2.10.1.tar.gz", hash = "sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"}, -] +babel = [] backcall = [ {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, ] -certifi = [ - {file = "certifi-2022.5.18.1-py3-none-any.whl", hash = "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"}, - {file = "certifi-2022.5.18.1.tar.gz", hash = "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, - {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, -] +certifi = [] +charset-normalizer = [] click = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, ] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] +colorama = [] commonmark = [ {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, ] coverage = [ - {file = "coverage-6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50ed480b798febce113709846b11f5d5ed1e529c88d8ae92f707806c50297abf"}, - {file = "coverage-6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26f8f92699756cb7af2b30720de0c5bb8d028e923a95b6d0c891088025a1ac8f"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60c2147921da7f4d2d04f570e1838db32b95c5509d248f3fe6417e91437eaf41"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:750e13834b597eeb8ae6e72aa58d1d831b96beec5ad1d04479ae3772373a8088"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5b9ee0fc146e907aa0f5fb858c3b3da9199d78b7bb2c9973d95550bd40f701"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a022394996419142b33a0cf7274cb444c01d2bb123727c4bb0b9acabcb515dea"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5a78cf2c43b13aa6b56003707c5203f28585944c277c1f3f109c7b041b16bd39"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9229d074e097f21dfe0643d9d0140ee7433814b3f0fc3706b4abffd1e3038632"}, - {file = "coverage-6.4-cp310-cp310-win32.whl", hash = "sha256:fb45fe08e1abc64eb836d187b20a59172053999823f7f6ef4f18a819c44ba16f"}, - {file = "coverage-6.4-cp310-cp310-win_amd64.whl", hash = "sha256:3cfd07c5889ddb96a401449109a8b97a165be9d67077df6802f59708bfb07720"}, - {file = "coverage-6.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:03014a74023abaf5a591eeeaf1ac66a73d54eba178ff4cb1fa0c0a44aae70383"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c82f2cd69c71698152e943f4a5a6b83a3ab1db73b88f6e769fabc86074c3b08"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b546cf2b1974ddc2cb222a109b37c6ed1778b9be7e6b0c0bc0cf0438d9e45a6"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc173f1ce9ffb16b299f51c9ce53f66a62f4d975abe5640e976904066f3c835d"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c53ad261dfc8695062fc8811ac7c162bd6096a05a19f26097f411bdf5747aee7"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:eef5292b60b6de753d6e7f2d128d5841c7915fb1e3321c3a1fe6acfe76c38052"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:543e172ce4c0de533fa892034cce260467b213c0ea8e39da2f65f9a477425211"}, - {file = "coverage-6.4-cp37-cp37m-win32.whl", hash = "sha256:00c8544510f3c98476bbd58201ac2b150ffbcce46a8c3e4fb89ebf01998f806a"}, - {file = "coverage-6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:b84ab65444dcc68d761e95d4d70f3cfd347ceca5a029f2ffec37d4f124f61311"}, - {file = "coverage-6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d548edacbf16a8276af13063a2b0669d58bbcfca7c55a255f84aac2870786a61"}, - {file = "coverage-6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:033ebec282793bd9eb988d0271c211e58442c31077976c19c442e24d827d356f"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742fb8b43835078dd7496c3c25a1ec8d15351df49fb0037bffb4754291ef30ce"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d55fae115ef9f67934e9f1103c9ba826b4c690e4c5bcf94482b8b2398311bf9c"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd698341626f3c77784858427bad0cdd54a713115b423d22ac83a28303d1d95"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:62d382f7d77eeeaff14b30516b17bcbe80f645f5cf02bb755baac376591c653c"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:016d7f5cf1c8c84f533a3c1f8f36126fbe00b2ec0ccca47cc5731c3723d327c6"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:69432946f154c6add0e9ede03cc43b96e2ef2733110a77444823c053b1ff5166"}, - {file = "coverage-6.4-cp38-cp38-win32.whl", hash = "sha256:83bd142cdec5e4a5c4ca1d4ff6fa807d28460f9db919f9f6a31babaaa8b88426"}, - {file = "coverage-6.4-cp38-cp38-win_amd64.whl", hash = "sha256:4002f9e8c1f286e986fe96ec58742b93484195defc01d5cc7809b8f7acb5ece3"}, - {file = "coverage-6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e4f52c272fdc82e7c65ff3f17a7179bc5f710ebc8ce8a5cadac81215e8326740"}, - {file = "coverage-6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5578efe4038be02d76c344007b13119b2b20acd009a88dde8adec2de4f630b5"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8099ea680201c2221f8468c372198ceba9338a5fec0e940111962b03b3f716a"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a00441f5ea4504f5abbc047589d09e0dc33eb447dc45a1a527c8b74bfdd32c65"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e76bd16f0e31bc2b07e0fb1379551fcd40daf8cdf7e24f31a29e442878a827c"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8d2e80dd3438e93b19e1223a9850fa65425e77f2607a364b6fd134fcd52dc9df"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:341e9c2008c481c5c72d0e0dbf64980a4b2238631a7f9780b0fe2e95755fb018"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:21e6686a95025927775ac501e74f5940cdf6fe052292f3a3f7349b0abae6d00f"}, - {file = "coverage-6.4-cp39-cp39-win32.whl", hash = "sha256:968ed5407f9460bd5a591cefd1388cc00a8f5099de9e76234655ae48cfdbe2c3"}, - {file = "coverage-6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e35217031e4b534b09f9b9a5841b9344a30a6357627761d4218818b865d45055"}, - {file = "coverage-6.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:e637ae0b7b481905358624ef2e81d7fb0b1af55f5ff99f9ba05442a444b11e45"}, - {file = "coverage-6.4.tar.gz", hash = "sha256:727dafd7f67a6e1cad808dc884bd9c5a2f6ef1f8f6d2f22b37b96cb0080d4f49"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4ce1b258493cbf8aec43e9b50d89982346b98e9ffdfaae8ae5793bc112fb0068"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c4e737f60c6936460c5be330d296dd5b48b3963f48634c53b3f7deb0f34ec4"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84e65ef149028516c6d64461b95a8dbcfce95cfd5b9eb634320596173332ea84"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f69718750eaae75efe506406c490d6fc5a6161d047206cc63ce25527e8a3adad"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e57816f8ffe46b1df8f12e1b348f06d164fd5219beba7d9433ba79608ef011cc"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ab269400706fab15981fd4bd5080c56bd5cc07c3bccb86aab5e1d5a88dc8f4"}, + {file = "coverage-6.4.1-cp310-cp310-win32.whl", hash = "sha256:a7f3049243783df2e6cc6deafc49ea123522b59f464831476d3d1448e30d72df"}, + {file = "coverage-6.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:ee2ddcac99b2d2aec413e36d7a429ae9ebcadf912946b13ffa88e7d4c9b712d6"}, + {file = "coverage-6.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb73e0011b8793c053bfa85e53129ba5f0250fdc0392c1591fd35d915ec75c46"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106c16dfe494de3193ec55cac9640dd039b66e196e4641fa8ac396181578b982"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f4f3df85aa39da00fd3ec4b5abeb7407e82b68c7c5ad181308b0e2526da5d4"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:961e2fb0680b4f5ad63234e0bf55dfb90d302740ae9c7ed0120677a94a1590cb"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cec3a0f75c8f1031825e19cd86ee787e87cf03e4fd2865c79c057092e69e3a3b"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:129cd05ba6f0d08a766d942a9ed4b29283aff7b2cccf5b7ce279d50796860bb3"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bf5601c33213d3cb19d17a796f8a14a9eaa5e87629a53979a5981e3e3ae166f6"}, + {file = "coverage-6.4.1-cp37-cp37m-win32.whl", hash = "sha256:269eaa2c20a13a5bf17558d4dc91a8d078c4fa1872f25303dddcbba3a813085e"}, + {file = "coverage-6.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f02cbbf8119db68455b9d763f2f8737bb7db7e43720afa07d8eb1604e5c5ae28"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ffa9297c3a453fba4717d06df579af42ab9a28022444cae7fa605af4df612d54"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:145f296d00441ca703a659e8f3eb48ae39fb083baba2d7ce4482fb2723e050d9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d44996140af8b84284e5e7d398e589574b376fb4de8ccd28d82ad8e3bea13"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2bd9a6fc18aab8d2e18f89b7ff91c0f34ff4d5e0ba0b33e989b3cd4194c81fd9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3384f2a3652cef289e38100f2d037956194a837221edd520a7ee5b42d00cc605"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9b3e07152b4563722be523e8cd0b209e0d1a373022cfbde395ebb6575bf6790d"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1480ff858b4113db2718848d7b2d1b75bc79895a9c22e76a221b9d8d62496428"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:865d69ae811a392f4d06bde506d531f6a28a00af36f5c8649684a9e5e4a85c83"}, + {file = "coverage-6.4.1-cp38-cp38-win32.whl", hash = "sha256:664a47ce62fe4bef9e2d2c430306e1428ecea207ffd68649e3b942fa8ea83b0b"}, + {file = "coverage-6.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:26dff09fb0d82693ba9e6231248641d60ba606150d02ed45110f9ec26404ed1c"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9c80df769f5ec05ad21ea34be7458d1dc51ff1fb4b2219e77fe24edf462d6df"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39ee53946bf009788108b4dd2894bf1349b4e0ca18c2016ffa7d26ce46b8f10d"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5b66caa62922531059bc5ac04f836860412f7f88d38a476eda0a6f11d4724f4"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd180ed867e289964404051a958f7cccabdeed423f91a899829264bb7974d3d3"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84631e81dd053e8a0d4967cedab6db94345f1c36107c71698f746cb2636c63e3"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8c08da0bd238f2970230c2a0d28ff0e99961598cb2e810245d7fc5afcf1254e8"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d42c549a8f41dc103a8004b9f0c433e2086add8a719da00e246e17cbe4056f72"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:309ce4a522ed5fca432af4ebe0f32b21d6d7ccbb0f5fcc99290e71feba67c264"}, + {file = "coverage-6.4.1-cp39-cp39-win32.whl", hash = "sha256:fdb6f7bd51c2d1714cea40718f6149ad9be6a2ee7d93b19e9f00934c0f2a74d9"}, + {file = "coverage-6.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:342d4aefd1c3e7f620a13f4fe563154d808b69cccef415415aece4c786665397"}, + {file = "coverage-6.4.1-pp36.pp37.pp38-none-any.whl", hash = "sha256:4803e7ccf93230accb928f3a68f00ffa80a88213af98ed338a57ad021ef06815"}, + {file = "coverage-6.4.1.tar.gz", hash = "sha256:4321f075095a096e70aff1d002030ee612b65a205a0a0f5b815280d5dc58100c"}, ] decorator = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, ] -dill = [ - {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, - {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, -] -docutils = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, -] -eko = [ - {file = "eko-0.8.5-py3-none-any.whl", hash = "sha256:d1bdbd8853a8e2af8a234ed33ff834d3c7357c831579d9f25cf655b550fb24d5"}, - {file = "eko-0.8.5.tar.gz", hash = "sha256:a9afb2adf689b230677056841ab6a8d16893745c65abff0cd0f5d028d3d70715"}, -] +dill = [] +docutils = [] +eko = [] fancycompleter = [ {file = "fancycompleter-0.9.1-py3-none-any.whl", hash = "sha256:dd076bca7d9d524cc7f25ec8f35ef95388ffef9ef46def4d3d25e9b044ad7080"}, {file = "fancycompleter-0.9.1.tar.gz", hash = "sha256:09e0feb8ae242abdfd7ef2ba55069a46f011814a80fe5476be48f51b00247272"}, @@ -1119,77 +1103,21 @@ idna = [ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] -imagesize = [ - {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"}, - {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.11.4-py3-none-any.whl", hash = "sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"}, - {file = "importlib_metadata-4.11.4.tar.gz", hash = "sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700"}, -] +imagesize = [] +importlib-metadata = [] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] -ipython = [ - {file = "ipython-7.33.0-py3-none-any.whl", hash = "sha256:916a3126896e4fd78dd4d9cf3e21586e7fd93bae3f1cd751588b75524b64bf94"}, - {file = "ipython-7.33.0.tar.gz", hash = "sha256:bcffb865a83b081620301ba0ec4d95084454f26b91d6d66b475bff3dfb0218d4"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] +ipython = [] +isort = [] jedi = [ {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, ] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -latexcodec = [ - {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, - {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] +jinja2 = [] +latexcodec = [] +lazy-object-proxy = [] llvmlite = [ {file = "llvmlite-0.38.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7dd2bd1d6406e7789273e3f8a304ed5d9adcfaa5768052fca7dc233a857be98"}, {file = "llvmlite-0.38.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a5e0ed215a576f0f872f47a70b8cb49864e0aefc8586aff5ce83e3bff47bc23"}, @@ -1243,56 +1171,12 @@ lz4 = [ {file = "lz4-3.1.10-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:59afeb136957ed7a2058e4ef61cb2d0f5894ca866a8bfca5ff43d49a5cbe4aa2"}, {file = "lz4-3.1.10.tar.gz", hash = "sha256:439e575ecfa9ecffcbd63cfed99baefbe422ab9645b1e82278024d8a21d9720b"}, ] -markupsafe = [ - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, -] +markupsafe = [] matplotlib-inline = [ {file = "matplotlib-inline-0.1.3.tar.gz", hash = "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee"}, {file = "matplotlib_inline-0.1.3-py3-none-any.whl", hash = "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"}, ] -mccabe = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] +mccabe = [] numba = [ {file = "numba-0.55.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:dd05f7c0ce64b6977596aa4e5a44747c6ef414d7989da1c7672337c54381a5ef"}, {file = "numba-0.55.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e36232eccd172c583b1f021c5c48744c087ae6fc9dc5c5f0dd2cb2286e517bf8"}, @@ -1352,27 +1236,27 @@ packaging = [ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pandas = [ - {file = "pandas-1.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:be67c782c4f1b1f24c2f16a157e12c2693fd510f8df18e3287c77f33d124ed07"}, - {file = "pandas-1.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5a206afa84ed20e07603f50d22b5f0db3fb556486d8c2462d8bc364831a4b417"}, - {file = "pandas-1.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0010771bd9223f7afe5f051eb47c4a49534345dfa144f2f5470b27189a4dd3b5"}, - {file = "pandas-1.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3228198333dd13c90b6434ddf61aa6d57deaca98cf7b654f4ad68a2db84f8cfe"}, - {file = "pandas-1.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b79af3a69e5175c6fa7b4e046b21a646c8b74e92c6581a9d825687d92071b51"}, - {file = "pandas-1.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:5586cc95692564b441f4747c47c8a9746792e87b40a4680a2feb7794defb1ce3"}, - {file = "pandas-1.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:061609334a8182ab500a90fe66d46f6f387de62d3a9cb9aa7e62e3146c712167"}, - {file = "pandas-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b8134651258bce418cb79c71adeff0a44090c98d955f6953168ba16cc285d9f7"}, - {file = "pandas-1.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:df82739e00bb6daf4bba4479a40f38c718b598a84654cbd8bb498fd6b0aa8c16"}, - {file = "pandas-1.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:385c52e85aaa8ea6a4c600a9b2821181a51f8be0aee3af6f2dcb41dafc4fc1d0"}, - {file = "pandas-1.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:295872bf1a09758aba199992c3ecde455f01caf32266d50abc1a073e828a7b9d"}, - {file = "pandas-1.4.2-cp38-cp38-win32.whl", hash = "sha256:95c1e422ced0199cf4a34385ff124b69412c4bc912011ce895582bee620dfcaa"}, - {file = "pandas-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:5c54ea4ef3823108cd4ec7fb27ccba4c3a775e0f83e39c5e17f5094cb17748bc"}, - {file = "pandas-1.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c072c7f06b9242c855ed8021ff970c0e8f8b10b35e2640c657d2a541c5950f59"}, - {file = "pandas-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f549097993744ff8c41b5e8f2f0d3cbfaabe89b4ae32c8c08ead6cc535b80139"}, - {file = "pandas-1.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ff08a14ef21d94cdf18eef7c569d66f2e24e0bc89350bcd7d243dd804e3b5eb2"}, - {file = "pandas-1.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c5bf555b6b0075294b73965adaafb39cf71c312e38c5935c93d78f41c19828a"}, - {file = "pandas-1.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51649ef604a945f781105a6d2ecf88db7da0f4868ac5d45c51cb66081c4d9c73"}, - {file = "pandas-1.4.2-cp39-cp39-win32.whl", hash = "sha256:d0d4f13e4be7ce89d7057a786023c461dd9370040bdb5efa0a7fe76b556867a0"}, - {file = "pandas-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:09d8be7dd9e1c4c98224c4dfe8abd60d145d934e9fc1f5f411266308ae683e6a"}, - {file = "pandas-1.4.2.tar.gz", hash = "sha256:92bc1fc585f1463ca827b45535957815b7deb218c549b7c18402c322c7549a12"}, + {file = "pandas-1.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d51674ed8e2551ef7773820ef5dab9322be0828629f2cbf8d1fc31a0c4fed640"}, + {file = "pandas-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:16ad23db55efcc93fa878f7837267973b61ea85d244fc5ff0ccbcfa5638706c5"}, + {file = "pandas-1.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:958a0588149190c22cdebbc0797e01972950c927a11a900fe6c2296f207b1d6f"}, + {file = "pandas-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e48fbb64165cda451c06a0f9e4c7a16b534fcabd32546d531b3c240ce2844112"}, + {file = "pandas-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f803320c9da732cc79210d7e8cc5c8019aad512589c910c66529eb1b1818230"}, + {file = "pandas-1.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:2893e923472a5e090c2d5e8db83e8f907364ec048572084c7d10ef93546be6d1"}, + {file = "pandas-1.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:24ea75f47bbd5574675dae21d51779a4948715416413b30614c1e8b480909f81"}, + {file = "pandas-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ebc990bd34f4ac3c73a2724c2dcc9ee7bf1ce6cf08e87bb25c6ad33507e318"}, + {file = "pandas-1.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d6c0106415ff1a10c326c49bc5dd9ea8b9897a6ca0c8688eb9c30ddec49535ef"}, + {file = "pandas-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78b00429161ccb0da252229bcda8010b445c4bf924e721265bec5a6e96a92e92"}, + {file = "pandas-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfbf16b1ea4f4d0ee11084d9c026340514d1d30270eaa82a9f1297b6c8ecbf0"}, + {file = "pandas-1.4.3-cp38-cp38-win32.whl", hash = "sha256:48350592665ea3cbcd07efc8c12ff12d89be09cd47231c7925e3b8afada9d50d"}, + {file = "pandas-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:605d572126eb4ab2eadf5c59d5d69f0608df2bf7bcad5c5880a47a20a0699e3e"}, + {file = "pandas-1.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a3924692160e3d847e18702bb048dc38e0e13411d2b503fecb1adf0fcf950ba4"}, + {file = "pandas-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07238a58d7cbc8a004855ade7b75bbd22c0db4b0ffccc721556bab8a095515f6"}, + {file = "pandas-1.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:755679c49460bd0d2f837ab99f0a26948e68fa0718b7e42afbabd074d945bf84"}, + {file = "pandas-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41fc406e374590a3d492325b889a2686b31e7a7780bec83db2512988550dadbf"}, + {file = "pandas-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d9382f72a4f0e93909feece6fef5500e838ce1c355a581b3d8f259839f2ea76"}, + {file = "pandas-1.4.3-cp39-cp39-win32.whl", hash = "sha256:0daf876dba6c622154b2e6741f29e87161f844e64f84801554f879d27ba63c0d"}, + {file = "pandas-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:721a3dd2f06ef942f83a819c0f3f6a648b2830b191a72bbe9451bcd49c3bd42e"}, + {file = "pandas-1.4.3.tar.gz", hash = "sha256:2ff7788468e75917574f080cd4681b27e1a7bf36461fe968b49a87b5a54d007c"}, ] parso = [ {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, @@ -1390,34 +1274,13 @@ pickleshare = [ {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, ] -pineappl = [ - {file = "pineappl-0.5.2-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:d299e59c3ed65880db7b1b1cf693c737fb92544f9454d7bdb88198388d5ca380"}, - {file = "pineappl-0.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c81ad04a6785e584f22488b869327448f8ca9b73cab54714c62d0caac549bd5"}, - {file = "pineappl-0.5.2-cp310-none-win_amd64.whl", hash = "sha256:a22c7fa0bbd6fdcd174066c63f166dd107e4ad4e1301c57918d5895c87ab8b01"}, - {file = "pineappl-0.5.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:293a37bb0ec300ad2038270a723bb80c3f54803f38e41c026a8f5a56220759b5"}, - {file = "pineappl-0.5.2-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f16b2fea1b96cbd439f27f919a448d0e46d046fda94732e204ae726f2a0d22d0"}, - {file = "pineappl-0.5.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82e762eed440fc536ab82bb3b62ba81d77aaefb9c3dd04197c75e1d6fcb610e5"}, - {file = "pineappl-0.5.2-cp37-none-win_amd64.whl", hash = "sha256:106c1d5d91fae531cd6a7e5c1b9c926c61f1ef91a44285b3d053b9da830de452"}, - {file = "pineappl-0.5.2-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:e64f2cf7e9f26d5fcb12944a4bcd68a042c92ff7b5e813758d1490e117b8e966"}, - {file = "pineappl-0.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551154386e5b40dfb552aafe1e1c67c2aba0dbaf68c2a61cab945ab09546352"}, - {file = "pineappl-0.5.2-cp38-none-win_amd64.whl", hash = "sha256:0e7c96584c1564cc2c4b1ab3a714f75444458d9ff1f77d27d24191e1baef1710"}, - {file = "pineappl-0.5.2-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:7b285dfa3a0bc4b9a9665234667b3fe0f745fc16ab228cf4550b097eecf54b32"}, - {file = "pineappl-0.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77c45d043a49aa8f94fe9ed731b807ad95e9622afc1d93622ad7577d84f67a69"}, - {file = "pineappl-0.5.2-cp39-none-win_amd64.whl", hash = "sha256:cbc3e26f9aba7be7c04efc0b27db6ff9d97b3d3d1e9c309000d268be43d9ac9e"}, - {file = "pineappl-0.5.2.tar.gz", hash = "sha256:d8904c44edccad79a05d584743c4dfd33ab630a22a9d07c178c286c653134a1b"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] +pineappl = [] +platformdirs = [] pluggy = [ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.29-py3-none-any.whl", hash = "sha256:62291dad495e665fca0bda814e342c69952086afb0f4094d0893d357e5c78752"}, - {file = "prompt_toolkit-3.0.29.tar.gz", hash = "sha256:bd640f60e8cecd74f0dc249713d433ace2ddc62b65ee07f96d358e0b152b6ea7"}, -] +prompt-toolkit = [] ptyprocess = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, @@ -1426,22 +1289,13 @@ py = [ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] -pybtex = [ - {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, - {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, -] -pybtex-docutils = [ - {file = "pybtex-docutils-1.0.2.tar.gz", hash = "sha256:43aa353b6d498fd5ac30f0073a98e332d061d34fe619d3d50d1761f8fd4aa016"}, - {file = "pybtex_docutils-1.0.2-py3-none-any.whl", hash = "sha256:6f9e3c25a37bcaac8c4f69513272706ec6253bb708a93d8b4b173f43915ba239"}, -] +pybtex = [] +pybtex-docutils = [] pygments = [ {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, ] -pylint = [ - {file = "pylint-2.13.9-py3-none-any.whl", hash = "sha256:705c620d388035bdd9ff8b44c5bcdd235bfb49d276d488dd2c8ff1736aa42526"}, - {file = "pylint-2.13.9.tar.gz", hash = "sha256:095567c96e19e6f57b5b907e67d265ff535e588fe26b12b5ebe1fc5645b2c731"}, -] +pylint = [] pyparsing = [ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, @@ -1454,17 +1308,12 @@ pyreadline = [ pyrepl = [ {file = "pyrepl-0.9.0.tar.gz", hash = "sha256:292570f34b5502e871bbb966d639474f2b57fbfcd3373c2d6a2f3d56e681a775"}, ] -pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] +pytest = [] pytest-cov = [ {file = "pytest-cov-2.12.1.tar.gz", hash = "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7"}, {file = "pytest_cov-2.12.1-py2.py3-none-any.whl", hash = "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a"}, ] -pytest-env = [ - {file = "pytest-env-0.6.2.tar.gz", hash = "sha256:7e94956aef7f2764f3c147d216ce066bf6c42948bb9e293169b1b1c880a580c2"}, -] +pytest-env = [] python-dateutil = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, @@ -1508,14 +1357,8 @@ pyyaml = [ {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] -requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, -] -rich = [ - {file = "rich-11.2.0-py3-none-any.whl", hash = "sha256:d5f49ad91fb343efcae45a2b2df04a9755e863e50413623ab8c9e74f05aee52b"}, - {file = "rich-11.2.0.tar.gz", hash = "sha256:1a6266a5738115017bb64a66c59c717e7aa047b3ae49a011ede4abdeffc6536e"}, -] +requests = [] +rich = [] scipy = [ {file = "scipy-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4"}, {file = "scipy-1.8.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e013aed00ed776d790be4cb32826adb72799c61e318676172495383ba4570aa4"}, @@ -1545,46 +1388,16 @@ six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -sphinx = [ - {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, - {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, - {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-bibtex = [ - {file = "sphinxcontrib-bibtex-2.4.2.tar.gz", hash = "sha256:65b023ee47f35f1f03ac4d71c824e67c624c7ecac1bb26e83623271a01f9da86"}, - {file = "sphinxcontrib_bibtex-2.4.2-py3-none-any.whl", hash = "sha256:608512afde6b732148cdc9123550bd560bf48e071d1fb7bb1bab4f4437ff04f4"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] +snowballstemmer = [] +sphinx = [] +sphinx-rtd-theme = [] +sphinxcontrib-applehelp = [] +sphinxcontrib-bibtex = [] +sphinxcontrib-devhelp = [] +sphinxcontrib-htmlhelp = [] +sphinxcontrib-jsmath = [] +sphinxcontrib-qthelp = [] +sphinxcontrib-serializinghtml = [] toml = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, @@ -1593,18 +1406,10 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] -traitlets = [ - {file = "traitlets-5.2.1.post0-py3-none-any.whl", hash = "sha256:f44b708d33d98b0addb40c29d148a761f44af740603a8fd0e2f8b5b27cf0f087"}, - {file = "traitlets-5.2.1.post0.tar.gz", hash = "sha256:70815ecb20ec619d1af28910ade523383be13754283aef90528eb3d47b77c5db"}, -] -typing-extensions = [ - {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, - {file = "typing_extensions-4.2.0.tar.gz", hash = "sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"}, -] -urllib3 = [ - {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"}, - {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"}, -] +tomlkit = [] +traitlets = [] +typing-extensions = [] +urllib3 = [] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, diff --git a/pyproject.toml b/pyproject.toml index e296392a..d1dfe439 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,7 +25,7 @@ packages = [{ include = "pineko", from = "src" }] [tool.poetry.dependencies] python = ">=3.8,<3.11" eko = "^0.8.5" -pineappl = "^0.5.2" +pineappl = "^0.5.4" PyYAML = "^6.0" numpy = "^1.21.0" pandas = "^1.4.1" From 5fcc28356145319914510ad835a90f1b920ea7d6 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Sat, 9 Jul 2022 15:05:38 +0200 Subject: [PATCH 17/36] Fixed import of pineappl --- src/pineko/theory.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index e761e8ef..a15a5300 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -11,6 +11,7 @@ import eko import numpy as np +import pineappl import rich import yaml from eko import strong_coupling as sc From 5d194dfa90e0e12578856380813e65d8b4d18c95 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:50:14 +0200 Subject: [PATCH 18/36] Splitted funcs, put if in theory and change cli --- src/pineko/check.py | 29 +++++++++++++++++++++++++++++ src/pineko/cli/check.py | 32 ++++++++++++++++++++++++++++++++ src/pineko/theory.py | 8 ++++++++ 3 files changed, 69 insertions(+) diff --git a/src/pineko/check.py b/src/pineko/check.py index 5a93ae79..510617da 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -65,3 +65,32 @@ def check_grid_and_eko_compatible(pineappl_grid, operators, xif): # x-grid if not np.all(in1d(np.unique(operators["targetgrid"]), np.array(x_grid))): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") + +def check_grid_contains_fact_sv(grid_path): + """Checks whether factorization scale-variations are available in the pineappl grid. + Parameters + ---------- + grid_path : pathlib.Path + path to grid + """ + pineappl_grid = pineappl.grid.Grid.read(grid_path) + order_list = [order.as_tuple() for order in pineappl_grid.orders()] + for order in order_list: + if order[-1] != 0: + return + raise ValueError("Factorization scale variations are not available for this grid") + + +def check_grid_contains_ren_sv(grid_path): + """Checks whether renormalization scale-variations are available in the pineappl grid. + Parameters + ---------- + grid_path : pathlib.Path + path to grid + """ + pineappl_grid = pineappl.grid.Grid.read(grid_path) + order_list = [order.as_tuple() for order in pineappl_grid.orders()] + for order in order_list: + if order[-2] != 0: + return + raise ValueError("Renormalization scale variations are not available for this grid") diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 2b5e2c54..4e660690 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -28,3 +28,35 @@ def subcommand(pineappl_path, eko_path, xif): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.option( + "--tocheck", + required=True, + type=str, + default=None, + help="scale variations to check (xir or xif)", + show_default=True, +) +def subcommand_sv(pineappl_path, tocheck): + """Check if PineAPPL grid contains requested scale variations""" + if tocheck == "xir": + try: + check.check_grid_contains_ren_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain renormalization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + elif tocheck == "xif": + try: + check.check_grid_contains_fact_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain factorization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + else: + raise ValueError("Scale variation to check can be one between xir and xif") diff --git a/src/pineko/theory.py b/src/pineko/theory.py index efcb534f..0a4afecb 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -346,6 +346,14 @@ def fk(self, name, grid_path, tcard, pdf): do_log = self.activate_logging( paths["logs"]["fk"], f"{self.theory_id}-{name}-{pdf}.log" ) + # check if grid contains SV if theory is requesting them + xir = tcard["XIR"] + xif = tcard["XIF"] + ftr = tcard["fact_to_ren_scale_ratio"] + if not np.isclose(xir, 1.0): + check.check_grid_contains_ren_sv(grid_path) + if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): + check_grid_contains_fact_sv(grid_path) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 5a3df4963fbbfdb8bf70084c7bd22d4dda9ccc3e Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:52:33 +0200 Subject: [PATCH 19/36] Fixing --- src/pineko/theory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 0a4afecb..2ffa4f41 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -353,7 +353,7 @@ def fk(self, name, grid_path, tcard, pdf): if not np.isclose(xir, 1.0): check.check_grid_contains_ren_sv(grid_path) if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): - check_grid_contains_fact_sv(grid_path) + check.check_grid_contains_fact_sv(grid_path) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 26ee37e82d19741045d03809d08392ff206f3016 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 14:39:53 +0200 Subject: [PATCH 20/36] Fixing --- src/pineko/cli/check.py | 32 -------------------------------- src/pineko/cli/check_scalevar.py | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 32 deletions(-) create mode 100644 src/pineko/cli/check_scalevar.py diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 4e660690..2b5e2c54 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -28,35 +28,3 @@ def subcommand(pineappl_path, eko_path, xif): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) - - -@command.command("check_scalevar") -@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.option( - "--tocheck", - required=True, - type=str, - default=None, - help="scale variations to check (xir or xif)", - show_default=True, -) -def subcommand_sv(pineappl_path, tocheck): - """Check if PineAPPL grid contains requested scale variations""" - if tocheck == "xir": - try: - check.check_grid_contains_ren_sv(pineappl_path) - rich.print( - "[green]Success:[/] grids contain renormalization scale variations" - ) - except ValueError as e: - rich.print("[red]Error:[/]", e) - elif tocheck == "xif": - try: - check.check_grid_contains_fact_sv(pineappl_path) - rich.print( - "[green]Success:[/] grids contain factorization scale variations" - ) - except ValueError as e: - rich.print("[red]Error:[/]", e) - else: - raise ValueError("Scale variation to check can be one between xir and xif") diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py new file mode 100644 index 00000000..323db011 --- /dev/null +++ b/src/pineko/cli/check_scalevar.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import click +import pineappl +import rich + +from .. import check, theory_card +from ._base import command + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.argument("theory_ID", metavar="ID", type=click.Path(exists=True)) +def subcommand(pineappl_path, theory_ID): + """Check if PineAPPL grid contains scale variations if theory card needs them""" + t_card = theory_card.load(theory_ID) + pineappl_grid = pineappl.grid.Grid.read(pineappl_path) + check.check_grid_contains_sv(pineappl_grid, t_card) From fbeae62a801eb22f83a3e3dd53db2fc6d3201baa Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 15:04:57 +0200 Subject: [PATCH 21/36] Put scalevar parameters as arguments --- src/pineko/cli/check_scalevar.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py index 323db011..10d7c3eb 100644 --- a/src/pineko/cli/check_scalevar.py +++ b/src/pineko/cli/check_scalevar.py @@ -13,5 +13,8 @@ def subcommand(pineappl_path, theory_ID): """Check if PineAPPL grid contains scale variations if theory card needs them""" t_card = theory_card.load(theory_ID) + xir = t_card["XIR"] + xif = t_card["XIF"] + ftr = t_card["fact_to_ren_scale_ratio"] pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - check.check_grid_contains_sv(pineappl_grid, t_card) + check.check_grid_contains_sv(pineappl_grid, xir, xif, ftr) From 3f9d6fe2fe18ef77859d8ce470704c68182620b8 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 13 Jun 2022 15:13:35 +0200 Subject: [PATCH 22/36] Fixed init of cli --- src/pineko/cli/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pineko/cli/__init__.py b/src/pineko/cli/__init__.py index 0965db72..f392e146 100644 --- a/src/pineko/cli/__init__.py +++ b/src/pineko/cli/__init__.py @@ -1,4 +1,3 @@ # -*- coding: utf-8 -*- -"""CLI entry point.""" -from . import check, compare, convolute, opcard, theory_ +from . import check, check_scalevar, compare, convolute, opcard, theory_ from ._base import command From b4064901ba3f85d528167c801f12cd0e85976d74 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Thu, 16 Jun 2022 13:59:52 +0200 Subject: [PATCH 23/36] Added SV check as default when computing fks --- src/pineko/check.py | 1 + src/pineko/cli/check_scalevar.py | 3 +-- src/pineko/theory.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index 510617da..324b0536 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- """Tools to check compatibility of EKO and grid.""" import numpy as np +import pineappl def in1d(a, b, rtol=1e-05, atol=1e-08): diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py index 10d7c3eb..6b46653f 100644 --- a/src/pineko/cli/check_scalevar.py +++ b/src/pineko/cli/check_scalevar.py @@ -16,5 +16,4 @@ def subcommand(pineappl_path, theory_ID): xir = t_card["XIR"] xif = t_card["XIF"] ftr = t_card["fact_to_ren_scale_ratio"] - pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - check.check_grid_contains_sv(pineappl_grid, xir, xif, ftr) + check.check_grid_contains_sv(pineappl_path, xir, xif, ftr) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 2ffa4f41..31ffdece 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -15,7 +15,7 @@ import yaml from eko import strong_coupling as sc -from . import configs, evolve, parser, theory_card +from . import check, configs, evolve, parser, theory_card logger = logging.getLogger(__name__) From c053a8689484cbeb214516b7aac397610ead2ba3 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 17 Jun 2022 13:50:14 +0200 Subject: [PATCH 24/36] Splitted funcs, put if in theory and change cli --- src/pineko/check.py | 1 - src/pineko/cli/__init__.py | 2 +- src/pineko/cli/check.py | 32 ++++++++++++++++++++++++++++++++ src/pineko/cli/check_scalevar.py | 19 ------------------- 4 files changed, 33 insertions(+), 21 deletions(-) delete mode 100644 src/pineko/cli/check_scalevar.py diff --git a/src/pineko/check.py b/src/pineko/check.py index 324b0536..b0c1ca91 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -81,7 +81,6 @@ def check_grid_contains_fact_sv(grid_path): return raise ValueError("Factorization scale variations are not available for this grid") - def check_grid_contains_ren_sv(grid_path): """Checks whether renormalization scale-variations are available in the pineappl grid. Parameters diff --git a/src/pineko/cli/__init__.py b/src/pineko/cli/__init__.py index f392e146..943ede4a 100644 --- a/src/pineko/cli/__init__.py +++ b/src/pineko/cli/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import check, check_scalevar, compare, convolute, opcard, theory_ +from . import check, compare, convolute, opcard, theory_ from ._base import command diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 2b5e2c54..4e660690 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -28,3 +28,35 @@ def subcommand(pineappl_path, eko_path, xif): rich.print("[green]Success:[/] grids are compatible") except ValueError as e: rich.print("[red]Error:[/]", e) + + +@command.command("check_scalevar") +@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.option( + "--tocheck", + required=True, + type=str, + default=None, + help="scale variations to check (xir or xif)", + show_default=True, +) +def subcommand_sv(pineappl_path, tocheck): + """Check if PineAPPL grid contains requested scale variations""" + if tocheck == "xir": + try: + check.check_grid_contains_ren_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain renormalization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + elif tocheck == "xif": + try: + check.check_grid_contains_fact_sv(pineappl_path) + rich.print( + "[green]Success:[/] grids contain factorization scale variations" + ) + except ValueError as e: + rich.print("[red]Error:[/]", e) + else: + raise ValueError("Scale variation to check can be one between xir and xif") diff --git a/src/pineko/cli/check_scalevar.py b/src/pineko/cli/check_scalevar.py deleted file mode 100644 index 6b46653f..00000000 --- a/src/pineko/cli/check_scalevar.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -import click -import pineappl -import rich - -from .. import check, theory_card -from ._base import command - - -@command.command("check_scalevar") -@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.argument("theory_ID", metavar="ID", type=click.Path(exists=True)) -def subcommand(pineappl_path, theory_ID): - """Check if PineAPPL grid contains scale variations if theory card needs them""" - t_card = theory_card.load(theory_ID) - xir = t_card["XIR"] - xif = t_card["XIF"] - ftr = t_card["fact_to_ren_scale_ratio"] - check.check_grid_contains_sv(pineappl_path, xir, xif, ftr) From 72c7889606bd8181c79e01af41415b7691a3b59d Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Tue, 5 Jul 2022 12:02:26 +0200 Subject: [PATCH 25/36] Change argument of the function and put tocheck as argument --- src/pineko/check.py | 20 ++++++++++---------- src/pineko/cli/check.py | 14 ++++++-------- src/pineko/theory.py | 5 +++-- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index b0c1ca91..2c20ce97 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -67,29 +67,29 @@ def check_grid_and_eko_compatible(pineappl_grid, operators, xif): if not np.all(in1d(np.unique(operators["targetgrid"]), np.array(x_grid))): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") -def check_grid_contains_fact_sv(grid_path): + +def check_grid_contains_fact_sv(grid): """Checks whether factorization scale-variations are available in the pineappl grid. Parameters ---------- - grid_path : pathlib.Path - path to grid + grid: pineappl.grid.Grid + Pineappl grid """ - pineappl_grid = pineappl.grid.Grid.read(grid_path) - order_list = [order.as_tuple() for order in pineappl_grid.orders()] + order_list = [order.as_tuple() for order in grid.orders()] for order in order_list: if order[-1] != 0: return raise ValueError("Factorization scale variations are not available for this grid") -def check_grid_contains_ren_sv(grid_path): + +def check_grid_contains_ren_sv(grid): """Checks whether renormalization scale-variations are available in the pineappl grid. Parameters ---------- - grid_path : pathlib.Path - path to grid + grid: pineappl.grid.Grid + Pineappl grid """ - pineappl_grid = pineappl.grid.Grid.read(grid_path) - order_list = [order.as_tuple() for order in pineappl_grid.orders()] + order_list = [order.as_tuple() for order in grid.orders()] for order in order_list: if order[-2] != 0: return diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 4e660690..34626dc9 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -32,19 +32,17 @@ def subcommand(pineappl_path, eko_path, xif): @command.command("check_scalevar") @click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.option( - "--tocheck", - required=True, +@click.argument( + "tocheck", + metavar="TOCHECK", type=str, - default=None, - help="scale variations to check (xir or xif)", - show_default=True, ) def subcommand_sv(pineappl_path, tocheck): """Check if PineAPPL grid contains requested scale variations""" + pineappl_grid = pineappl.grid.Grid.read(pineappl_path) if tocheck == "xir": try: - check.check_grid_contains_ren_sv(pineappl_path) + check.check_grid_contains_ren_sv(pineappl_grid) rich.print( "[green]Success:[/] grids contain renormalization scale variations" ) @@ -52,7 +50,7 @@ def subcommand_sv(pineappl_path, tocheck): rich.print("[red]Error:[/]", e) elif tocheck == "xif": try: - check.check_grid_contains_fact_sv(pineappl_path) + check.check_grid_contains_fact_sv(pineappl_grid) rich.print( "[green]Success:[/] grids contain factorization scale variations" ) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 31ffdece..bcbba8af 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -350,10 +350,11 @@ def fk(self, name, grid_path, tcard, pdf): xir = tcard["XIR"] xif = tcard["XIF"] ftr = tcard["fact_to_ren_scale_ratio"] + pineappl_grid = pineappl.grid.Grid.read(grid_path) if not np.isclose(xir, 1.0): - check.check_grid_contains_ren_sv(grid_path) + check.check_grid_contains_ren_sv(pineappl_grid) if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): - check.check_grid_contains_fact_sv(grid_path) + check.check_grid_contains_fact_sv(pineappl_grid) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From 1928fcffcc4ff56ce49fdc69d45bae1ee0d6c4a0 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 09:57:17 +0200 Subject: [PATCH 26/36] put the grid as argument of evolve --- src/pineko/cli/convolute.py | 12 +++++++++++- src/pineko/evolve.py | 13 ++----------- src/pineko/theory.py | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 5687ca35..6b4f213b 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- """CLI entry point to convolution.""" import click +import pineappl as pine +import rich from .. import evolve from ._base import command @@ -38,8 +40,16 @@ def subcommand(pineappl, eko, fktable, max_as, max_al, xir, xif, pdf, assumption PDF is an optional PDF set compatible with the EKO to compare grid and FK table. """ + pineappl_grid = pine.grid.Grid.read(pineappl) + rich.print( + rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), + f" {pineappl}\n", + f"+ {eko}\n", + f"= {fktable}\n", + f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", + ) _grid, _fk, comp = evolve.evolve_grid( - pineappl, + pineappl_grid, eko, fktable, max_as, diff --git a/src/pineko/evolve.py b/src/pineko/evolve.py index 6844f042..55261a92 100644 --- a/src/pineko/evolve.py +++ b/src/pineko/evolve.py @@ -77,7 +77,7 @@ def write_operator_card(pineappl_grid, default_card, card_path, xi): def evolve_grid( - pineappl_path, + pineappl_grid, eko_path, fktable_path, max_as, @@ -92,7 +92,7 @@ def evolve_grid( Parameters ---------- - pineappl_path : str + pineappl_grid : pineappl.grid.Grid unconvoluted grid eko_path : str evolution operator @@ -113,15 +113,6 @@ def evolve_grid( comparison_pdf : None or str if given, a comparison table (with / without evolution) will be printed """ - rich.print( - rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), - f" {pineappl_path}\n", - f"+ {eko_path}\n", - f"= {fktable_path}\n", - f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", - ) - # load - pineappl_grid = pineappl.grid.Grid.read(str(pineappl_path)) _x_grid, _pids, mur2_grid, _muf2_grid = pineappl_grid.axes() operators = eko.output.Output.load_tar(eko_path) check.check_grid_and_eko_compatible(pineappl_grid, operators, xif) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index bcbba8af..5d7c243f 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -383,8 +383,16 @@ def fk(self, name, grid_path, tcard, pdf): logger.info("Start computation of %s", name) logger.info("max_as=%d, max_al=%d, xir=%f, xif=%f", max_as, max_al, xir, xif) start_time = time.perf_counter() + + rich.print( + rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), + f" {grid_path}\n", + f"+ {eko_filename}\n", + f"= {fk_filename}\n", + f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", + ) _grid, _fk, comparison = evolve.evolve_grid( - grid_path, + pineappl_grid, eko_filename, fk_filename, max_as, From 460af455a6d41a46fe5f07fbdd4cc82783660825 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 10:56:36 +0200 Subject: [PATCH 27/36] Run pre-commit --- src/pineko/cli/convolute.py | 2 +- src/pineko/theory.py | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 6b4f213b..325a82d3 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """CLI entry point to convolution.""" import click -import pineappl as pine +import pineappl as pine import rich from .. import evolve diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 5d7c243f..62d47c89 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -385,12 +385,12 @@ def fk(self, name, grid_path, tcard, pdf): start_time = time.perf_counter() rich.print( - rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), - f" {grid_path}\n", - f"+ {eko_filename}\n", - f"= {fk_filename}\n", - f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", - ) + rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), + f" {grid_path}\n", + f"+ {eko_filename}\n", + f"= {fk_filename}\n", + f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", + ) _grid, _fk, comparison = evolve.evolve_grid( pineappl_grid, eko_filename, From 8e4ba78bc0f33f8e443bf6ec2d60c4f09bfdd715 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 12:32:24 +0200 Subject: [PATCH 28/36] Removed redundant def of xir and xif --- src/pineko/theory.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index 62d47c89..e761e8ef 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -371,8 +371,6 @@ def fk(self, name, grid_path, tcard, pdf): # q2_grid = ocard["Q2grid"] operators = eko.output.Output.load_tar(eko_filename) q2_grid = operators["Q2grid"].keys() - xir = tcard["XIR"] - xif = tcard["XIF"] # PineAPPL wants alpha_s = 4*pi*a_s alphas_values = [ 4.0 * np.pi * astrong.a_s(xir * xir * Q2 / xif / xif) for Q2 in q2_grid From 48ec7951911d66f439eaaa439af62d8204e6703e Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Fri, 8 Jul 2022 12:56:00 +0200 Subject: [PATCH 29/36] Fixed import of pineappl --- src/pineko/check.py | 1 - src/pineko/cli/convolute.py | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index 2c20ce97..54cebb2f 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- """Tools to check compatibility of EKO and grid.""" import numpy as np -import pineappl def in1d(a, b, rtol=1e-05, atol=1e-08): diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 325a82d3..8f30249d 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """CLI entry point to convolution.""" import click -import pineappl as pine +import pineappl import rich from .. import evolve @@ -9,7 +9,7 @@ @command.command("convolute") -@click.argument("pineappl", type=click.Path(exists=True)) +@click.argument("pine", type=click.Path(exists=True)) @click.argument("eko", type=click.Path(exists=True)) @click.argument("fktable", type=click.Path()) @click.argument("max_as", type=int) @@ -25,10 +25,10 @@ help="the flavor assumptions to be used", show_default=True, ) -def subcommand(pineappl, eko, fktable, max_as, max_al, xir, xif, pdf, assumptions): +def subcommand(pine, eko, fktable, max_as, max_al, xir, xif, pdf, assumptions): """Convolute PineAPPL grid and EKO into an FK table. - PINEAPPL and EKO are the path to the respective elements to convolute, and + PINE and EKO are the path to the respective elements to convolute, and FKTABLE is the path where to dump the output. MAX_AS and MAX_AL are used to specify the order in QCD and QED @@ -40,7 +40,7 @@ def subcommand(pineappl, eko, fktable, max_as, max_al, xir, xif, pdf, assumption PDF is an optional PDF set compatible with the EKO to compare grid and FK table. """ - pineappl_grid = pine.grid.Grid.read(pineappl) + pineappl_grid = pineappl.grid.Grid.read(pine) rich.print( rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), f" {pineappl}\n", From 381426e3d35972e02629629a9b213c36d19e744c Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Sat, 9 Jul 2022 15:05:38 +0200 Subject: [PATCH 30/36] Fixed import of pineappl --- src/pineko/theory.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index e761e8ef..a15a5300 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -11,6 +11,7 @@ import eko import numpy as np +import pineappl import rich import yaml from eko import strong_coupling as sc From b88a051506774406aa2840d83bb718cc41e98b53 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Sat, 9 Jul 2022 18:13:30 +0200 Subject: [PATCH 31/36] Minor changes --- src/pineko/cli/convolute.py | 18 +++++++++--------- src/pineko/evolve.py | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/pineko/cli/convolute.py b/src/pineko/cli/convolute.py index 8f30249d..ba6a2c70 100644 --- a/src/pineko/cli/convolute.py +++ b/src/pineko/cli/convolute.py @@ -9,8 +9,8 @@ @command.command("convolute") -@click.argument("pine", type=click.Path(exists=True)) -@click.argument("eko", type=click.Path(exists=True)) +@click.argument("grid_path", type=click.Path(exists=True)) +@click.argument("op_path", type=click.Path(exists=True)) @click.argument("fktable", type=click.Path()) @click.argument("max_as", type=int) @click.argument("max_al", type=int) @@ -25,10 +25,10 @@ help="the flavor assumptions to be used", show_default=True, ) -def subcommand(pine, eko, fktable, max_as, max_al, xir, xif, pdf, assumptions): +def subcommand(grid_path, op_path, fktable, max_as, max_al, xir, xif, pdf, assumptions): """Convolute PineAPPL grid and EKO into an FK table. - PINE and EKO are the path to the respective elements to convolute, and + GRID_PATH and OP_PATH are the path to the respective elements to convolute, and FKTABLE is the path where to dump the output. MAX_AS and MAX_AL are used to specify the order in QCD and QED @@ -40,17 +40,17 @@ def subcommand(pine, eko, fktable, max_as, max_al, xir, xif, pdf, assumptions): PDF is an optional PDF set compatible with the EKO to compare grid and FK table. """ - pineappl_grid = pineappl.grid.Grid.read(pine) + grid = pineappl.grid.Grid.read(grid_path) rich.print( rich.panel.Panel.fit("Computing ...", style="magenta", box=rich.box.SQUARE), - f" {pineappl}\n", - f"+ {eko}\n", + f" {grid_path}\n", + f"+ {op_path}\n", f"= {fktable}\n", f"with max_as={max_as}, max_al={max_al}, xir={xir}, xif={xif}", ) _grid, _fk, comp = evolve.evolve_grid( - pineappl_grid, - eko, + grid, + op_path, fktable, max_as, max_al, diff --git a/src/pineko/evolve.py b/src/pineko/evolve.py index 55261a92..75fbe9e1 100644 --- a/src/pineko/evolve.py +++ b/src/pineko/evolve.py @@ -77,7 +77,7 @@ def write_operator_card(pineappl_grid, default_card, card_path, xi): def evolve_grid( - pineappl_grid, + grid, eko_path, fktable_path, max_as, @@ -92,7 +92,7 @@ def evolve_grid( Parameters ---------- - pineappl_grid : pineappl.grid.Grid + grid : pineappl.grid.Grid unconvoluted grid eko_path : str evolution operator @@ -113,23 +113,23 @@ def evolve_grid( comparison_pdf : None or str if given, a comparison table (with / without evolution) will be printed """ - _x_grid, _pids, mur2_grid, _muf2_grid = pineappl_grid.axes() + _x_grid, _pids, mur2_grid, _muf2_grid = grid.axes() operators = eko.output.Output.load_tar(eko_path) - check.check_grid_and_eko_compatible(pineappl_grid, operators, xif) + check.check_grid_and_eko_compatible(grid, operators, xif) # rotate to evolution (if doable and necessary) if np.allclose(operators["inputpids"], br.flavor_basis_pids): operators.to_evol() elif not np.allclose(operators["inputpids"], br.evol_basis_pids): raise ValueError("The EKO is neither in flavor nor in evolution basis.") # do it - order_mask = pineappl.grid.Order.create_mask(pineappl_grid.orders(), max_as, max_al) + order_mask = pineappl.grid.Order.create_mask(grid.orders(), max_as, max_al) # TODO this is a hack to not break the CLI # the problem is that the EKO output still does not contain the theory/operators card and # so I can't compute alpha_s *here* if xir != 1 if np.isclose(xir, 1.0) and alphas_values is None: mur2_grid = list(operators["Q2grid"].keys()) alphas_values = [op["alphas"] for op in operators["Q2grid"].values()] - fktable = pineappl_grid.convolute_eko( + fktable = grid.convolute_eko( operators, xir * xir * mur2_grid, alphas_values, @@ -145,8 +145,8 @@ def evolve_grid( comparison = None if comparison_pdf is not None: comparison = comparator.compare( - pineappl_grid, fktable, max_as, max_al, comparison_pdf, xir, xif + grid, fktable, max_as, max_al, comparison_pdf, xir, xif ) fktable.set_key_value("results_fk", comparison.to_string()) fktable.set_key_value("results_fk_pdfset", comparison_pdf) - return pineappl_grid, fktable, comparison + return grid, fktable, comparison From 7c30efec0f854107f5ef4c840821ca1cc87021df Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 11 Jul 2022 11:23:00 +0200 Subject: [PATCH 32/36] Change names of funcs --- src/pineko/check.py | 10 ++++++---- src/pineko/cli/check.py | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/pineko/check.py b/src/pineko/check.py index 54cebb2f..68365ae1 100644 --- a/src/pineko/check.py +++ b/src/pineko/check.py @@ -67,8 +67,9 @@ def check_grid_and_eko_compatible(pineappl_grid, operators, xif): raise ValueError("x grid in pineappl grid and eko operator are NOT compatible!") -def check_grid_contains_fact_sv(grid): - """Checks whether factorization scale-variations are available in the pineappl grid. +def contains_fact(grid): + """Check whether factorization scale-variations are available in the pineappl grid. + Parameters ---------- grid: pineappl.grid.Grid @@ -81,8 +82,9 @@ def check_grid_contains_fact_sv(grid): raise ValueError("Factorization scale variations are not available for this grid") -def check_grid_contains_ren_sv(grid): - """Checks whether renormalization scale-variations are available in the pineappl grid. +def contains_ren(grid): + """Check whether renormalization scale-variations are available in the pineappl grid. + Parameters ---------- grid: pineappl.grid.Grid diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 34626dc9..877dc13c 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -38,11 +38,11 @@ def subcommand(pineappl_path, eko_path, xif): type=str, ) def subcommand_sv(pineappl_path, tocheck): - """Check if PineAPPL grid contains requested scale variations""" + """Check if PineAPPL grid contains requested scale variations.""" pineappl_grid = pineappl.grid.Grid.read(pineappl_path) if tocheck == "xir": try: - check.check_grid_contains_ren_sv(pineappl_grid) + check.contains_ren(pineappl_grid) rich.print( "[green]Success:[/] grids contain renormalization scale variations" ) @@ -50,7 +50,7 @@ def subcommand_sv(pineappl_path, tocheck): rich.print("[red]Error:[/]", e) elif tocheck == "xif": try: - check.check_grid_contains_fact_sv(pineappl_grid) + check.contains_fact(pineappl_grid) rich.print( "[green]Success:[/] grids contain factorization scale variations" ) From 261a2c7eb371048133cea023e359e26c0e278916 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Mon, 11 Jul 2022 11:26:30 +0200 Subject: [PATCH 33/36] Fixed theory --- src/pineko/theory.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pineko/theory.py b/src/pineko/theory.py index a15a5300..3362fe3c 100644 --- a/src/pineko/theory.py +++ b/src/pineko/theory.py @@ -353,9 +353,9 @@ def fk(self, name, grid_path, tcard, pdf): ftr = tcard["fact_to_ren_scale_ratio"] pineappl_grid = pineappl.grid.Grid.read(grid_path) if not np.isclose(xir, 1.0): - check.check_grid_contains_ren_sv(pineappl_grid) + check.contains_ren(pineappl_grid) if not (np.isclose(xif, 1.0) and np.isclose(ftr, 1.0)): - check.check_grid_contains_fact_sv(pineappl_grid) + check.contains_fact(pineappl_grid) # setup data eko_filename = self.ekos_path() / f"{name}.tar" fk_filename = self.fks_path / f"{name}.{parser.EXT}" From a3bc1579ead7140fc71f13c7abbfe44e1935fa53 Mon Sep 17 00:00:00 2001 From: andreab1997 Date: Tue, 12 Jul 2022 13:24:00 +0200 Subject: [PATCH 34/36] Added relevant tests --- tests/test_check.py | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/test_check.py diff --git a/tests/test_check.py b/tests/test_check.py new file mode 100644 index 00000000..e7374fa7 --- /dev/null +++ b/tests/test_check.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +import pathlib + +import eko +import numpy as np +import pineappl +import pytest + +import pineko.check + + +class Fake_grid: + def __init__(self, order_list): + self.orderlist = order_list + + def orders(self): + return self.orderlist + + +class Order: + def __init__(self, order_tup): + self.orders = order_tup + + def as_tuple(self): + return self.orders + + +def test_contains_fact(): + first_order = Order((0, 0, 0, 0)) + second_order = Order((1, 1, 0, 0)) + third_order = Order((0, 0, 1, 1)) + order_list = [first_order, second_order, third_order] + mygrid = Fake_grid(order_list) + assert pineko.check.contains_fact(mygrid) is None + order_list.pop(-1) + mygrid_nofact = Fake_grid(order_list) + with pytest.raises(ValueError): + pineko.check.contains_fact(mygrid_nofact) + + +def test_contains_ren(): + first_order = Order((0, 0, 0, 0)) + second_order = Order((1, 1, 0, 0)) + third_order = Order((0, 0, 1, 1)) + order_list = [first_order, second_order, third_order] + mygrid = Fake_grid(order_list) + assert pineko.check.contains_ren(mygrid) is None + order_list.pop(-1) + mygrid_nofact = Fake_grid(order_list) + with pytest.raises(ValueError): + pineko.check.contains_ren(mygrid_nofact) From 975b8fe0a194d122a99e69071bc3cc7b9da68061 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Tue, 12 Jul 2022 13:27:37 +0200 Subject: [PATCH 35/36] Refactor check subcommand --- src/pineko/cli/check.py | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index 877dc13c..bc5373f2 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -9,20 +9,26 @@ from ._base import command -@command.command("check") -@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) -@click.argument("eko_path", metavar="EKO", type=click.Path(exists=True)) +@command.group("check") +def subcommand(): + """Check grid and operator properties.""" + + +@subcommand.command("compatibility") +@click.argument("grid_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@click.argument("operator_path", metavar="EKO", type=click.Path(exists=True)) @click.option("--xif", default=1.0, help="factorization scale variation") -def subcommand(pineappl_path, eko_path, xif): +def sub_compatibility(grid_path, operator_path, xif): """Check PineAPPL grid and EKO compatibility. In order to be compatible, the grid provided in PINEAPPL and the operator provided in EKO, have to expose the same x grid and Q2 grid. XIF is the factorization scale variation. + """ - pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - operators = eko.output.Output.load_tar(eko_path) + pineappl_grid = pineappl.grid.Grid.read(grid_path) + operators = eko.output.Output.load_tar(operator_path) try: check.check_grid_and_eko_compatible(pineappl_grid, operators, xif) rich.print("[green]Success:[/] grids are compatible") @@ -30,27 +36,27 @@ def subcommand(pineappl_path, eko_path, xif): rich.print("[red]Error:[/]", e) -@command.command("check_scalevar") -@click.argument("pineappl_path", metavar="PINEAPPL", type=click.Path(exists=True)) +@subcommand.command("scvar") +@click.argument("grid_path", metavar="PINEAPPL", type=click.Path(exists=True)) @click.argument( - "tocheck", - metavar="TOCHECK", - type=str, + "scale", + metavar="SCALE", + type=click.Choice(["ren", "fact"]), ) -def subcommand_sv(pineappl_path, tocheck): +def subcommand_sv(grid_path, scale): """Check if PineAPPL grid contains requested scale variations.""" - pineappl_grid = pineappl.grid.Grid.read(pineappl_path) - if tocheck == "xir": + grid = pineappl.grid.Grid.read(grid_path) + if scale == "ren": try: - check.contains_ren(pineappl_grid) + check.contains_ren(grid) rich.print( "[green]Success:[/] grids contain renormalization scale variations" ) except ValueError as e: rich.print("[red]Error:[/]", e) - elif tocheck == "xif": + elif scale == "fact": try: - check.contains_fact(pineappl_grid) + check.contains_fact(grid) rich.print( "[green]Success:[/] grids contain factorization scale variations" ) From 3010f8c1aae0346a1b391ecf0c4daa80c16badd1 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Tue, 12 Jul 2022 16:18:53 +0200 Subject: [PATCH 36/36] Improve functions' names consistency --- src/pineko/cli/check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pineko/cli/check.py b/src/pineko/cli/check.py index bc5373f2..676d6804 100644 --- a/src/pineko/cli/check.py +++ b/src/pineko/cli/check.py @@ -43,7 +43,7 @@ def sub_compatibility(grid_path, operator_path, xif): metavar="SCALE", type=click.Choice(["ren", "fact"]), ) -def subcommand_sv(grid_path, scale): +def sub_scvar(grid_path, scale): """Check if PineAPPL grid contains requested scale variations.""" grid = pineappl.grid.Grid.read(grid_path) if scale == "ren":