Source code for lomas_server.utils.query_models

from typing import List, Optional, Union

from pydantic import BaseModel, Field

from constants import (
    DELTA_LIMIT,
    EPSILON_LIMIT,
    SSynthGanSynthesizer,
    SSynthMarginalSynthesizer,
)


[docs] class GetDbData(BaseModel): """Model input to get information about a dataset""" dataset_name: str
[docs] class GetDummyDataset(BaseModel): """Model input to get a dummy dataset""" dataset_name: str dummy_nb_rows: int = Field(..., gt=0) dummy_seed: int
[docs] class SmartnoiseSQLModel(BaseModel): """Model input for a smarnoise-sql query""" query_str: str dataset_name: str epsilon: float = Field( ..., gt=0, le=EPSILON_LIMIT, ) delta: float = Field( ..., gt=0, le=DELTA_LIMIT, ) mechanisms: dict postprocess: bool
[docs] class DummySmartnoiseSQLModel(BaseModel): """Model input for a smarnoise-sql dummy query""" query_str: str dataset_name: str dummy_nb_rows: int = Field(..., gt=0) dummy_seed: int epsilon: float = Field(..., gt=0) delta: float = Field(..., gt=0) mechanisms: dict postprocess: bool
[docs] class SmartnoiseSQLCostModel(BaseModel): """Model input for a smarnoise-sql cost query""" query_str: str dataset_name: str epsilon: float = Field(..., gt=0) delta: float = Field(..., gt=0) mechanisms: dict
[docs] class SmartnoiseSynthCostModel(BaseModel): """Model input for a smarnoise-synth cost""" dataset_name: str synth_name: Union[SSynthMarginalSynthesizer, SSynthGanSynthesizer] epsilon: float = Field(..., gt=0, le=EPSILON_LIMIT) delta: Optional[float] = None select_cols: List synth_params: dict nullable: bool constraints: str
[docs] class SmartnoiseSynthQueryModel(SmartnoiseSynthCostModel): """Model input for a smarnoise-synth query""" return_model: bool condition: str nb_samples: int
[docs] class DummySmartnoiseSynthQueryModel(SmartnoiseSynthQueryModel): """Dummy Model input for a smarnoise-synth query""" dummy_nb_rows: int = Field(..., gt=0) dummy_seed: int
[docs] class OpenDPModel(BaseModel): """Model input for an opendp query""" dataset_name: str opendp_json: str fixed_delta: Optional[float] = None
[docs] class DummyOpenDPModel(BaseModel): """Model input for a dummy opendp query""" dataset_name: str opendp_json: str dummy_nb_rows: int = Field(..., gt=0) dummy_seed: int fixed_delta: Optional[float] = None
[docs] class DiffPrivLibModel(BaseModel): """Model input for a diffprivlib query""" dataset_name: str diffprivlib_json: str feature_columns: list target_columns: Optional[list] test_size: float = Field(..., gt=0.0, lt=1.0) test_train_split_seed: int imputer_strategy: str
[docs] class DummyDiffPrivLibModel(BaseModel): """Model input for a dummy diffprivlib query""" dataset_name: str diffprivlib_json: str feature_columns: list target_columns: Optional[list] test_size: float = Field(..., gt=0.0, lt=1.0) test_train_split_seed: int imputer_strategy: str dummy_nb_rows: int = Field(..., gt=0) dummy_seed: int