Skip to content
Open
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 changelog/37.misc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Modules now import the shared ``seismometer`` logger from ``seismometer.core.logger`` instead of each calling ``logging.getLogger("seismometer")``.
2 changes: 1 addition & 1 deletion src/seismometer/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
import pandas as pd

from seismometer.core.autometrics import initialize_otel_config
from seismometer.core.logger import logger

# isort: split
from seismometer.api import *

__version__ = importlib.metadata.version("seismometer")
logger = logging.getLogger("seismometer")


def run_startup(
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/api/plots.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
from typing import Any, Optional

import numpy as np
Expand All @@ -9,6 +8,7 @@
from seismometer.controls.decorators import disk_cached_html_segment
from seismometer.core.autometrics import store_call_parameters
from seismometer.core.decorators import export
from seismometer.core.logger import logger
from seismometer.data import get_cohort_data, get_cohort_performance_data
from seismometer.data import pandas_helpers as pdh
from seismometer.data import telemetry
Expand All @@ -24,8 +24,6 @@
from seismometer.html import template
from seismometer.seismogram import Seismogram

logger = logging.getLogger("seismometer")


@export
def plot_cohort_hist():
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/api/reports.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
import logging
from typing import Optional

from seismometer.controls.categorical import ExploreCategoricalPlots
from seismometer.controls.categorical_single_column import ExploreSingleCategoricalPlots
from seismometer.core.autometrics import store_call_parameters
from seismometer.core.decorators import export
from seismometer.core.logger import logger
from seismometer.data.filter import FilterRule
from seismometer.report.profiling import ComparisonReportWrapper, SingleReportWrapper
from seismometer.seismogram import Seismogram
from seismometer.table.analytics_table import ExploreBinaryModelAnalytics
from seismometer.table.fairness import ExploreBinaryModelFairness

logger = logging.getLogger("seismometer")


@export
class ExploreFairnessAudit(ExploreBinaryModelFairness):
Expand Down
4 changes: 0 additions & 4 deletions src/seismometer/api/templates.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import logging

import pandas as pd
from IPython.display import HTML
from pandas.io.formats.style import Styler
Expand All @@ -10,8 +8,6 @@
from seismometer.html import template
from seismometer.seismogram import Seismogram

logger = logging.getLogger("seismometer")


def _get_info_dict(plot_help: bool) -> dict[str, str | list[str]]:
"""
Expand Down
3 changes: 1 addition & 2 deletions src/seismometer/configuration/model.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import logging
from collections import Counter
from pathlib import Path
from typing import Any, List, Literal, Optional, Union

from pydantic import BaseModel, Field, ValidationInfo, field_validator, model_validator

logger = logging.getLogger("seismometer")
from seismometer.core.logger import logger

FileLike = str | Path
DirLike = str | Path
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/controls/categorical.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
from collections import defaultdict
from typing import List, Optional, Union

Expand All @@ -15,15 +14,14 @@
from seismometer.controls.styles import BOX_GRID_LAYOUT, html_title
from seismometer.core.autometrics import store_call_parameters
from seismometer.core.decorators import export
from seismometer.core.logger import logger
from seismometer.data import telemetry
from seismometer.data.filter import FilterRule
from seismometer.html import template
from seismometer.plot.mpl._ux import MAX_CATEGORY_SIZE
from seismometer.plot.mpl.likert import likert_plot
from seismometer.seismogram import Seismogram

logger = logging.getLogger("seismometer")

""" The maximum number of categories allowed in a categorical column. """


Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/controls/categorical_single_column.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
from typing import Optional

import traitlets
Expand All @@ -12,14 +11,13 @@
from seismometer.controls.styles import BOX_GRID_LAYOUT, WIDE_LABEL_STYLE, html_title
from seismometer.core.autometrics import store_call_parameters
from seismometer.core.decorators import export
from seismometer.core.logger import logger
from seismometer.data import telemetry
from seismometer.html import template
from seismometer.plot.mpl._ux import MAX_CATEGORY_SIZE
from seismometer.plot.mpl.likert import likert_plot
from seismometer.seismogram import Seismogram

logger = logging.getLogger("seismometer")


class OrdinalCategoricalSinglePlot:
def __init__(
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/controls/cohort_comparison.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import logging
from functools import partial
from typing import Optional

from IPython.display import display
from ipywidgets import Box, Button, Output, VBox

from seismometer.core.logger import logger
from seismometer.data.filter import filter_rule_from_cohort_dictionary

from .selection import MultiSelectionListWidget
from .styles import BOX_GRID_LAYOUT, WIDE_BUTTON_LAYOUT

logger = logging.getLogger("seismometer")

GENERATE_REPORT = "Generate Report"
GENERATING_REPORT = "Generating Report..."

Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/controls/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
As for all of the utils subpackage, no other custom sub-packages should be referenced.
"""
import hashlib
import logging
import os
import shutil
from functools import wraps
Expand All @@ -15,8 +14,7 @@
from ipywidgets import Widget

from seismometer.core.decorators import DiskCachedFunction

logger = logging.getLogger("seismometer")
from seismometer.core.logger import logger

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is not used here and you are making the change, can we just remove it?



def html_load(filepath) -> HTML:
Expand Down
3 changes: 0 additions & 3 deletions src/seismometer/controls/explore.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
import os
from functools import wraps
from typing import Any, Callable, Literal, Optional
Expand All @@ -14,8 +13,6 @@
from .styles import BOX_GRID_LAYOUT, WIDE_LABEL_STYLE, html_title
from .thresholds import MonotonicProbabilitySliderListWidget

logger = logging.getLogger("seismometer")


# region Model Evaluation Header Controls
def _combine_scores_checkbox(per_context):
Expand Down
3 changes: 0 additions & 3 deletions src/seismometer/controls/thresholds.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
import operator
from collections.abc import Iterable
from typing import Optional
Expand All @@ -10,8 +9,6 @@

from .styles import WIDE_LABEL_STYLE

logger = logging.getLogger("seismometer")


class ProbabilitySliderListWidget(ValueWidget, VBox):
"""
Expand Down
3 changes: 1 addition & 2 deletions src/seismometer/core/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"""
import builtins
import hashlib
import logging
import os
import shutil
import sys
Expand All @@ -16,7 +15,7 @@
import numpy as np
import pandas as pd

logger = logging.getLogger("seismometer")
from seismometer.core.logger import logger


def export(orig_fn):
Expand Down
4 changes: 2 additions & 2 deletions src/seismometer/core/io.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import hashlib
import json
import logging
import os
import re
import unicodedata
Expand All @@ -11,8 +10,9 @@
import nbformat
import yaml

from seismometer.core.logger import logger

Pathlike = str | Path
logger = logging.getLogger("seismometer")

# region io-accessor functions
read_ipynb = partial(nbformat.read, as_version=nbformat.current_nbformat)
Expand Down
4 changes: 4 additions & 0 deletions src/seismometer/core/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

logging.basicConfig()

# The package logger. Import it from here rather than calling `logging.getLogger("seismometer")`
# in each module, so every module logs under the same name.
logger = logging.getLogger("seismometer")


def init_logger(name: str = "seismometer") -> None:
logger = logging.getLogger(name)
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/data/binary_performance.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
import itertools
import logging
from typing import Any, List, Optional

import numpy as np
import pandas as pd

from seismometer.core.logger import logger
from seismometer.data import pandas_helpers as pdh
from seismometer.data.filter import FilterRule
from seismometer.seismogram import Seismogram

from . import BinaryClassifierMetricGenerator
from .performance import MONOTONIC_METRICS, THRESHOLD

logger = logging.getLogger("seismometer")

GENERATED_COLUMNS = [
"Positives",
"Prevalence",
Expand Down
5 changes: 1 addition & 4 deletions src/seismometer/data/loader/event.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import logging

import pandas as pd

import seismometer.data.pandas_helpers as pdh
from seismometer.configuration import ConfigProvider
from seismometer.configuration.model import Event
from seismometer.core.logger import logger

from .pipeline import ConfigOnlyHook

logger = logging.getLogger("seismometer")


def get_data_loader(config: ConfigProvider) -> ConfigOnlyHook:
"""
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/data/loader/pipeline.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import logging
from typing import Callable, Optional, TypeAlias

import pandas as pd

from seismometer.configuration import ConfigProvider

logger = logging.getLogger("seismometer")
from seismometer.core.logger import logger

ConfigOnlyHook: TypeAlias = Callable[[ConfigProvider], pd.DataFrame]
ConfigOnlyHook.__doc__ = """
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/data/loader/prediction.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import csv
import logging
import warnings

import numpy as np
Expand All @@ -8,11 +7,10 @@

import seismometer.data.pandas_helpers as pdh
from seismometer.configuration import ConfigProvider, ConfigurationError
from seismometer.core.logger import logger

from .pipeline import ConfigOnlyHook

logger = logging.getLogger("seismometer")


def get_data_loader(config: ConfigProvider) -> ConfigOnlyHook:
"""
Expand Down
3 changes: 1 addition & 2 deletions src/seismometer/data/pandas_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

from seismometer.configuration import ConfigurationError
from seismometer.configuration.model import MergeStrategies

logger = logging.getLogger("seismometer")
from seismometer.core.logger import logger

MAXIMUM_COUNT_CATS = 15

Expand Down
5 changes: 2 additions & 3 deletions src/seismometer/data/performance.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
from numbers import Number
from pathlib import Path
from typing import Callable, Optional, Tuple, Union
Expand All @@ -7,11 +6,11 @@
import pandas as pd
from sklearn.metrics import auc

from seismometer.core.logger import logger

from .confidence import PRConfidenceParam, ROCConfidenceParam, confidence_dict
from .decorators import export

logger = logging.getLogger("seismometer")

DEFAULT_RHO = 1 / 3

PathLike = Union[str, Path]
Expand Down
4 changes: 2 additions & 2 deletions src/seismometer/html/template.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import logging
from typing import Any

from IPython.display import HTML, SVG
from jinja2 import Environment, PackageLoader, TemplateNotFound

from seismometer.core.logger import logger

FULL_WIDTH_STYLE = "width: 100%; max-width: 1200px;"

logger = logging.getLogger("seismometer")

# Initializing Jinja
package_loader = PackageLoader("seismometer", "html/resources")
Expand Down
3 changes: 0 additions & 3 deletions src/seismometer/plot/mpl/timeseries.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
from typing import Optional

import matplotlib.pyplot as plt
Expand All @@ -8,8 +7,6 @@

from .decorators import model_plot

logger = logging.getLogger("seismometer")


@model_plot
def compare_series(
Expand Down
4 changes: 1 addition & 3 deletions src/seismometer/report/alerting.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,15 @@
show: true
"""

import logging
from pathlib import Path
from typing import Optional

import yaml
from pydantic import BaseModel, Field

from seismometer.core.logger import logger
from seismometer.plot.mpl._ux import alert_colors

logger = logging.getLogger("seismometer")


class ParsedAlert(BaseModel):
name: str
Expand Down
Loading