Source code for opendp.comb
# Auto-generated. Do not edit.
from opendp._convert import *
from opendp._lib import *
from opendp.mod import *
from opendp.typing import *
__all__ = [
"make_chain_mt",
"make_chain_tt",
"make_basic_composition"
]
[docs]
def make_chain_mt(
measurement: Measurement,
transformation: Transformation
) -> Measurement:
"""Construct the functional composition (`measurement` ○ `transformation`). Returns a Measurement.
:param measurement: outer privatizer
:type measurement: Measurement
:param transformation: inner query
:type transformation: Transformation
:return: Measurement representing the chained computation.
:rtype: Measurement
:raises AssertionError: if an argument's type differs from the expected type
:raises UnknownTypeError: if a type-argument fails to parse
:raises OpenDPException: packaged error from the core OpenDP library
"""
# No type arguments to standardize.
# Convert arguments to c types.
measurement = py_to_c(measurement, c_type=Measurement)
transformation = py_to_c(transformation, c_type=Transformation)
# Call library function.
function = lib.opendp_comb__make_chain_mt
function.argtypes = [Measurement, Transformation]
function.restype = FfiResult
return c_to_py(unwrap(function(measurement, transformation), Measurement))
[docs]
def make_chain_tt(
transformation1: Transformation,
transformation0: Transformation
) -> Transformation:
"""Construct the functional composition (`transformation1` ○ `transformation0`). Returns a Tranformation.
:param transformation1: outer transformation
:type transformation1: Transformation
:param transformation0: inner transformation
:type transformation0: Transformation
:return: Transformation representing the chained computation.
:rtype: Transformation
:raises AssertionError: if an argument's type differs from the expected type
:raises UnknownTypeError: if a type-argument fails to parse
:raises OpenDPException: packaged error from the core OpenDP library
"""
# No type arguments to standardize.
# Convert arguments to c types.
transformation1 = py_to_c(transformation1, c_type=Transformation)
transformation0 = py_to_c(transformation0, c_type=Transformation)
# Call library function.
function = lib.opendp_comb__make_chain_tt
function.argtypes = [Transformation, Transformation]
function.restype = FfiResult
return c_to_py(unwrap(function(transformation1, transformation0), Transformation))
[docs]
def make_basic_composition(
measurement0: Measurement,
measurement1: Measurement
) -> Measurement:
"""Construct the DP composition (`measurement0`, `measurement1`). Returns a Measurement.
:param measurement0: The left member of the resulting 2-tuple.
:type measurement0: Measurement
:param measurement1: The right member of the resulting 2-tuple.
:type measurement1: Measurement
:return: Measurement representing the composed transformations.
:rtype: Measurement
:raises AssertionError: if an argument's type differs from the expected type
:raises UnknownTypeError: if a type-argument fails to parse
:raises OpenDPException: packaged error from the core OpenDP library
"""
# No type arguments to standardize.
# Convert arguments to c types.
measurement0 = py_to_c(measurement0, c_type=Measurement)
measurement1 = py_to_c(measurement1, c_type=Measurement)
# Call library function.
function = lib.opendp_comb__make_basic_composition
function.argtypes = [Measurement, Measurement]
function.restype = FfiResult
return c_to_py(unwrap(function(measurement0, measurement1), Measurement))