Core
Functions:
-
init_traces_exporter–Initializes the OpenTelemetry trace exporter with a given resource.
-
init_metrics_exporter–Initializes the OpenTelemetry metrics exporter with a given resource.
-
init_logs_exporter–Initializes the OpenTelemetry logs exporter with a given resource.
-
init_telemetry–Initializes all OpenTelemetry exporters with a shared resource.
init_traces_exporter
#
Initializes the OpenTelemetry trace exporter with a given resource.
Parameters:
-
(resource#Resource) –The resource to associate with the trace telemetry.
Source code in core/lomas_core/instrumentation.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
init_metrics_exporter
#
Initializes the OpenTelemetry metrics exporter with a given resource.
Parameters:
-
(resource#Resource) –The resource to associate with the metric telemetry.
Source code in core/lomas_core/instrumentation.py
35 36 37 38 39 40 41 42 43 44 45 46 47 | |
init_logs_exporter
#
Initializes the OpenTelemetry logs exporter with a given resource.
Parameters:
-
(resource#Resource) –The resource to associate with the log telemetry.
Source code in core/lomas_core/instrumentation.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | |
init_telemetry
#
init_telemetry(telemetry_config: Telemetry) -> None
Initializes all OpenTelemetry exporters with a shared resource.
Parameters:
Source code in core/lomas_core/instrumentation.py
68 69 70 71 72 73 74 75 76 77 78 79 80 81 | |
Classes:
-
InvalidQueryException–Custom exception for invalid queries.
-
ExternalLibraryException–Custom exception for issues within external libraries.
-
UnauthorizedAccessException–Custom exception for unauthorized access:
-
InternalServerException–Custom exception for issues within server internal functionalities.
Functions:
-
add_exception_handlers–Translates custom exceptions to JSONResponses.
-
raise_error_from_model–Raise error message based on Server Error Model.
InvalidQueryException
#
InvalidQueryException(error_message: str)
flowchart TD
lomas_core.error_handler.InvalidQueryException[InvalidQueryException]
click lomas_core.error_handler.InvalidQueryException href "" "lomas_core.error_handler.InvalidQueryException"
Custom exception for invalid queries.
For example, this exception will occur when the query: - is not an opendp measurement - cannot be reconstructed properly (for opendp and diffprivlib)
Parameters:
Source code in core/lomas_core/error_handler.py
29 30 31 32 33 34 35 | |
ExternalLibraryException
#
ExternalLibraryException(library: DPLibraries, error_message: str)
flowchart TD
lomas_core.error_handler.ExternalLibraryException[ExternalLibraryException]
click lomas_core.error_handler.ExternalLibraryException href "" "lomas_core.error_handler.ExternalLibraryException"
Custom exception for issues within external libraries.
This exception will occur when the processes fail within the external libraries (smartnoise-sql, opendp, diffprivlib)
Parameters:
Source code in core/lomas_core/error_handler.py
46 47 48 49 50 51 52 53 54 | |
UnauthorizedAccessException
#
UnauthorizedAccessException(error_message: str)
flowchart TD
lomas_core.error_handler.UnauthorizedAccessException[UnauthorizedAccessException]
click lomas_core.error_handler.UnauthorizedAccessException href "" "lomas_core.error_handler.UnauthorizedAccessException"
Custom exception for unauthorized access:
(unknown user, no access to dataset, etc)
- API Reference Server
Source code in core/lomas_core/error_handler.py
64 65 | |
InternalServerException
#
InternalServerException(error_message: str)
flowchart TD
lomas_core.error_handler.InternalServerException[InternalServerException]
click lomas_core.error_handler.InternalServerException href "" "lomas_core.error_handler.InternalServerException"
Custom exception for issues within server internal functionalities.
-
API Reference
-
Core
model_input_to_lib - Server
-
Core
Source code in core/lomas_core/error_handler.py
71 72 | |
add_exception_handlers
#
add_exception_handlers(app: FastAPI) -> None
Translates custom exceptions to JSONResponses.
Parameters:
-
(app#FastAPI) –A fastapi App.
Source code in core/lomas_core/error_handler.py
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | |
raise_error_from_model
#
raise_error_from_model(error_model: LomasServerExceptionType) -> Never
Raise error message based on Server Error Model.
Parameters:
-
(error_model#LomasServerExceptionType) –Server Error
Raise: Server Error
Source code in core/lomas_core/error_handler.py
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | |
Classes:
-
DPLibraries–Name of DP Library used in the query.
-
SSynthMarginalSynthesizer–Marginal Synthesizer models for smartnoise synth.
-
SSynthGanSynthesizer–GAN Synthesizer models for smartnoise synth.
-
Scopes–List of security scopes for the server endpoints.
DPLibraries
#
flowchart TD
lomas_core.constants.DPLibraries[DPLibraries]
click lomas_core.constants.DPLibraries href "" "lomas_core.constants.DPLibraries"
Name of DP Library used in the query.
- API Reference Core
- API Reference
SSynthMarginalSynthesizer
#
flowchart TD
lomas_core.constants.SSynthMarginalSynthesizer[SSynthMarginalSynthesizer]
click lomas_core.constants.SSynthMarginalSynthesizer href "" "lomas_core.constants.SSynthMarginalSynthesizer"
Marginal Synthesizer models for smartnoise synth.
SSynthGanSynthesizer
#
flowchart TD
lomas_core.constants.SSynthGanSynthesizer[SSynthGanSynthesizer]
click lomas_core.constants.SSynthGanSynthesizer href "" "lomas_core.constants.SSynthGanSynthesizer"
GAN Synthesizer models for smartnoise synth.
Scopes
#
flowchart TD
lomas_core.constants.Scopes[Scopes]
click lomas_core.constants.Scopes href "" "lomas_core.constants.Scopes"
List of security scopes for the server endpoints.
Classes:
-
DatasetOfUser–BaseModel for informations of a user on a dataset.
-
UserId–BaseModel for user identification.
-
User–BaseModel for a user in a user collection.
-
UserCollection–BaseModel for users collection.
-
DSPathAccess–BaseModel for a local dataset.
-
DSS3Access–BaseModel for a dataset on S3.
-
DSInfo–BaseModel for a dataset.
-
DatasetsCollection–BaseModel for datasets collection.
DatasetOfUser
#
flowchart TD
lomas_core.models.collections.DatasetOfUser[DatasetOfUser]
click lomas_core.models.collections.DatasetOfUser href "" "lomas_core.models.collections.DatasetOfUser"
BaseModel for informations of a user on a dataset.
UserId
#
flowchart TD
lomas_core.models.collections.UserId[UserId]
click lomas_core.models.collections.UserId href "" "lomas_core.models.collections.UserId"
BaseModel for user identification.
- API Reference Server
-
API Reference
Server
-
add_user -
add_users_yaml -
authorize_user -
delete_collection -
delete_user -
diffprivlib_query_handler -
dummy_diffprivlib_query_handler -
dummy_opendp_query_handler -
dummy_smartnoise_sql_handler -
dummy_smartnoise_synth_handler -
estimate_diffprivlib_cost -
estimate_opendp_cost -
estimate_smartnoise_sql_cost -
estimate_smartnoise_synth_cost -
get_dataset_metadata -
get_dummy_dataset -
get_initial_budget -
get_remaining_budget -
get_server_config -
get_state -
get_total_spent_budget -
get_user_previous_queries -
opendp_query_handler -
smartnoise_sql_handler -
smartnoise_synth_handler -
status_handler
-
User
#
UserCollection
#
flowchart TD
lomas_core.models.collections.UserCollection[UserCollection]
click lomas_core.models.collections.UserCollection href "" "lomas_core.models.collections.UserCollection"
BaseModel for users collection.
-
API Reference
Server
add_dex_users
DSPathAccess
#
flowchart TD
lomas_core.models.collections.DSPathAccess[DSPathAccess]
click lomas_core.models.collections.DSPathAccess href "" "lomas_core.models.collections.DSPathAccess"
BaseModel for a local dataset.
DSS3Access
#
flowchart TD
lomas_core.models.collections.DSS3Access[DSS3Access]
click lomas_core.models.collections.DSS3Access href "" "lomas_core.models.collections.DSS3Access"
BaseModel for a dataset on S3.
DSInfo
#
flowchart TD
lomas_core.models.collections.DSInfo[DSInfo]
click lomas_core.models.collections.DSInfo href "" "lomas_core.models.collections.DSInfo"
BaseModel for a dataset.
-
API Reference
Server
AdminDatabaseget_dataset
DatasetsCollection
#
flowchart TD
lomas_core.models.collections.DatasetsCollection[DatasetsCollection]
click lomas_core.models.collections.DatasetsCollection href "" "lomas_core.models.collections.DatasetsCollection"
BaseModel for datasets collection.
Classes:
-
TimeAttack–BaseModel for configs to prevent timing attacks.
-
Telemetry–Telemetry config.
-
OIDCConfig–Base model for oidc config returned from discovery endpoint.
-
OIDCDeviceCodeResponse–Base model for oidc device code response.
TimeAttack
#
flowchart TD
lomas_core.models.config.TimeAttack[TimeAttack]
click lomas_core.models.config.TimeAttack href "" "lomas_core.models.config.TimeAttack"
BaseModel for configs to prevent timing attacks.
Telemetry
#
flowchart TD
lomas_core.models.config.Telemetry[Telemetry]
click lomas_core.models.config.Telemetry href "" "lomas_core.models.config.Telemetry"
Telemetry config.
-
API Reference
Client
ClientConfigtelemetry
Methods:
-
options_set_if_enabled–Ensures that if enabled is set to True, all other fields are specified.
options_set_if_enabled
#
options_set_if_enabled() -> Self
Ensures that if enabled is set to True, all other fields are specified.
Raises:
-
ValueError–If any of the fields is not specified while enabled is True.
Source code in core/lomas_core/models/config.py
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
OIDCConfig
#
flowchart TD
lomas_core.models.config.OIDCConfig[OIDCConfig]
click lomas_core.models.config.OIDCConfig href "" "lomas_core.models.config.OIDCConfig"
Base model for oidc config returned from discovery endpoint.
- API Reference
OIDCDeviceCodeResponse
#
flowchart TD
lomas_core.models.config.OIDCDeviceCodeResponse[OIDCDeviceCodeResponse]
click lomas_core.models.config.OIDCDeviceCodeResponse href "" "lomas_core.models.config.OIDCDeviceCodeResponse"
Base model for oidc device code response.
Classes:
-
TimeAttackMethod–Possible methods against timing attacks.
-
PrivateDatabaseType–Type of Private Database for the private data.
-
AuthenticationType–Type of Authenticator to identify users.
-
ExceptionType–Lomas server exception types.
Functions:
-
init_logging–Sets basic logging config to level and creates a logger named after name with log level lomas_level.
-
get_lomas_logger–Get a logger with set level.
TimeAttackMethod
#
flowchart TD
lomas_core.models.constants.TimeAttackMethod[TimeAttackMethod]
click lomas_core.models.constants.TimeAttackMethod href "" "lomas_core.models.constants.TimeAttackMethod"
Possible methods against timing attacks.
PrivateDatabaseType
#
flowchart TD
lomas_core.models.constants.PrivateDatabaseType[PrivateDatabaseType]
click lomas_core.models.constants.PrivateDatabaseType href "" "lomas_core.models.constants.PrivateDatabaseType"
Type of Private Database for the private data.
-
API Reference
Core
AddDatasetModel
-
API Reference
Server
get_dataset_credentials
AuthenticationType
#
flowchart TD
lomas_core.models.constants.AuthenticationType[AuthenticationType]
click lomas_core.models.constants.AuthenticationType href "" "lomas_core.models.constants.AuthenticationType"
Type of Authenticator to identify users.
ExceptionType
#
flowchart TD
lomas_core.models.constants.ExceptionType[ExceptionType]
click lomas_core.models.constants.ExceptionType href "" "lomas_core.models.constants.ExceptionType"
Lomas server exception types.
To be used as discriminator when parsing corresponding models
init_logging
#
Sets basic logging config to level and creates a logger named after name with log level lomas_level.
This function is meant to set a parent logger for the lomas_* module with a different log level than the root logger.
Parameters:
-
(name#str) –Name of the parent logger to create
-
(level#str, default:'INFO') –Log level for the root logger.
-
(lomas_level#str, default:'INFO') –Log level for the parent logger.
Source code in core/lomas_core/models/constants.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | |
get_lomas_logger
#
Get a logger with set level.
Default level is always unset (getLogger default is warning).
Parameters:
-
(name#str) –Name of the logger.
-
(level#str, default:'NOTSET') –Logging level. Defaults to "NOTSET".
Returns:
-
Logger–logging.Logger: Named logger with correct level.
Source code in core/lomas_core/models/constants.py
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | |
Classes:
-
LomasServerExceptionModel–Base model for lomas server exceptions.
-
InvalidQueryExceptionModel–Exception directly related to the query.
-
ExternalLibraryExceptionModel–For exceptions from libraries external to the lomas packages.
-
UnauthorizedAccessExceptionModel–Exception related to rights with regards to the query.
-
InternalServerExceptionModel–For any unforseen internal exception.
LomasServerExceptionModel
#
flowchart TD
lomas_core.models.exceptions.LomasServerExceptionModel[LomasServerExceptionModel]
click lomas_core.models.exceptions.LomasServerExceptionModel href "" "lomas_core.models.exceptions.LomasServerExceptionModel"
Base model for lomas server exceptions.
Attributes:
InvalidQueryExceptionModel
#
flowchart TD
lomas_core.models.exceptions.InvalidQueryExceptionModel[InvalidQueryExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel[LomasServerExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel --> lomas_core.models.exceptions.InvalidQueryExceptionModel
click lomas_core.models.exceptions.InvalidQueryExceptionModel href "" "lomas_core.models.exceptions.InvalidQueryExceptionModel"
click lomas_core.models.exceptions.LomasServerExceptionModel href "" "lomas_core.models.exceptions.LomasServerExceptionModel"
Exception directly related to the query.
For example if it does not contain a DP mechanism or there is not enough DP budget.
Attributes:
ExternalLibraryExceptionModel
#
flowchart TD
lomas_core.models.exceptions.ExternalLibraryExceptionModel[ExternalLibraryExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel[LomasServerExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel --> lomas_core.models.exceptions.ExternalLibraryExceptionModel
click lomas_core.models.exceptions.ExternalLibraryExceptionModel href "" "lomas_core.models.exceptions.ExternalLibraryExceptionModel"
click lomas_core.models.exceptions.LomasServerExceptionModel href "" "lomas_core.models.exceptions.LomasServerExceptionModel"
For exceptions from libraries external to the lomas packages.
Attributes:
UnauthorizedAccessExceptionModel
#
flowchart TD
lomas_core.models.exceptions.UnauthorizedAccessExceptionModel[UnauthorizedAccessExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel[LomasServerExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel --> lomas_core.models.exceptions.UnauthorizedAccessExceptionModel
click lomas_core.models.exceptions.UnauthorizedAccessExceptionModel href "" "lomas_core.models.exceptions.UnauthorizedAccessExceptionModel"
click lomas_core.models.exceptions.LomasServerExceptionModel href "" "lomas_core.models.exceptions.LomasServerExceptionModel"
Exception related to rights with regards to the query.
(e.g. no user access for this dataset).
Attributes:
InternalServerExceptionModel
#
flowchart TD
lomas_core.models.exceptions.InternalServerExceptionModel[InternalServerExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel[LomasServerExceptionModel]
lomas_core.models.exceptions.LomasServerExceptionModel --> lomas_core.models.exceptions.InternalServerExceptionModel
click lomas_core.models.exceptions.InternalServerExceptionModel href "" "lomas_core.models.exceptions.InternalServerExceptionModel"
click lomas_core.models.exceptions.LomasServerExceptionModel href "" "lomas_core.models.exceptions.LomasServerExceptionModel"
For any unforseen internal exception.
Attributes:
Functions:
-
make_dummy–Make dummy example dummy query based on example query.
make_dummy
#
Make dummy example dummy query based on example query.
Source code in core/lomas_core/models/requests_examples.py
38 39 40 41 42 43 | |
Classes:
-
LomasRequestModel–Base class for all types of requests to the lomas server.
-
AddDatasetModel–Model input to add a private dataset with metadata.
-
GetDummyDataset–Model input to get a dummy dataset.
-
GetDummyContext–Model input to get a dummy dataset.
-
QueryModel–Base input model for any query on a dataset.
-
LomasBudgetRequest– -
DummyQueryModel–Input model for a query on a dummy dataset.
-
SmartnoiseSQLRequestModel–Base input model for a smarnoise-sql request.
-
SmartnoiseSQLQueryModel–Base input model for a smartnoise-sql query.
-
SmartnoiseSQLDummyQueryModel–Input model for a smartnoise-sql query on a dummy dataset.
-
SmartnoiseSynthRequestModel–Base input model for a SmartnoiseSynth request.
-
SmartnoiseSynthQueryModel–Base input model for a smarnoise-synth query.
-
SmartnoiseSynthDummyQueryModel–Input model for a smarnoise-synth query on a dummy dataset.
-
OpenDPRequestModel–Base input model for an opendp request.
-
OpenDPQueryModel–Base input model for an opendp query.
-
OpenDPDummyQueryModel–Input model for an opendp query on a dummy dataset.
-
DiffPrivLibRequestModel–Base input model for a diffprivlib request.
-
DiffPrivLibQueryModel–Base input model for a diffprivlib query.
-
DiffPrivLibDummyQueryModel–Input model for a DiffPrivLib query on a dummy dataset.
Functions:
-
model_input_to_lib–Return the type of DP library given a LomasRequestModel.
LomasRequestModel
#
flowchart TD
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base class for all types of requests to the lomas server.
We differentiate between requests and queries
- a request does not necessarily require an algorithm to be executed on the private dataset (e.g. some cost requests).
- a query requires executing an algorithm on a private dataset (or a potentially a dummy).
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
AddDatasetModel
#
flowchart TD
lomas_core.models.requests.AddDatasetModel[AddDatasetModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.AddDatasetModel
click lomas_core.models.requests.AddDatasetModel href "" "lomas_core.models.requests.AddDatasetModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Model input to add a private dataset with metadata.
Attributes:
-
database_type(PrivateDatabaseType) –Type of Private Database for the private data.
-
metadata_database_type(PrivateDatabaseType) –Type of Private Database for the private data.
-
dataset_path(str) –Path to the dataset.
-
metadata_path(str) –Path to the metadata.
-
dataset_name(str) –The name of the dataset the request is aimed at.
database_type
instance-attribute
#
database_type: PrivateDatabaseType
Type of Private Database for the private data.
metadata_database_type
instance-attribute
#
metadata_database_type: PrivateDatabaseType
Type of Private Database for the private data.
GetDummyDataset
#
flowchart TD
lomas_core.models.requests.GetDummyDataset[GetDummyDataset]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.GetDummyDataset
click lomas_core.models.requests.GetDummyDataset href "" "lomas_core.models.requests.GetDummyDataset"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Model input to get a dummy dataset.
-
API Reference
Server
get_dummy_dataset
Attributes:
-
dummy_nb_rows(int) –The number of dummy rows to generate.
-
dummy_seed(int) –The seed for the random generation of the dummy dataset.
-
dataset_name(str) –The name of the dataset the request is aimed at.
GetDummyContext
#
flowchart TD
lomas_core.models.requests.GetDummyContext[GetDummyContext]
lomas_core.models.requests.GetDummyDataset[GetDummyDataset]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.GetDummyDataset --> lomas_core.models.requests.GetDummyContext
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.GetDummyDataset
click lomas_core.models.requests.GetDummyContext href "" "lomas_core.models.requests.GetDummyContext"
click lomas_core.models.requests.GetDummyDataset href "" "lomas_core.models.requests.GetDummyDataset"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Model input to get a dummy dataset.
Attributes:
-
epsilon(float | None) –The epsilon parameter used for pure ε-DP or approximate-DP.
-
delta(float | None) –The delta parameter.
-
rho(float | None) –Privacy loss paramater for zCDP (or approximate-zCDP).
-
approx_zcdp(bool) –If False, delta is used to compute the epsilon consumption equivalent when user wants to use zCDP.
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
dummy_nb_rows(int) –The number of dummy rows to generate.
-
dummy_seed(int) –The seed for the random generation of the dummy dataset.
epsilon
instance-attribute
#
epsilon: float | None
The epsilon parameter used for pure ε-DP or approximate-DP.
rho
instance-attribute
#
rho: float | None
Privacy loss paramater for zCDP (or approximate-zCDP).
Using this parameter instead of epsilon switches to a Gaussian mechansim.
approx_zcdp
instance-attribute
#
approx_zcdp: bool
If False, delta is used to compute the epsilon consumption equivalent when user wants to use zCDP.
QueryModel
#
flowchart TD
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for any query on a dataset.
We differentiate between requests and queries
- a request does not necessarily require an algorithm to be executed on the private dataset (e.g. some cost requests).
- a query requires executing an algorithm on a private dataset (or a potentially a dummy).
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
LomasBudgetRequest
#
flowchart TD
lomas_core.models.requests.LomasBudgetRequest[LomasBudgetRequest]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.LomasBudgetRequest
click lomas_core.models.requests.LomasBudgetRequest href "" "lomas_core.models.requests.LomasBudgetRequest"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Attributes:
DummyQueryModel
#
flowchart TD
lomas_core.models.requests.DummyQueryModel[DummyQueryModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DummyQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.DummyQueryModel href "" "lomas_core.models.requests.DummyQueryModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Input model for a query on a dummy dataset.
- API Reference Server
Attributes:
-
dummy_nb_rows(int) –The number of rows in the dummy dataset.
-
dummy_seed(int) –The seed to set at the start of the dummy dataset generation.
-
dataset_name(str) –The name of the dataset the request is aimed at.
SmartnoiseSQLRequestModel
#
flowchart TD
lomas_core.models.requests.SmartnoiseSQLRequestModel[SmartnoiseSQLRequestModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.SmartnoiseSQLRequestModel
click lomas_core.models.requests.SmartnoiseSQLRequestModel href "" "lomas_core.models.requests.SmartnoiseSQLRequestModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for a smarnoise-sql request.
- API Reference Server
Attributes:
-
query_str(str) –The SQL query to execute.
-
epsilon(float) –Privacy parameter (e.g., 0.1).
-
delta(float) –Privacy parameter (e.g., 1e-5).
-
mechanisms(dict) –Dictionary of mechanisms for the query.
-
dataset_name(str) –The name of the dataset the request is aimed at.
query_str
instance-attribute
#
query_str: str
The SQL query to execute.
NOTE: the table name is "df", the query must end with "FROM df"
mechanisms
instance-attribute
#
mechanisms: dict
Dictionary of mechanisms for the query.
See Smartnoise-SQL mechanisms documentation at https://docs.smartnoise.org/sql/advanced.html#overriding-mechanisms.
SmartnoiseSQLQueryModel
#
flowchart TD
lomas_core.models.requests.SmartnoiseSQLQueryModel[SmartnoiseSQLQueryModel]
lomas_core.models.requests.SmartnoiseSQLRequestModel[SmartnoiseSQLRequestModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.SmartnoiseSQLRequestModel --> lomas_core.models.requests.SmartnoiseSQLQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.SmartnoiseSQLRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.SmartnoiseSQLQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.SmartnoiseSQLQueryModel href "" "lomas_core.models.requests.SmartnoiseSQLQueryModel"
click lomas_core.models.requests.SmartnoiseSQLRequestModel href "" "lomas_core.models.requests.SmartnoiseSQLRequestModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for a smartnoise-sql query.
- API Reference Server
Attributes:
-
postprocess(bool) –Whether to postprocess the query results (default: True).
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
query_str(str) –The SQL query to execute.
-
epsilon(float) –Privacy parameter (e.g., 0.1).
-
delta(float) –Privacy parameter (e.g., 1e-5).
-
mechanisms(dict) –Dictionary of mechanisms for the query.
postprocess
instance-attribute
#
postprocess: bool
Whether to postprocess the query results (default: True).
See Smartnoise-SQL postprocessing documentation https://docs.smartnoise.org/sql/advanced.html#postprocess.
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
query_str
instance-attribute
#
query_str: str
The SQL query to execute.
NOTE: the table name is "df", the query must end with "FROM df"
mechanisms
instance-attribute
#
mechanisms: dict
Dictionary of mechanisms for the query.
See Smartnoise-SQL mechanisms documentation at https://docs.smartnoise.org/sql/advanced.html#overriding-mechanisms.
SmartnoiseSQLDummyQueryModel
#
flowchart TD
lomas_core.models.requests.SmartnoiseSQLDummyQueryModel[SmartnoiseSQLDummyQueryModel]
lomas_core.models.requests.SmartnoiseSQLQueryModel[SmartnoiseSQLQueryModel]
lomas_core.models.requests.SmartnoiseSQLRequestModel[SmartnoiseSQLRequestModel]
lomas_core.models.requests.DummyQueryModel[DummyQueryModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.SmartnoiseSQLQueryModel --> lomas_core.models.requests.SmartnoiseSQLDummyQueryModel
lomas_core.models.requests.SmartnoiseSQLRequestModel --> lomas_core.models.requests.SmartnoiseSQLQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.SmartnoiseSQLRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.SmartnoiseSQLQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
lomas_core.models.requests.DummyQueryModel --> lomas_core.models.requests.SmartnoiseSQLDummyQueryModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DummyQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.SmartnoiseSQLDummyQueryModel href "" "lomas_core.models.requests.SmartnoiseSQLDummyQueryModel"
click lomas_core.models.requests.SmartnoiseSQLQueryModel href "" "lomas_core.models.requests.SmartnoiseSQLQueryModel"
click lomas_core.models.requests.SmartnoiseSQLRequestModel href "" "lomas_core.models.requests.SmartnoiseSQLRequestModel"
click lomas_core.models.requests.DummyQueryModel href "" "lomas_core.models.requests.DummyQueryModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Input model for a smartnoise-sql query on a dummy dataset.
-
API Reference
Server
dummy_smartnoise_sql_handler
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
dummy_nb_rows(int) –The number of rows in the dummy dataset.
-
dummy_seed(int) –The seed to set at the start of the dummy dataset generation.
-
query_str(str) –The SQL query to execute.
-
epsilon(float) –Privacy parameter (e.g., 0.1).
-
delta(float) –Privacy parameter (e.g., 1e-5).
-
mechanisms(dict) –Dictionary of mechanisms for the query.
-
postprocess(bool) –Whether to postprocess the query results (default: True).
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
dummy_seed
instance-attribute
#
dummy_seed: int
The seed to set at the start of the dummy dataset generation.
query_str
instance-attribute
#
query_str: str
The SQL query to execute.
NOTE: the table name is "df", the query must end with "FROM df"
mechanisms
instance-attribute
#
mechanisms: dict
Dictionary of mechanisms for the query.
See Smartnoise-SQL mechanisms documentation at https://docs.smartnoise.org/sql/advanced.html#overriding-mechanisms.
postprocess
instance-attribute
#
postprocess: bool
Whether to postprocess the query results (default: True).
See Smartnoise-SQL postprocessing documentation https://docs.smartnoise.org/sql/advanced.html#postprocess.
SmartnoiseSynthRequestModel
#
flowchart TD
lomas_core.models.requests.SmartnoiseSynthRequestModel[SmartnoiseSynthRequestModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.SmartnoiseSynthRequestModel
click lomas_core.models.requests.SmartnoiseSynthRequestModel href "" "lomas_core.models.requests.SmartnoiseSynthRequestModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for a SmartnoiseSynth request.
-
API Reference
Server
estimate_smartnoise_synth_cost
Attributes:
-
synth_name(SSynthMarginalSynthesizer | SSynthGanSynthesizer) –Name of the synthesizer model to use.
-
epsilon(float) –Privacy parameter (e.g., 0.1).
-
delta(float | None) –Privacy parameter (e.g., 1e-5).
-
select_cols(list) –List of columns to select.
-
synth_params(dict) –Keyword arguments to pass to the synthesizer constructor.
-
nullable(bool) –True if some data cells may be null.
-
constraints(str) –Dictionnary for custom table transformer constraints.
-
dataset_name(str) –The name of the dataset the request is aimed at.
synth_name
instance-attribute
#
synth_name: SSynthMarginalSynthesizer | SSynthGanSynthesizer
Name of the synthesizer model to use.
synth_params
instance-attribute
#
synth_params: dict
Keyword arguments to pass to the synthesizer constructor.
See https://docs.smartnoise.org/synth/synthesizers/index.html#, provide
all parameters of the model except epsilon and delta.
SmartnoiseSynthQueryModel
#
flowchart TD
lomas_core.models.requests.SmartnoiseSynthQueryModel[SmartnoiseSynthQueryModel]
lomas_core.models.requests.SmartnoiseSynthRequestModel[SmartnoiseSynthRequestModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.SmartnoiseSynthRequestModel --> lomas_core.models.requests.SmartnoiseSynthQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.SmartnoiseSynthRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.SmartnoiseSynthQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.SmartnoiseSynthQueryModel href "" "lomas_core.models.requests.SmartnoiseSynthQueryModel"
click lomas_core.models.requests.SmartnoiseSynthRequestModel href "" "lomas_core.models.requests.SmartnoiseSynthRequestModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for a smarnoise-synth query.
-
API Reference
Server
smartnoise_synth_handler
Attributes:
-
return_model(bool) –True to get Synthesizer model, False to get samples.
-
condition(str) –Sampling condition in
model.sample(only relevant if return_model is False). -
nb_samples(int) –Number of samples to generate.
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
synth_name(SSynthMarginalSynthesizer | SSynthGanSynthesizer) –Name of the synthesizer model to use.
-
epsilon(float) –Privacy parameter (e.g., 0.1).
-
delta(float | None) –Privacy parameter (e.g., 1e-5).
-
select_cols(list) –List of columns to select.
-
synth_params(dict) –Keyword arguments to pass to the synthesizer constructor.
-
nullable(bool) –True if some data cells may be null.
-
constraints(str) –Dictionnary for custom table transformer constraints.
return_model
instance-attribute
#
return_model: bool
True to get Synthesizer model, False to get samples.
condition
instance-attribute
#
condition: str
Sampling condition in model.sample (only relevant if return_model is False).
nb_samples
instance-attribute
#
nb_samples: int
Number of samples to generate.
(only relevant if return_model is False)
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
synth_name
instance-attribute
#
synth_name: SSynthMarginalSynthesizer | SSynthGanSynthesizer
Name of the synthesizer model to use.
synth_params
instance-attribute
#
synth_params: dict
Keyword arguments to pass to the synthesizer constructor.
See https://docs.smartnoise.org/synth/synthesizers/index.html#, provide
all parameters of the model except epsilon and delta.
SmartnoiseSynthDummyQueryModel
#
flowchart TD
lomas_core.models.requests.SmartnoiseSynthDummyQueryModel[SmartnoiseSynthDummyQueryModel]
lomas_core.models.requests.SmartnoiseSynthQueryModel[SmartnoiseSynthQueryModel]
lomas_core.models.requests.SmartnoiseSynthRequestModel[SmartnoiseSynthRequestModel]
lomas_core.models.requests.DummyQueryModel[DummyQueryModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.SmartnoiseSynthQueryModel --> lomas_core.models.requests.SmartnoiseSynthDummyQueryModel
lomas_core.models.requests.SmartnoiseSynthRequestModel --> lomas_core.models.requests.SmartnoiseSynthQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.SmartnoiseSynthRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.SmartnoiseSynthQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
lomas_core.models.requests.DummyQueryModel --> lomas_core.models.requests.SmartnoiseSynthDummyQueryModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DummyQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.SmartnoiseSynthDummyQueryModel href "" "lomas_core.models.requests.SmartnoiseSynthDummyQueryModel"
click lomas_core.models.requests.SmartnoiseSynthQueryModel href "" "lomas_core.models.requests.SmartnoiseSynthQueryModel"
click lomas_core.models.requests.SmartnoiseSynthRequestModel href "" "lomas_core.models.requests.SmartnoiseSynthRequestModel"
click lomas_core.models.requests.DummyQueryModel href "" "lomas_core.models.requests.DummyQueryModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Input model for a smarnoise-synth query on a dummy dataset.
-
API Reference
Server
dummy_smartnoise_synth_handler
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
dummy_nb_rows(int) –The number of rows in the dummy dataset.
-
dummy_seed(int) –The seed to set at the start of the dummy dataset generation.
-
synth_name(SSynthMarginalSynthesizer | SSynthGanSynthesizer) –Name of the synthesizer model to use.
-
epsilon(float) –Privacy parameter (e.g., 0.1).
-
delta(float | None) –Privacy parameter (e.g., 1e-5).
-
select_cols(list) –List of columns to select.
-
synth_params(dict) –Keyword arguments to pass to the synthesizer constructor.
-
nullable(bool) –True if some data cells may be null.
-
constraints(str) –Dictionnary for custom table transformer constraints.
-
return_model(bool) –True to get Synthesizer model, False to get samples.
-
condition(str) –Sampling condition in
model.sample(only relevant if return_model is False). -
nb_samples(int) –Number of samples to generate.
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
dummy_seed
instance-attribute
#
dummy_seed: int
The seed to set at the start of the dummy dataset generation.
synth_name
instance-attribute
#
synth_name: SSynthMarginalSynthesizer | SSynthGanSynthesizer
Name of the synthesizer model to use.
synth_params
instance-attribute
#
synth_params: dict
Keyword arguments to pass to the synthesizer constructor.
See https://docs.smartnoise.org/synth/synthesizers/index.html#, provide
all parameters of the model except epsilon and delta.
constraints
instance-attribute
#
constraints: str
Dictionnary for custom table transformer constraints.
Column that are not specified will be inferred based on metadata.
return_model
instance-attribute
#
return_model: bool
True to get Synthesizer model, False to get samples.
OpenDPRequestModel
#
flowchart TD
lomas_core.models.requests.OpenDPRequestModel[OpenDPRequestModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.OpenDPRequestModel
click lomas_core.models.requests.OpenDPRequestModel href "" "lomas_core.models.requests.OpenDPRequestModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for an opendp request.
- API Reference Server
Attributes:
-
opendp_json(str) –The OpenDP pipeline for the query.
-
epsilon(float | None) –The epsilon parameter used for pure ε-DP or approximate-DP.
-
delta(float | None) –If the pipeline measurement is of type "ZeroConcentratedDivergence".
-
rho(float | None) –Privacy loss parameter for zCDP (or approximate zCDP).
-
approx_zcdp(bool) –If false, delta is used to compute the epsilon consumption equivalent when user wants to use zCDP.
-
dataset_name(str) –The name of the dataset the request is aimed at.
epsilon
instance-attribute
#
epsilon: float | None
The epsilon parameter used for pure ε-DP or approximate-DP.
delta
instance-attribute
#
delta: float | None
If the pipeline measurement is of type "ZeroConcentratedDivergence".
(e.g. with "make_gaussian") then it is converted to "SmoothedMaxDivergence" with "make_zCDP_to_approxDP" (see "opendp measurements documentation at https://docs.opendp.org/en/stable/api/python/opendp.combinators.html#opendp.combinators.make_zCDP_to_approxDP). In that case a "delta" must be provided by the user.
rho
instance-attribute
#
rho: float | None
Privacy loss parameter for zCDP (or approximate zCDP).
Using this parameter instead of epsilon switches to a Gaussian mechansim.
OpenDPQueryModel
#
flowchart TD
lomas_core.models.requests.OpenDPQueryModel[OpenDPQueryModel]
lomas_core.models.requests.OpenDPRequestModel[OpenDPRequestModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.OpenDPRequestModel --> lomas_core.models.requests.OpenDPQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.OpenDPRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.OpenDPQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.OpenDPQueryModel href "" "lomas_core.models.requests.OpenDPQueryModel"
click lomas_core.models.requests.OpenDPRequestModel href "" "lomas_core.models.requests.OpenDPRequestModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for an opendp query.
- API Reference Server
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
opendp_json(str) –The OpenDP pipeline for the query.
-
epsilon(float | None) –The epsilon parameter used for pure ε-DP or approximate-DP.
-
delta(float | None) –If the pipeline measurement is of type "ZeroConcentratedDivergence".
-
rho(float | None) –Privacy loss parameter for zCDP (or approximate zCDP).
-
approx_zcdp(bool) –If false, delta is used to compute the epsilon consumption equivalent when user wants to use zCDP.
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
epsilon
instance-attribute
#
epsilon: float | None
The epsilon parameter used for pure ε-DP or approximate-DP.
delta
instance-attribute
#
delta: float | None
If the pipeline measurement is of type "ZeroConcentratedDivergence".
(e.g. with "make_gaussian") then it is converted to "SmoothedMaxDivergence" with "make_zCDP_to_approxDP" (see "opendp measurements documentation at https://docs.opendp.org/en/stable/api/python/opendp.combinators.html#opendp.combinators.make_zCDP_to_approxDP). In that case a "delta" must be provided by the user.
OpenDPDummyQueryModel
#
flowchart TD
lomas_core.models.requests.OpenDPDummyQueryModel[OpenDPDummyQueryModel]
lomas_core.models.requests.OpenDPRequestModel[OpenDPRequestModel]
lomas_core.models.requests.DummyQueryModel[DummyQueryModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.OpenDPRequestModel --> lomas_core.models.requests.OpenDPDummyQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.OpenDPRequestModel
lomas_core.models.requests.DummyQueryModel --> lomas_core.models.requests.OpenDPDummyQueryModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DummyQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.OpenDPDummyQueryModel href "" "lomas_core.models.requests.OpenDPDummyQueryModel"
click lomas_core.models.requests.OpenDPRequestModel href "" "lomas_core.models.requests.OpenDPRequestModel"
click lomas_core.models.requests.DummyQueryModel href "" "lomas_core.models.requests.DummyQueryModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Input model for an opendp query on a dummy dataset.
-
API Reference
Server
dummy_opendp_query_handler
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
dummy_nb_rows(int) –The number of rows in the dummy dataset.
-
dummy_seed(int) –The seed to set at the start of the dummy dataset generation.
-
opendp_json(str) –The OpenDP pipeline for the query.
-
epsilon(float | None) –The epsilon parameter used for pure ε-DP or approximate-DP.
-
delta(float | None) –If the pipeline measurement is of type "ZeroConcentratedDivergence".
-
rho(float | None) –Privacy loss parameter for zCDP (or approximate zCDP).
-
approx_zcdp(bool) –If false, delta is used to compute the epsilon consumption equivalent when user wants to use zCDP.
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
dummy_seed
instance-attribute
#
dummy_seed: int
The seed to set at the start of the dummy dataset generation.
epsilon
instance-attribute
#
epsilon: float | None
The epsilon parameter used for pure ε-DP or approximate-DP.
delta
instance-attribute
#
delta: float | None
If the pipeline measurement is of type "ZeroConcentratedDivergence".
(e.g. with "make_gaussian") then it is converted to "SmoothedMaxDivergence" with "make_zCDP_to_approxDP" (see "opendp measurements documentation at https://docs.opendp.org/en/stable/api/python/opendp.combinators.html#opendp.combinators.make_zCDP_to_approxDP). In that case a "delta" must be provided by the user.
DiffPrivLibRequestModel
#
flowchart TD
lomas_core.models.requests.DiffPrivLibRequestModel[DiffPrivLibRequestModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.DiffPrivLibRequestModel
click lomas_core.models.requests.DiffPrivLibRequestModel href "" "lomas_core.models.requests.DiffPrivLibRequestModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for a diffprivlib request.
Attributes:
-
diffprivlib_json(str) –The DiffPrivLib pipeline for the query (See diffprivlib_logger package.).
-
feature_columns(list) –The list of feature columns to train.
-
target_columns(list | None) –The list of target columns to predict.
-
test_size(float) –The proportion of the test set.
-
test_train_split_seed(int) –The seed for the random train/test split.
-
imputer_strategy(str) –The imputation strategy.
-
dataset_name(str) –The name of the dataset the request is aimed at.
diffprivlib_json
instance-attribute
#
diffprivlib_json: str
The DiffPrivLib pipeline for the query (See diffprivlib_logger package.).
target_columns
instance-attribute
#
target_columns: list | None
The list of target columns to predict.
DiffPrivLibQueryModel
#
flowchart TD
lomas_core.models.requests.DiffPrivLibQueryModel[DiffPrivLibQueryModel]
lomas_core.models.requests.DiffPrivLibRequestModel[DiffPrivLibRequestModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.DiffPrivLibRequestModel --> lomas_core.models.requests.DiffPrivLibQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.DiffPrivLibRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DiffPrivLibQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.DiffPrivLibQueryModel href "" "lomas_core.models.requests.DiffPrivLibQueryModel"
click lomas_core.models.requests.DiffPrivLibRequestModel href "" "lomas_core.models.requests.DiffPrivLibRequestModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Base input model for a diffprivlib query.
- API Reference Server
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
diffprivlib_json(str) –The DiffPrivLib pipeline for the query (See diffprivlib_logger package.).
-
feature_columns(list) –The list of feature columns to train.
-
target_columns(list | None) –The list of target columns to predict.
-
test_size(float) –The proportion of the test set.
-
test_train_split_seed(int) –The seed for the random train/test split.
-
imputer_strategy(str) –The imputation strategy.
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
diffprivlib_json
instance-attribute
#
diffprivlib_json: str
The DiffPrivLib pipeline for the query (See diffprivlib_logger package.).
target_columns
instance-attribute
#
target_columns: list | None
The list of target columns to predict.
DiffPrivLibDummyQueryModel
#
flowchart TD
lomas_core.models.requests.DiffPrivLibDummyQueryModel[DiffPrivLibDummyQueryModel]
lomas_core.models.requests.DiffPrivLibQueryModel[DiffPrivLibQueryModel]
lomas_core.models.requests.DiffPrivLibRequestModel[DiffPrivLibRequestModel]
lomas_core.models.requests.DummyQueryModel[DummyQueryModel]
lomas_core.models.requests.QueryModel[QueryModel]
lomas_core.models.requests.LomasRequestModel[LomasRequestModel]
lomas_core.models.requests.DiffPrivLibQueryModel --> lomas_core.models.requests.DiffPrivLibDummyQueryModel
lomas_core.models.requests.DiffPrivLibRequestModel --> lomas_core.models.requests.DiffPrivLibQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.DiffPrivLibRequestModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DiffPrivLibQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
lomas_core.models.requests.DummyQueryModel --> lomas_core.models.requests.DiffPrivLibDummyQueryModel
lomas_core.models.requests.QueryModel --> lomas_core.models.requests.DummyQueryModel
lomas_core.models.requests.LomasRequestModel --> lomas_core.models.requests.QueryModel
click lomas_core.models.requests.DiffPrivLibDummyQueryModel href "" "lomas_core.models.requests.DiffPrivLibDummyQueryModel"
click lomas_core.models.requests.DiffPrivLibQueryModel href "" "lomas_core.models.requests.DiffPrivLibQueryModel"
click lomas_core.models.requests.DiffPrivLibRequestModel href "" "lomas_core.models.requests.DiffPrivLibRequestModel"
click lomas_core.models.requests.DummyQueryModel href "" "lomas_core.models.requests.DummyQueryModel"
click lomas_core.models.requests.QueryModel href "" "lomas_core.models.requests.QueryModel"
click lomas_core.models.requests.LomasRequestModel href "" "lomas_core.models.requests.LomasRequestModel"
Input model for a DiffPrivLib query on a dummy dataset.
-
API Reference
Server
dummy_diffprivlib_query_handler
Attributes:
-
dataset_name(str) –The name of the dataset the request is aimed at.
-
dummy_nb_rows(int) –The number of rows in the dummy dataset.
-
dummy_seed(int) –The seed to set at the start of the dummy dataset generation.
-
diffprivlib_json(str) –The DiffPrivLib pipeline for the query (See diffprivlib_logger package.).
-
feature_columns(list) –The list of feature columns to train.
-
target_columns(list | None) –The list of target columns to predict.
-
test_size(float) –The proportion of the test set.
-
test_train_split_seed(int) –The seed for the random train/test split.
-
imputer_strategy(str) –The imputation strategy.
dataset_name
instance-attribute
#
dataset_name: str
The name of the dataset the request is aimed at.
dummy_seed
instance-attribute
#
dummy_seed: int
The seed to set at the start of the dummy dataset generation.
diffprivlib_json
instance-attribute
#
diffprivlib_json: str
The DiffPrivLib pipeline for the query (See diffprivlib_logger package.).
target_columns
instance-attribute
#
target_columns: list | None
The list of target columns to predict.
model_input_to_lib
#
model_input_to_lib(request: LomasRequestModel) -> DPLibraries
Return the type of DP library given a LomasRequestModel.
Parameters:
-
(request#LomasRequestModel) –The user request
Raises:
-
InternalServerException–If the library type cannot be determined.
Returns:
-
DPLibraries(DPLibraries) –The type of library for the request.
Source code in core/lomas_core/models/requests.py
298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 | |
Classes:
-
ResponseModel–Base model for any response from the server.
-
InitialBudgetResponse–Model for responses to initial budget queries.
-
SpentBudgetResponse–Model for responses to spent budget queries.
-
RemainingBudgetResponse–Model for responses to remaining budget queries.
-
DummyDsResponse–Model for responses to dummy dataset requests.
-
CostResponse–Model for responses to cost estimation requests or queries.
-
DiffPrivLibQueryResult–Model for diffprivlib query result.
-
SmartnoiseSQLQueryResult–Type for smartnoise_sql result type.
-
SmartnoiseSynthModel–Type for smartnoise_synth result when it is a pickled model.
-
SmartnoiseSynthSamples–Type for smartnoise_synth result when it is a dataframe of samples.
-
OpenDPQueryResult–Type for opendp result.
-
OpenDPPolarsQueryResult–Type for opendp Polars result.
-
QueryResponse–Response to Lomas queries.
-
Job–Scheduled Job Response.
ResponseModel
#
flowchart TD
lomas_core.models.responses.ResponseModel[ResponseModel]
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Base model for any response from the server.
InitialBudgetResponse
#
flowchart TD
lomas_core.models.responses.InitialBudgetResponse[InitialBudgetResponse]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.InitialBudgetResponse
click lomas_core.models.responses.InitialBudgetResponse href "" "lomas_core.models.responses.InitialBudgetResponse"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Model for responses to initial budget queries.
- API Reference
Attributes:
-
initial_epsilon(float) –The initial epsilon privacy loss budget.
-
initial_delta(float) –The initial delta privacy loss budget.
SpentBudgetResponse
#
flowchart TD
lomas_core.models.responses.SpentBudgetResponse[SpentBudgetResponse]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.SpentBudgetResponse
click lomas_core.models.responses.SpentBudgetResponse href "" "lomas_core.models.responses.SpentBudgetResponse"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Model for responses to spent budget queries.
- API Reference
Attributes:
-
total_spent_epsilon(float) –The total spent epsilon privacy loss budget.
-
total_spent_delta(float) –The total spent delta privacy loss budget.
RemainingBudgetResponse
#
flowchart TD
lomas_core.models.responses.RemainingBudgetResponse[RemainingBudgetResponse]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.RemainingBudgetResponse
click lomas_core.models.responses.RemainingBudgetResponse href "" "lomas_core.models.responses.RemainingBudgetResponse"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Model for responses to remaining budget queries.
- API Reference
Attributes:
-
remaining_epsilon(float) –The remaining epsilon privacy loss budget.
-
remaining_delta(float) –The remaining delta privacy loss budget.
DummyDsResponse
#
flowchart TD
lomas_core.models.responses.DummyDsResponse[DummyDsResponse]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.DummyDsResponse
click lomas_core.models.responses.DummyDsResponse href "" "lomas_core.models.responses.DummyDsResponse"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Model for responses to dummy dataset requests.
-
API Reference
Server
get_dummy_dataset
Methods:
-
deserialize_dummy_df–Decodes the dict representation of the dummy df with correct types.
Attributes:
deserialize_dummy_df
classmethod
#
deserialize_dummy_df(v: DataFrame | dict, info: ValidationInfo) -> DataFrame
Decodes the dict representation of the dummy df with correct types.
Only does so if the input value is not already a dataframe. Args: v (pd.DataFrame | dict): The dataframe to decode. info (ValidationInfo): Validation info to access other model fields.
Returns:
-
DataFrame–pd.DataFrame: The decoded dataframe.
Source code in core/lomas_core/models/responses.py
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
CostResponse
#
flowchart TD
lomas_core.models.responses.CostResponse[CostResponse]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.CostResponse
click lomas_core.models.responses.CostResponse href "" "lomas_core.models.responses.CostResponse"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Model for responses to cost estimation requests or queries.
- API Reference
-
API Reference
Server
process_response
Attributes:
DiffPrivLibQueryResult
#
flowchart TD
lomas_core.models.responses.DiffPrivLibQueryResult[DiffPrivLibQueryResult]
click lomas_core.models.responses.DiffPrivLibQueryResult href "" "lomas_core.models.responses.DiffPrivLibQueryResult"
Model for diffprivlib query result.
-
API Reference
Server
DiffPrivLibQuerierquery
Attributes:
SmartnoiseSQLQueryResult
#
flowchart TD
lomas_core.models.responses.SmartnoiseSQLQueryResult[SmartnoiseSQLQueryResult]
click lomas_core.models.responses.SmartnoiseSQLQueryResult href "" "lomas_core.models.responses.SmartnoiseSQLQueryResult"
Type for smartnoise_sql result type.
-
API Reference
Server
SmartnoiseSQLQuerier
Attributes:
SmartnoiseSynthModel
#
flowchart TD
lomas_core.models.responses.SmartnoiseSynthModel[SmartnoiseSynthModel]
click lomas_core.models.responses.SmartnoiseSynthModel href "" "lomas_core.models.responses.SmartnoiseSynthModel"
Type for smartnoise_synth result when it is a pickled model.
Attributes:
-
model_config–Result type description.
-
type(Literal[SMARTNOISE_SYNTH]) –Synthetic data generator model.
SmartnoiseSynthSamples
#
flowchart TD
lomas_core.models.responses.SmartnoiseSynthSamples[SmartnoiseSynthSamples]
click lomas_core.models.responses.SmartnoiseSynthSamples href "" "lomas_core.models.responses.SmartnoiseSynthSamples"
Type for smartnoise_synth result when it is a dataframe of samples.
Attributes:
-
type(Literal['sn_synth_samples']) –Result type description.
-
df_samples(DataFrame) –Dataframe containing the generated synthetic samples.
OpenDPQueryResult
#
flowchart TD
lomas_core.models.responses.OpenDPQueryResult[OpenDPQueryResult]
click lomas_core.models.responses.OpenDPQueryResult href "" "lomas_core.models.responses.OpenDPQueryResult"
Type for opendp result.
-
API Reference
Server
OpenDPQuerierquery
Attributes:
OpenDPPolarsQueryResult
#
flowchart TD
lomas_core.models.responses.OpenDPPolarsQueryResult[OpenDPPolarsQueryResult]
click lomas_core.models.responses.OpenDPPolarsQueryResult href "" "lomas_core.models.responses.OpenDPPolarsQueryResult"
Type for opendp Polars result.
-
API Reference
Server
OpenDPQuerierquery
Attributes:
QueryResponse
#
flowchart TD
lomas_core.models.responses.QueryResponse[QueryResponse]
lomas_core.models.responses.CostResponse[CostResponse]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.CostResponse --> lomas_core.models.responses.QueryResponse
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.CostResponse
click lomas_core.models.responses.QueryResponse href "" "lomas_core.models.responses.QueryResponse"
click lomas_core.models.responses.CostResponse href "" "lomas_core.models.responses.CostResponse"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Response to Lomas queries.
- API Reference
Attributes:
-
requested_by(str) –The user that triggered the query.
-
result(QueryResultT) –The query result object.
-
epsilon(float) –The epsilon cost of the query.
-
delta(float) –The delta cost of the query.
Job
#
flowchart TD
lomas_core.models.responses.Job[Job]
lomas_core.models.responses.ResponseModel[ResponseModel]
lomas_core.models.responses.ResponseModel --> lomas_core.models.responses.Job
click lomas_core.models.responses.Job href "" "lomas_core.models.responses.Job"
click lomas_core.models.responses.ResponseModel href "" "lomas_core.models.responses.ResponseModel"
Scheduled Job Response.
-
API Reference
-
Client
LomasHttpClientwait_for_job -
Server
-
diffprivlib_query_handler -
dummy_diffprivlib_query_handler -
dummy_opendp_query_handler -
dummy_smartnoise_sql_handler -
dummy_smartnoise_synth_handler -
estimate_diffprivlib_cost -
estimate_opendp_cost -
estimate_smartnoise_sql_cost -
estimate_smartnoise_synth_cost -
handle_query_to_job -
opendp_query_handler -
smartnoise_sql_handler -
smartnoise_synth_handler -
status_handler
-
-
Client
-
API Reference
Server
process_response
Attributes:
-
uid(UUID) –Job unique identifier.
-
requested_by(str | None) –Name of the user that requested this job.
-
status(Literal['in_progress', 'failed', 'complete']) –Job status.
-
result(QueryResponse | CostResponse | None) –Job result, if available.
-
error(LomasServerExceptionType | None) –Job error, if any.
-
status_code(int) –Status code for job response.
uid
class-attribute
instance-attribute
#
Job unique identifier.
requested_by
class-attribute
instance-attribute
#
requested_by: str | None = None
Name of the user that requested this job.
status
class-attribute
instance-attribute
#
status: Literal['in_progress', 'failed', 'complete'] = 'in_progress'
Job status.
result
class-attribute
instance-attribute
#
result: QueryResponse | CostResponse | None = None
Job result, if available.
error
class-attribute
instance-attribute
#
error: LomasServerExceptionType | None = None
Job error, if any.
Functions:
-
dataframe_to_dict–Transforms pandas dataframe into a dictionary.
-
dataframe_from_dict–Transforms input dict into pandas dataframe.
-
polars_df_to_str–Convert a Polars DataFrame to a JSON string.
-
polars_df_from_str–Convert a Polars DataFrame from a JSON string.
-
serialize_model–Serialise a python object into an utf-8 string.
-
deserialize_model–Deserialize a base64 encoded byte string into a python object.
dataframe_to_dict
#
Transforms pandas dataframe into a dictionary.
Parameters:
-
(df#DataFrame) –The dataframe to "serialize".
Returns:
-
dict(dict) –The pandas dataframe in dictionary format.
Source code in core/lomas_core/models/utils.py
12 13 14 15 16 17 18 19 20 21 | |
dataframe_from_dict
#
dataframe_from_dict(serialized_df: DataFrame | dict) -> DataFrame
Transforms input dict into pandas dataframe.
If the input is already a dataframe, it is simply returned unmodified.
Parameters:
Returns:
-
DataFrame–pd.DataFrame: The transformed dataframe.
Source code in core/lomas_core/models/utils.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
polars_df_to_str
#
polars_df_to_str(df_pl: DataFrame) -> str
Convert a Polars DataFrame to a JSON string.
Source code in core/lomas_core/models/utils.py
42 43 44 | |
polars_df_from_str
#
polars_df_from_str(serialized_pl: str | DataFrame) -> DataFrame
Convert a Polars DataFrame from a JSON string.
Source code in core/lomas_core/models/utils.py
47 48 49 50 51 52 53 | |
serialize_model
#
Serialise a python object into an utf-8 string.
Fitted Smartnoise Synth synthesizer or fitted DiffPrivLib pipeline.
Parameters:
Returns:
-
str(str) –string of serialised model
Source code in core/lomas_core/models/utils.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 | |
deserialize_model
#
deserialize_model(serialized_model: Any) -> Any
Deserialize a base64 encoded byte string into a python object.
Parameters:
Returns:
-
Any(Any) –Deserialized python object.
Source code in core/lomas_core/models/utils.py
72 73 74 75 76 77 78 79 80 81 82 83 84 85 | |