"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class Scalar(google.protobuf.message.Message):
    """A Scalar represents data that does not fulfill the promise of a Dataset.
    A Dataset promises to have a schema and the possibility to iterate on
    pyarrow.RecordBatches
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

    class Spec(google.protobuf.message.Message):
        """Definitions
        How to obtain the dataset
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        TRANSFORMED_FIELD_NUMBER: builtins.int
        MODEL_FIELD_NUMBER: builtins.int
        PRIVACY_PARAMS_FIELD_NUMBER: builtins.int
        RANDOM_SEED_FIELD_NUMBER: builtins.int
        SYNTHETIC_MODEL_FIELD_NUMBER: builtins.int
        @property
        def transformed(self) -> global___Scalar.Transformed: ...
        @property
        def model(self) -> global___Scalar.Model: ...
        @property
        def privacy_params(self) -> global___Scalar.PrivacyParameters: ...
        @property
        def random_seed(self) -> global___Scalar.RandomSeed: ...
        @property
        def synthetic_model(self) -> global___Scalar.SyntheticModel: ...
        def __init__(self,
            *,
            transformed : typing.Optional[global___Scalar.Transformed] = ...,
            model : typing.Optional[global___Scalar.Model] = ...,
            privacy_params : typing.Optional[global___Scalar.PrivacyParameters] = ...,
            random_seed : typing.Optional[global___Scalar.RandomSeed] = ...,
            synthetic_model : typing.Optional[global___Scalar.SyntheticModel] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["model",b"model","privacy_params",b"privacy_params","random_seed",b"random_seed","spec",b"spec","synthetic_model",b"synthetic_model","transformed",b"transformed"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["model",b"model","privacy_params",b"privacy_params","random_seed",b"random_seed","spec",b"spec","synthetic_model",b"synthetic_model","transformed",b"transformed"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal["spec",b"spec"]) -> typing.Optional[typing_extensions.Literal["transformed","model","privacy_params","random_seed","synthetic_model"]]: ...

    class Transformed(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class NamedArgumentsEntry(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            KEY_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            key: typing.Text = ...
            value: typing.Text = ...
            def __init__(self,
                *,
                key : typing.Text = ...,
                value : typing.Text = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

        TRANSFORM_FIELD_NUMBER: builtins.int
        ARGUMENTS_FIELD_NUMBER: builtins.int
        NAMED_ARGUMENTS_FIELD_NUMBER: builtins.int
        transform: typing.Text = ...
        """Transform id"""

        @property
        def arguments(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
            """Dataset or other object ids"""
            pass
        @property
        def named_arguments(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
        def __init__(self,
            *,
            transform : typing.Text = ...,
            arguments : typing.Optional[typing.Iterable[typing.Text]] = ...,
            named_arguments : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["arguments",b"arguments","named_arguments",b"named_arguments","transform",b"transform"]) -> None: ...

    class Model(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class PretrainedModel(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            FOUNDATION_MODEL_NAME_FIELD_NUMBER: builtins.int
            PEFT_INITIALISATION_URI_FIELD_NUMBER: builtins.int
            foundation_model_name: typing.Text = ...
            peft_initialisation_uri: typing.Text = ...
            def __init__(self,
                *,
                foundation_model_name : typing.Text = ...,
                peft_initialisation_uri : typing.Text = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["foundation_model_name",b"foundation_model_name","peft_initialisation_uri",b"peft_initialisation_uri"]) -> None: ...

        PRETRAINED_MODEL_FIELD_NUMBER: builtins.int
        @property
        def pretrained_model(self) -> global___Scalar.Model.PretrainedModel: ...
        def __init__(self,
            *,
            pretrained_model : typing.Optional[global___Scalar.Model.PretrainedModel] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["pretrained_model",b"pretrained_model","type",b"type"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["pretrained_model",b"pretrained_model","type",b"type"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal["type",b"type"]) -> typing.Optional[typing_extensions.Literal["pretrained_model"]]: ...

    class PrivacyParameters(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Point(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            EPSILON_FIELD_NUMBER: builtins.int
            DELTA_FIELD_NUMBER: builtins.int
            epsilon: builtins.float = ...
            delta: builtins.float = ...
            def __init__(self,
                *,
                epsilon : builtins.float = ...,
                delta : builtins.float = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["delta",b"delta","epsilon",b"epsilon"]) -> None: ...

        POINTS_FIELD_NUMBER: builtins.int
        @property
        def points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Scalar.PrivacyParameters.Point]: ...
        def __init__(self,
            *,
            points : typing.Optional[typing.Iterable[global___Scalar.PrivacyParameters.Point]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["points",b"points"]) -> None: ...

    class RandomSeed(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        VALUE_FIELD_NUMBER: builtins.int
        value: builtins.int = ...
        def __init__(self,
            *,
            value : builtins.int = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["value",b"value"]) -> None: ...

    class SyntheticModel(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    UUID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DOC_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    uuid: typing.Text = ...
    """A Scalar does not ensure this possibility. As a consequence, oprations
    from standard libraries are allowed (pandas.mean, numpy.std,...) but
    operations implemented for Datasets by Sarus like computing marginals or
    fitting a Keras model cannot be performed on a Scalar.

    Scalars are generated by transforms that explicitly require a specific
    format (e.g. as_pandas, as_numpy,...) or as byproducts of transforms
    (model weights, training history,...).

    e.g. RFC 4122 id used to refer to the dataset (content linked?)
    """

    name: typing.Text = ...
    doc: typing.Text = ...
    @property
    def spec(self) -> global___Scalar.Spec: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Other properties"""
        pass
    def __init__(self,
        *,
        uuid : typing.Text = ...,
        name : typing.Text = ...,
        doc : typing.Text = ...,
        spec : typing.Optional[global___Scalar.Spec] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["spec",b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["doc",b"doc","name",b"name","properties",b"properties","spec",b"spec","uuid",b"uuid"]) -> None: ...
global___Scalar = Scalar
