"""Set of plots"""
# pylint: disable=invalid-name,too-many-arguments,too-few-public-methods

import datetime
import logging
import math

from abc import ABC
from typing import Optional, Sequence, Tuple

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import numpy.typing as npt

from matplotlib.backends.backend_pdf import PdfPages

from metatlas.io import write_utils
from metatlas.plots import utils

logger = logging.getLogger(__name__)


def restore_matplotlib_settings(func):
    """Stop function from permanently modifiying rcParams"""

    def wrapper(*args, **kwargs):
        original = matplotlib.rcParams
        out = func(*args, **kwargs)
        matplotlib.rcParams = original
        return out

    return wrapper


class Plot(ABC):
    """A single plot"""

    def __init__(self, title: str, group_name: str):
        self.title = title