Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Format and upgrade Python #974

Merged
merged 2 commits into from
Feb 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ repos:
rev: v3.19.1
hooks:
- id: pyupgrade
args: ["--py310-plus"]
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
Expand Down
1 change: 1 addition & 0 deletions machine_learning_hep/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#############################################################################

import sys

from machine_learning_hep.steer_analysis import main

sys.exit(main())
19 changes: 11 additions & 8 deletions machine_learning_hep/analysis/analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
## along with this program. if not, see <https://www.gnu.org/licenses/>. ##
#############################################################################

from os.path import exists, join
from os import makedirs
import os
from os import makedirs
from os.path import exists, join

from machine_learning_hep.io import dump_yaml_from_dict

# HF specific imports
from machine_learning_hep.workflow.workflow_base import WorkflowBase
from machine_learning_hep.io import dump_yaml_from_dict


class Analyzer(WorkflowBase):
def __init__(self, datap, case, typean, period):
Expand All @@ -28,15 +30,16 @@ def __init__(self, datap, case, typean, period):
for mcordata in ("mc", "data"):
dp = datap["analysis"][typean][mcordata]
prefix_dir_res = dp.get("prefix_dir_res", "")
results_dir = prefix_dir_res + os.path.expandvars(dp["results"][period]) \
if period is not None \
else prefix_dir_res + os.path.expandvars(dp["resultsallp"])
results_dir = (
prefix_dir_res + os.path.expandvars(dp["results"][period])
if period is not None
else prefix_dir_res + os.path.expandvars(dp["resultsallp"])
)
if not exists(results_dir):
# create otput directories in case they do not exist
makedirs(results_dir)
if mcordata == "data":
dump_yaml_from_dict({case: datap},
join(results_dir, f"database_{case}_{typean}.yml"))
dump_yaml_from_dict({case: datap}, join(results_dir, f"database_{case}_{typean}.yml"))


class AnalyzerAfterBurner(WorkflowBase):
Expand Down
1,132 changes: 615 additions & 517 deletions machine_learning_hep/analysis/analyzer_jets.py

Large diffs are not rendered by default.

21 changes: 9 additions & 12 deletions machine_learning_hep/analysis/analyzer_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@

from machine_learning_hep.logger import get_logger


# pylint: disable=too-many-instance-attributes
class AnalyzerManager:
"""
Manager class handling analysis and systematic objects
"""

def __init__(self, ana_class, database, case, typean, doperiodbyperiod, *args):

self.ana_class = ana_class
self.database = database
self.case = case
Expand All @@ -36,7 +36,6 @@ def __init__(self, ana_class, database, case, typean, doperiodbyperiod, *args):

self.is_initialized = False


def get_analyzers(self, none_for_unused_period=True):
self.initialize()
if not none_for_unused_period:
Expand All @@ -50,7 +49,6 @@ def get_analyzers(self, none_for_unused_period=True):
analyzers[-1] = self.analyzers[-1]
return analyzers


def initialize(self):
"""
Collect all analyzer objects required in a list and initialises the after_burner if present
Expand All @@ -65,10 +63,8 @@ def initialize(self):

for ip, period in enumerate(useperiod):
if self.doperiodbyperiod and period:
self.analyzers.append(self.ana_class(self.database, self.case, self.typean, ip,
*self.add_args))
self.analyzers.append(self.ana_class(self.database, self.case, self.typean, None,
*self.add_args))
self.analyzers.append(self.ana_class(self.database, self.case, self.typean, ip, *self.add_args))
self.analyzers.append(self.ana_class(self.database, self.case, self.typean, None, *self.add_args))

if self.doperiodbyperiod:
# get after-burner, if any
Expand All @@ -79,7 +75,6 @@ def initialize(self):

self.is_initialized = True


def analyze(self, ana_steps):
"""
Gives a list of analyzers and analysis steps do each step for each analyzer
Expand All @@ -88,14 +83,16 @@ def analyze(self, ana_steps):
"""

if not ana_steps:
self.logger.info("No analysis steps to be done for Analyzer class %s. Return...",
self.ana_class.__name__)
self.logger.info("No analysis steps to be done for Analyzer class %s. Return...", self.ana_class.__name__)
return

self.initialize()

self.logger.info("Run all registered analyzers of type %s for following analysis steps: %s",
self.ana_class.__name__, ana_steps)
self.logger.info(
"Run all registered analyzers of type %s for following analysis steps: %s",
self.ana_class.__name__,
ana_steps,
)

# Collect potentially failed systematic steps
failed_steps = []
Expand Down
Loading
Loading