This documentation is for an old version of OpenDP.

The current release of OpenDP is v0.11.1.

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",
    "make_population_amplification"
]


[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 """ assert_features("contrib") # 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 """ assert_features("contrib") # 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 """ assert_features("contrib") # 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))
[docs] def make_population_amplification( measurement: Measurement, population_size: int ) -> Measurement: """Construct an amplified measurement from a `measurement` with privacy amplification by subsampling. :param measurement: The measurement to amplify. :type measurement: Measurement :param population_size: Number of records in population. :type population_size: int :return: New measurement with the same function, but an adjusted privacy relation. :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) population_size = py_to_c(population_size, c_type=ctypes.c_uint) # Call library function. function = lib.opendp_comb__make_population_amplification function.argtypes = [Measurement, ctypes.c_uint] function.restype = FfiResult return c_to_py(unwrap(function(measurement, population_size), Measurement))