from google.protobuf.descriptor import FieldDescriptor

ZSAF_PCS_STORAGE = "/mnt/sun-pcs01/zsaf"
ZSAF_NAUTILUS_STORAGE = "/mnt/nautilus_rw/zsaf"
ZSAF_LOG_EXTRACTOR_FOLDER = "log_extractor_data"
ZSAF_PARAMETERS_MODELING_FOLDER = "parameters_modeling_data"
ZSAF_PROBABILISTIC_SAMPLER_FOLDER = "probabilistic_sampler_data"
ZSAF_PROBABILISTIC_SAMPLER_FOLDER_TMP = "tmp_cached"
ZSAF_ITERATIVE_SAMPLER_FOLDER = "iterative_sampler_data"
ZSAF_CONST_PCP_ERROR_FOLDER = "const_pcp_error"
ZSAF_BAYESIAN_OPTIMIZATION_FOLDER = "bayesian_optimization"
ZSAF_BAYESIAN_OPTIMIZATION_SUITES_FOLDER = "bayesian_optimization_suites"
ZSAF_SCENARIO_GMMS_FOLDER = "gmm"
ZSAF_ODD_ANALYSIS_FOLDER = "odd_data_v1"
ZSAF_S3_BUCKET = "zoox-zsaf"
ZSAF_TMP = "/tmp"
ZSAF_AWS_KEY_ID = "AKIARAIQAQJBLPF5AWLZ"
ZSAF_AWS_KEY = "Ga/iPJOd0AKoKN8TU0bmTvyjcKG/3CviJcG3TX8Q"
MLFLOW_SERVER = "mysql+pymysql://zsaf:zsaf12345@sun-zsafdb01-p.zooxlabs.com:3306/mlflow"
COLUMN_NAME_SEPARATOR = "%"
PROTO_FIELD_SEPARATOR = "~"
NORMALIZING_SEPARATOR = "_"
SLAC_PILOT_MODE = 17
SLAC_PILOT_MODE_ON_TURING = 48
EXTRACTOR_GROUP = 4
ZSAF_MYSQL_SERVER = "sun-zsafdb01-p.zooxlabs.com"
ZSAF_MYSQL_USERNAME = "zsaf"
ZSAF_MYSQL_PASSWORD = "zsaf12345"
ZSAF_MYSQL_DATABASE = "zsaf"
ZSAF_MYSQL_DATABASE_TEST = "zsaf_test"
ZSAF_MYSQL_PORT = 3306
DB_CONN_STRING = (
    "postgresql+psycopg2://postgres:postgres@zsaf.zooxlabs.com:5432/zsaf_analytics"
)
ZSAF_MYSQL_GUEST = "guest"
DATABRICKS_HOST = "https://zoox.cloud.databricks.com"
DATABRICKS_MLFLOW_SERVER = "databricks"
DATABRICKS_TOKEN = "dapi9637c4a6d3a06c6dce6d6e8cddeaef72"
DATABRICKS_ACCOUNT = "svc-zsaf@zoox.com"
CLOUDBURST_CPU_PARTITION = "cloud_burst_cpu"
CLOUDBURST_GPU_PARTITION = "cloud_burst_gpu_4xl"
MAIN_TURING_PARTITION = "main_turing"
AIRFLOW_API_URL = "http://sun-zsafapp01-p.zooxlabs.com:8080/api/experimental"

# Mapping from protobuf to python types
PROTO_PYTHON_TYPE_MAP = {
    FieldDescriptor.TYPE_DOUBLE: float,
    FieldDescriptor.TYPE_FLOAT: float,
    FieldDescriptor.TYPE_INT64: int,
    FieldDescriptor.TYPE_UINT64: int,
    FieldDescriptor.TYPE_INT32: int,
    FieldDescriptor.TYPE_FIXED64: int,
    FieldDescriptor.TYPE_FIXED32: int,
    FieldDescriptor.TYPE_BOOL: bool,
    FieldDescriptor.TYPE_STRING: str,
    FieldDescriptor.TYPE_BYTES: bytes,
    FieldDescriptor.TYPE_UINT32: int,
    FieldDescriptor.TYPE_SFIXED32: int,
    FieldDescriptor.TYPE_SFIXED64: int,
    FieldDescriptor.TYPE_SINT32: int,
    FieldDescriptor.TYPE_SINT64: int,
    FieldDescriptor.TYPE_MESSAGE: None,
}
