# Generated by configen, do not edit.
# See https://github.com/facebookresearch/hydra/tree/master/tools/configen
# fmt: off
# isort:skip_file
# flake8: noqa

from dataclasses import dataclass, field
from conduit.fair.data.datamodules.tabular.admissions import AdmissionsSens
from conduit.fair.data.datamodules.tabular.adult import AdultSens
from conduit.fair.data.datamodules.tabular.compas import CompasSens
from conduit.fair.data.datamodules.tabular.credit import CreditSens
from conduit.fair.data.datamodules.tabular.crime import CrimeSens
from conduit.fair.data.datamodules.tabular.german import GermanSens
from conduit.fair.data.datamodules.tabular.health import HealthSens
from conduit.fair.data.datamodules.tabular.law import LawSens
from conduit.fair.data.datamodules.tabular.sqf import SqfSens
from omegaconf import MISSING
from ranzen.torch.data import TrainingMode
from typing import Any
from typing import Optional


@dataclass
class AdmissionsDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.AdmissionsDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: AdmissionsSens = AdmissionsSens.gender
    disc_feats_only: bool = False


@dataclass
class AdultDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.AdultDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    bin_nationality: bool = False
    sens_feat: AdultSens = AdultSens.sex
    bin_race: bool = False
    disc_feats_only: bool = False


@dataclass
class CompasDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.CompasDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: CompasSens = CompasSens.sex
    disc_feats_only: bool = False


@dataclass
class CreditDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.CreditDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: CreditSens = CreditSens.sex
    disc_feats_only: bool = False


@dataclass
class CrimeDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.CrimeDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: CrimeSens = CrimeSens.raceBinary
    disc_feats_only: bool = False


@dataclass
class GermanDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.GermanDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: GermanSens = GermanSens.sex
    disc_feats_only: bool = False


@dataclass
class HealthDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.HealthDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: HealthSens = HealthSens.sex
    disc_feats_only: bool = False


@dataclass
class LawDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.LawDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: LawSens = LawSens.sex
    disc_feats_only: bool = False


@dataclass
class SqfDataModuleConf:
    _target_: str = "conduit.fair.data.datamodules.SqfDataModule"
    train_batch_size: int = 64
    eval_batch_size: Optional[int] = None
    val_prop: float = 0.2
    test_prop: float = 0.2
    num_workers: int = 0
    seed: int = 47
    persist_workers: bool = False
    pin_memory: bool = True
    stratified_sampling: bool = False
    instance_weighting: bool = False
    training_mode: TrainingMode = TrainingMode.epoch
    scaler: Any = MISSING  # ScalerType
    invert_s: bool = False
    sens_feat: SqfSens = SqfSens.sex
    disc_feats_only: bool = False
