smartnoise_validator 0.2.3

A library for validating whether or not an analysis is differentially private.
Build #487810 2022-01-06T18:32:42.524258+00:00
# rustc version
rustc 1.59.0-nightly (f1ce0e6a0 2022-01-05)# docs.rs version
docsrs 0.6.0 (c86fbce 2021-12-30)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/smartnoise_validator-0.2.3/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/smartnoise_validator-0.2.3/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "3221225472" "--cpus" "3" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a429bb59b7a3b4e7270a4b4c243bb115fc561d8f62ec34ef63a0a36cabf65dfd" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "-Z" "unstable-options" "--config" "build.rustdocflags=[\"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20220105-1.59.0-nightly-f1ce0e6a0\", \"--static-root-path\", \"/\", \"--cap-lints\", \"warn\", \"--disable-per-crate-search\"]" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-j3" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }`
[INFO] [stdout] 68e5936bffed50ed019317c4c0bb3c31e04abea8e0e1f7c3179d1e8c503a9bfd
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "68e5936bffed50ed019317c4c0bb3c31e04abea8e0e1f7c3179d1e8c503a9bfd", kill_on_drop: false }`
[INFO] [stderr] warning: field is never read: `nature`
[INFO] [stderr]   --> build/main.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 |     nature: Option<Vec<String>>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `default_python`
[INFO] [stderr]   --> build/main.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 39 |     default_python: Option<String>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `smartnoise_validator` (build script) generated 2 warnings
[INFO] [stderr]    Compiling smartnoise_validator v0.2.3 (/opt/rustwide/workdir)
[INFO] [stderr] error: failed to run custom build command for `smartnoise_validator v0.2.3 (/opt/rustwide/workdir)`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/build/smartnoise_validator-9ce670aa6f454f49/build-script-main` (exit status: 101)
[INFO] [stderr]   --- stdout
[INFO] [stderr]   cargo:rerun-if-changed=prototypes
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/api.proto
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/base.proto
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/value.proto
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Abs.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Add.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/And.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Bin.json_x
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Cast.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Clamp.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ColumnBind.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Count.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Covariance.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPCount.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPCovariance.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPGumbelMedian.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPHistogram.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPLinearRegression.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPMaximum.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPMean.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPMedian.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPMinimum.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPQuantile.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPRawMoment.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPSum.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/DPVariance.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Digitize.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Divide.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Equal.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ExponentialMechanism.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Filter.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/GaussianMechanism.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/GreaterThan.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Histogram.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Impute.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Index.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/LaplaceMechanism.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/LessThan.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Literal.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Log.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Map.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Materialize.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Maximum.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Mean.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Median.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Minimum.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Modulo.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Multiply.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Negate.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Negative.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Or.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Partition.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Power.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Quantile.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/RawMoment.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Reshape.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Resize.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/RowMax.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/RowMin.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/SimpleGeometricMechanism.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/SnappingMechanism.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Subtract.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Sum.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/TheilSen.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ToBool.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ToDataframe.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ToFloat.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ToInt.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/ToString.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Union.json
[INFO] [stderr]   cargo:rerun-if-changed=prototypes/components/Variance.json
[INFO] [stderr]   ComponentJSON { id: "Abs", name: "abs", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic types must be of type float or integer.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Absolute value of data."), proto_id: 0 }
[INFO] [stderr]   ComponentJSON { id: "Add", name: "add", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Left value to add. Must be of type float or integer.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Right value to add. Must be of type float or integer.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Mathematical addition. Value types of arguments must match."), proto_id: 1 }
[INFO] [stderr]   ComponentJSON { id: "Cast", name: "cast", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be cast to another type.") }, "true_label": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Positive class (class to be mapped to `true`) for each column. Used only if casting to `bool`.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Minimum allowable imputation value. Used only if casting to `i64`.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Maximum allowable imputation value. Used only if casting to `i64`.") }}, options: {"atomic_type": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: None, default_python: None, description: Some("Type to which data should be cast. One of [`string`, `int`, `bool`, `float`]") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Cast data to an atomic type."), proto_id: 4 }
[INFO] [stderr]   ComponentJSON { id: "Clamp", name: "clamp", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be clamped.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Desired lower bound for each column of the data. Used only if `categories` is `None`.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Desired upper bound for each column of the data. Used only if `categories` is `None`.") }, "categories": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The set of categories you want to be represented for each column of the data, or `None`.") }, "null_value": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The value to which elements not included in `categories` will be mapped for each column of the data. Used only if `categories` is not `None`.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Clamped data.") }, description: Some("Clamps data to the provided bounds.\n\nIf data are numeric, clamping maps elements outside of an interval `[lower, upper]` to the closer endpoint.\nIf data are categorical, clamping maps elements outside of the `categories` argument to the associated `null`.\nUsing clamp sets the `categories` property for the analysis with value `categories` plus `null_value` in the last position."), proto_id: 5 }
[INFO] [stderr]   ComponentJSON { id: "ColumnBind", name: "column_bind", arguments: {}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Bind arguments as columns of an array to produce a larger array"), proto_id: 68 }
[INFO] [stderr]   ComponentJSON { id: "Count", name: "count", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }}, options: {"distinct": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("false"), default_python: Some("False"), description: Some("Set to true for the number of unique members in the data.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Row count.") }, description: Some("Returns the number of rows in the data."), proto_id: 6 }
[INFO] [stderr]   ComponentJSON { id: "Covariance", name: "covariance", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("2D data array used to construct covariance matrix.") }, "left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Left data array used to calculate cross-covariance matrix. Used only if `data` not provided.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Right data array used to calculate cross-covariance matrix. Used only if `data` not provided.") }}, options: {"finite_sample_correction": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("Whether or not to use the finite sample correction (Bessel's correction).") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Flattened covariance or cross-covariance matrix.") }, description: Some("Calculate covariance.\n\nIf `data` argument is provided as a 2D array, calculate covariance matrix. Otherwise, `left` and `right` 1D arrays are used to calculate a cross-covariance matrix between elements of the two arrays."), proto_id: 7 }
[INFO] [stderr]   ComponentJSON { id: "Digitize", name: "digitize", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be binned.") }, "edges": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Values representing the edges of bins. Edges must be sorted, and may not contain duplicates.") }, "null_value": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Value to which to map if there is no valid bin (e.g. if the element falls outside the bin range). The null value is the final category.") }, "inclusive_left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("True"), description: Some("Whether or not the left edge of the bin is inclusive, i.e. the bins are of the form [lower, upper).") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Maps data to bins.\n\nBins will be of the form [lower, upper) or (lower, upper]. The null value is the final category."), proto_id: 19 }
[INFO] [stderr]   ComponentJSON { id: "Divide", name: "divide", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must match right") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must match left") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 20 }
[INFO] [stderr]   ComponentJSON { id: "DPCount", name: "dp_count", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("0"), description: Some("Estimated minimum possible value of the statistic. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism.") }}, options: {"distinct": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("false"), default_python: Some("False"), description: Some("Set to true for the number of unique members in the data.") }, "mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"SimpleGeometric\")"), default_python: Some("\"SimpleGeometric\""), description: Some("Privatizing mechanism to use. One of [`SimpleGeometric`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. Only `SimpleGeometric` is accepted if floating-point protections are enabled.") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private row count.") }, description: Some("Returns a differentially private row count."), proto_id: 8 }
[INFO] [stderr]   ComponentJSON { id: "DPCovariance", name: "dp_covariance", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Left data array used to calculate cross-covariance matrix. Used only if `data` not provided.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Right data array used to calculate cross-covariance matrix. Used only if `data` not provided.") }, "data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("2D data array used to construct covariance matrix.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. One of [`Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }, "finite_sample_correction": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("Whether or not to use the finite sample correction (Bessel's correction).") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Flattened covariance or cross-covariance matrix.") }, description: Some("Calculate differentially private covariance.\n\nIf `data` argument is provided as a 2D array, calculate covariance matrix. Otherwise, `left` and `right` 1D arrays are used to calculate a cross-covariance matrix between elements of the two arrays."), proto_id: 9 }
[INFO] [stderr]   ComponentJSON { id: "DPGumbelMedian", name: "dp_gumbel_median", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "lower": ArgumentJSON { nature: None, type_value: None, type_proto: Some("double"), type_rust: Some("f64"), default_rust: None, default_python: None, description: Some("Min candidate") }, "upper": ArgumentJSON { nature: None, type_value: None, type_proto: Some("double"), type_rust: Some("f64"), default_rust: None, default_python: None, description: Some("Max candidate") }, "enforce_constant_time": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("Enforce constant time for median") }}, options: {"privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimates of the median of each column of the data.") }, description: Some("Returns differentially private estimates of the median of each column of the data."), proto_id: 66 }
[INFO] [stderr]   ComponentJSON { id: "DPHistogram", name: "dp_histogram", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric.") }, "edges": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set of edges to bin continuous-valued data. Used only if data are of `continuous` nature.") }, "categories": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set of categories in data. Used only if data are of `categorical` nature.") }, "null_value": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The value to which elements not included in `categories` will be mapped for each column of the data. Used only if `categories` is not `None`. The null value is the final category- counts for the null category are at the end of the vector of counts.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("0"), description: Some("Estimated minimum possible value of bin counts. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of bin counts. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism.") }, "inclusive_left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("True"), description: Some("Whether or not the left edge of the bin is inclusive. If `true` bins are of the form [lower, upper). Otherwise, bins are of the form (lower, upper]. Used only if data are of `continuous` nature.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"SimpleGeometric\")"), default_python: Some("\"SimpleGeometric\""), description: Some("Privatizing mechanism to use. One of [`SimpleGeometric`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. Only `SimpleGeometric` is accepted if floating-point protections are enabled.") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private histogram.") }, description: Some("Returns a differentially private histogram over user-defined categories. The final cell contains the counts for null values (outside the set of categories)."), proto_id: 10 }
[INFO] [stderr]   ComponentJSON { id: "DPLinearRegression", name: "dp_linear_regression", arguments: {"data_x": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Predictor variable") }, "data_y": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Target variable") }, "k": ArgumentJSON { nature: None, type_value: Some("Integer"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Number of matchings. Memory usage is quadratic in K.") }, "lower_slope": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the slope.") }, "upper_slope": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the slope.") }, "lower_intercept": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the intercept.") }, "upper_intercept": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the intercept.") }}, options: {"implementation": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"theil-sen-k-match\")"), default_python: Some("\"theil-sen-k-match\""), description: Some("Theil-Sen implementation to use. One of [`theil-sen`, `theil-sen-k-match`]") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimate of the slope and intercept of the line fit to the data.") }, description: Some("Returns differentially private estimates of the slope and intercept."), proto_id: 67 }
[INFO] [stderr]   ComponentJSON { id: "DPMaximum", name: "dp_maximum", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Automatic`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimates of the maximum elements of the data.") }, description: Some("Returns differentially private estimates of the maximum elements of each column of the data."), proto_id: 11 }
[INFO] [stderr]   ComponentJSON { id: "DPMean", name: "dp_mean", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"implementation": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"resize\")"), default_python: Some("\"resize\""), description: Some("Privatizing algorithm to use. One of [`resize`, `plug-in`]") }, "mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. One of [`Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`].") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimate of the mean of each column of the data.") }, description: Some("Returns differentially private estimates of the means of each column of the data."), proto_id: 12 }
[INFO] [stderr]   ComponentJSON { id: "DPMedian", name: "dp_median", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric. For Gumbel mechanism, must be limited to a single column of data.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Exponential`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`, `Gumbel`]. `Automatic` chooses `Exponential` if candidates provided, otherwise chooses `Laplace`.") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.  For Gumbel mechanism, must be limited to a single column of data. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }, "interpolation": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"midpoint\")"), default_python: Some("\"midpoint\""), description: Some("Interpolation strategy. One of [`lower`, `upper`, `midpoint`, `nearest`, `linear`]") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimates of the median of each column of the data.") }, description: Some("Returns differentially private estimates of the median of each column of the data."), proto_id: 13 }
[INFO] [stderr]   ComponentJSON { id: "DPMinimum", name: "dp_minimum", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Automatic`, `Exponential`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. `Automatic` chooses `Exponential` if candidates provided.") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimates of the minimum elements of the data.") }, description: Some("Returns differentially private estimates of the minimum elements of each column of the data."), proto_id: 14 }
[INFO] [stderr]   ComponentJSON { id: "DPQuantile", name: "dp_quantile", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"alpha": ArgumentJSON { nature: None, type_value: None, type_proto: Some("double"), type_rust: Some("f64"), default_rust: None, default_python: None, description: Some("Desired quantiles, defined on `[0,1]`.") }, "mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Automatic`, `Exponential`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. `Automatic` chooses `Exponential` if candidates provided.") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }, "interpolation": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"midpoint\")"), default_python: Some("\"midpoint\""), description: Some("Interpolation strategy. One of [`lower`, `upper`, `midpoint`, `nearest`, `linear`]") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private estimate of the quantile.") }, description: Some("Returns differentially private estimates of specified quantiles for each column of the data."), proto_id: 16 }
[INFO] [stderr]   ComponentJSON { id: "DPRawMoment", name: "dp_raw_moment", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data for which you would like the kth raw moments. Atomic data type must be float.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism.") }}, options: {"order": ArgumentJSON { nature: None, type_value: None, type_proto: Some("uint32"), type_rust: Some("u32"), default_rust: None, default_python: None, description: Some("Integer statistical moment indicator.") }, "mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Automatic`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`].") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private sample estimate of kth raw moment for each column of the data.") }, description: Some("Returns differentially private sample estimate of a raw moment for each column of the data."), proto_id: 15 }
[INFO] [stderr]   ComponentJSON { id: "DPSum", name: "dp_sum", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic, on integral data. Useful to help bound elapsed time when sampling for the geometric mechanism. Useful for the snapping mechanism.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic, on integral data. Useful to help bound elapsed time when sampling for the geometric mechanism. Useful for the snapping mechanism.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Automatic`, `Laplace`, `Gaussian`, `AnalyticGaussian`, `SimpleGeometric`]. `Automatic` chooses based on the input data type.") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private sum over elements for each column of the data.") }, description: Some("Returns differentially private estimates of the sums of each column of the data."), proto_id: 17 }
[INFO] [stderr]   ComponentJSON { id: "DPVariance", name: "dp_variance", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. Atomic data type must be float.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. Atomic data type must be float.") }}, options: {"mechanism": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"Automatic\")"), default_python: Some("\"Automatic\""), description: Some("Privatizing mechanism to use. Value must be one of [`Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`].") }, "privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5}") }, "finite_sample_correction": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("Whether or not to use the finite sample correction (Bessel's correction).") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Differentially private sample variance for each column of the data.") }, description: Some("Returns a differentially private estimate of the variance for each column of the data."), proto_id: 18 }
[INFO] [stderr]   ComponentJSON { id: "Equal", name: "equal", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must match right") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must match left") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 21 }
[INFO] [stderr]   ComponentJSON { id: "ExponentialMechanism", name: "exponential_mechanism", arguments: {"utilities": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Respective scores for each candidate. Total number of records must match candidates.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Set from which the Exponential mechanism will return an element. Total number of records must match utilities.") }, "sensitivity": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled.") }}, options: {"privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Length of privacy_usage must be exactly one.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Element from the candidate set selected via the Exponential mechanism.") }, description: Some("Returns an element from a finite set with probability relative to its utility."), proto_id: 22 }
[INFO] [stderr]   ComponentJSON { id: "Filter", name: "filter", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "mask": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Boolean mask giving whether or not each row should be kept. Example value: data['age'] == '4'") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data with only the desired rows.") }, description: Some("Filters data down into only the desired rows."), proto_id: 23 }
[INFO] [stderr]   ComponentJSON { id: "GaussianMechanism", name: "gaussian_mechanism", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Result to be released privately via the Gaussian mechanism. Atomic type must be numeric.") }, "sensitivity": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled.") }}, options: {"privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.") }, "analytic": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("Set to enable use of the analytic gaussian mechanism.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Original data perturbed with Gaussian noise.") }, description: Some("Privatizes a result by returning it perturbed with Gaussian noise."), proto_id: 24 }
[INFO] [stderr]   ComponentJSON { id: "GreaterThan", name: "greater_than", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic values must be numeric and of the same type. Type must match right.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic values must be numeric and of the same type. Type must match left.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 25 }
[INFO] [stderr]   ComponentJSON { id: "Histogram", name: "histogram", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "edges": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: Some("Set of edges to bin continuous-valued data. Used only if data are of `continuous` nature. Must have a value if categories not specified.") }, "categories": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: Some("Set of categories in data. Used only if data are of `categorical` nature. Must have a value if edges not specified.") }, "null_value": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: Some("The value to which elements not included in `categories` will be mapped for each column of the data. Used only if `categories` is not `None`.") }, "inclusive_left": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: None, default_rust: None, default_python: Some("True"), description: Some("Whether or not the left edge of the bin is inclusive. If `true` bins are of the form [lower, upper). Otherwise, bins are of the form (lower, upper]. Used only if data are of `continuous` nature.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 26 }
[INFO] [stderr]   ComponentJSON { id: "Impute", name: "impute", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("The data for which null values will be imputed.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("A lower bound on data elements for each column. Used only if `categories` is `None`.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("An upper bound on data elements for each column. Used only if `categories` is `None`.") }, "categories": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The set of categories you want to be represented for each column of the data, if the data is categorical. Atomic type must match atomic type of data.") }, "null_values": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The set of values that are considered null for each column of the data, if the data is categorical. Atomic type must match atomic type of data.") }, "weights": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Optional. The weight of each category when imputing. Uniform weights are used if not specified.") }, "distribution": ArgumentJSON { nature: None, type_value: Some("String"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The distribution to be used when imputing records. Used only if `categories` is `None`.") }, "shift": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The expectation of the Gaussian distribution to be used for imputation. Used only if `distribution` is `Gaussian`.") }, "scale": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The standard deviation of the Gaussian distribution to be used for imputation. Used only if `distribution` is `Gaussian`.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data with null values replaced by imputed values.") }, description: Some("Replaces null values with draws from a specified distribution.\n\nIf the `categories` argument is provided, the data are considered to be categorical regardless of atomic type and the elements provided in `null_value` will be replaced with those in `categories` according to `weights`.\n\nIf the `categories` argument is not provided, the data are considered to be numeric and elements that are `f64::NAN` will be replaced according to the specified distribution."), proto_id: 27 }
[INFO] [stderr]   ComponentJSON { id: "Index", name: "index", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Indexmap"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "names": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: None }, "indices": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: None }, "mask": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: None }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Index into data frames, partitions and arrays to retrieve homogeneously typed contiguous arrays"), proto_id: 28 }
[INFO] [stderr]   ComponentJSON { id: "LaplaceMechanism", name: "laplace_mechanism", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("True value to be released privately via the Laplace mechanism.") }, "sensitivity": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled.") }}, options: {"privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Original data perturbed with Laplace noise.") }, description: Some("Privatizes a result by returning it perturbed with Laplace noise."), proto_id: 30 }
[INFO] [stderr]   ComponentJSON { id: "LessThan", name: "less_than", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric, and match with atomic type of right.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric, and match with atomic type of left.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 31 }
[INFO] [stderr]   ComponentJSON { id: "Literal", name: "literal", arguments: {}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 32 }
[INFO] [stderr]   ComponentJSON { id: "Log", name: "log", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be float.") }, "base": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("2.71828"), description: None }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 33 }
[INFO] [stderr]   ComponentJSON { id: "And", name: "logical_and", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Left argument for the logical AND.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Right argument for the logical AND.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Logical AND of left and right.") }, description: None, proto_id: 2 }
[INFO] [stderr]   ComponentJSON { id: "Or", name: "logical_or", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("left and right arguments must share the same data types"), proto_id: 44 }
[INFO] [stderr]   ComponentJSON { id: "Map", name: "map", arguments: {}, options: {"component": ArgumentJSON { nature: None, type_value: None, type_proto: Some("Component"), type_rust: Some("proto::Component"), default_rust: None, default_python: None, description: None }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Indexmap"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Apply Component to each data partition."), proto_id: 34 }
[INFO] [stderr]   ComponentJSON { id: "Materialize", name: "materialize", arguments: {"column_names": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }}, options: {"public": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("false"), default_python: Some("False"), description: None }, "skip_row": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("when set, skip the first line (header) in a csv") }, "file_path": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: None, default_python: None, description: Some("Path to the file on the system. File format must be CSV.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Dataframe"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Load a tabular frame from a data source"), proto_id: 35 }
[INFO] [stderr]   ComponentJSON { id: "Maximum", name: "maximum", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data for which you want the maximum value in each column.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Maximum of each column in the data.") }, description: Some("Find the maximum value of each column in the data."), proto_id: 36 }
[INFO] [stderr]   ComponentJSON { id: "Mean", name: "mean", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Arithmetic mean for each column of the data in question.") }, description: Some("Calculates the arithmetic mean of each column in the provided data."), proto_id: 37 }
[INFO] [stderr]   ComponentJSON { id: "Median", name: "median", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data for which you want the median value in each column.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which to compute scores for the Exponential mechanism.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Median of each column in the data.") }, description: Some("Find the median value of each column in the data."), proto_id: 63 }
[INFO] [stderr]   ComponentJSON { id: "Minimum", name: "minimum", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data for which you want the maximum value in each column.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Maximum of each column in the data.") }, description: Some("Find the minimum value of each column in the data."), proto_id: 39 }
[INFO] [stderr]   ComponentJSON { id: "Modulo", name: "modulo", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric. Atomic type must match right.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric. Atomic type must match left.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 40 }
[INFO] [stderr]   ComponentJSON { id: "Multiply", name: "multiply", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric. Atomic type must match right.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric. Atomic type must match left.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 41 }
[INFO] [stderr]   ComponentJSON { id: "Negate", name: "negate", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be boolean.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 42 }
[INFO] [stderr]   ComponentJSON { id: "Negative", name: "negative", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 43 }
[INFO] [stderr]   ComponentJSON { id: "Partition", name: "partition", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Must be a dataframe or an array") }, "num_partitions": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: None }, "by": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: None }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Indexmap"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Split the rows of data into either k equally sized partitions, or by the categories of a vector"), proto_id: 45 }
[INFO] [stderr]   ComponentJSON { id: "Power", name: "power", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic types must be numeric and homogenous.") }, "radical": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic values may not be negative.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: None, proto_id: 46 }
[INFO] [stderr]   ComponentJSON { id: "Quantile", name: "quantile", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Atomic type must be numeric.") }, "candidates": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data.") }}, options: {"alpha": ArgumentJSON { nature: None, type_value: None, type_proto: Some("double"), type_rust: Some("f64"), default_rust: None, default_python: None, description: Some("Desired quantiles, defined on `[0,1]`. Examples: 0: min, 0.5: median, 1: max") }, "interpolation": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"midpoint\")"), default_python: Some("\"midpoint\""), description: Some("Interpolation strategy. One of [`lower`, `upper`, `midpoint`, `nearest`, `linear`]") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Quantile values for each column.") }, description: Some("Get values corresponding to specified quantiles for each column of the data."), proto_id: 47 }
[INFO] [stderr]   ComponentJSON { id: "RawMoment", name: "raw_moment", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data for which you would like the kth raw moments. Atomic data type must be float.") }}, options: {"order": ArgumentJSON { nature: None, type_value: None, type_proto: Some("uint32"), type_rust: Some("u32"), default_rust: None, default_python: None, description: Some("Indicate the kth integer statistical moment.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("kth raw sample moment for each column.") }, description: Some("Returns sample estimate of kth raw moment for each column of the data."), proto_id: 29 }
[INFO] [stderr]   ComponentJSON { id: "Reshape", name: "reshape", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Vector of data to stack into a matrix. A Indexmap of matrices will be emitted if multiple rows are provided.") }}, options: {"symmetric": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("false"), default_python: Some("False"), description: Some("Set if data are elements from the upper triangle of a symmetric matrix.") }, "layout": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"row\")"), default_python: Some("'row'"), description: Some("Consecutive elements of either the `row` or `column` reside next to each other. Note that multi-row inputs are reshaped to partitional outputs, having one matrix per partition.") }, "shape": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated uint32"), type_rust: Some("Vec<u32>"), default_rust: None, default_python: None, description: Some("The shape of the output matrix. Dimensionality may not be greater than 2.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Reshape of data.") }, description: Some("Reshapes a row vector into a matrix."), proto_id: 49 }
[INFO] [stderr]   ComponentJSON { id: "Resize", name: "resize", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("The data to be resized. Atomic type of data must match atomic type of categories. If categories not populated, data are treated as numeric and any necessary imputation is done according to a continuous distribution.") }, "number_rows": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("An estimate of the number of rows in the data. This could be the guess of the user, or the result of a DP release. Cannot be set with minimum_rows.") }, "number_columns": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("An estimate of the number of columns in the data. This must be the guess of the user, if not previously known (optional). A non-empty value must be positive. A non-empty value is incompatiable with an attempt to resize number of columns and results in an error.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("A lower bound on data elements for each column. This value must be less than upper.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("An upper bound on data elements for each column. This value must be greater than lower.") }, "categories": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The set of categories you want to be represented for each column of the data, if the data is categorical. Atomic type of data must match atomic type of categories.") }, "weights": ArgumentJSON { nature: None, type_value: Some("Jagged"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Optional. The weight of each category when imputing. Uniform weights are used if not specified.") }, "distribution": ArgumentJSON { nature: None, type_value: Some("String"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The distribution to be used when imputing records.") }, "shift": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The expectation of the Gaussian distribution used for imputation (used only if `distribution = Gaussian`).") }, "scale": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The standard deviation of the Gaussian distribution used for imputation (used only if `distribution = Gaussian`).") }, "sample_proportion": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("The proportion of underlying data that may be used to construct the new data. May be > 1.") }, "minimum_rows": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Only add synthetic data if the actual row count is less than this number. No sampling is performed. Cannot be set with `number_rows`") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("A resized version of data consistent with the provided `n`") }, description: Some("Resizes the data in question to be consistent with a provided sample size, `n`.\n\nThe library does not, in general, assume that the sample size of the data being analyzed is known. This introduces a number of problems around how to calculate statistics that are a function of the sample size.\n\nTo address this problem, the library asks the user to provide `n`, an estimate of the true sample size based on their own beliefs about the data or a previous differentially private count of the number of rows in the data. This component then either subsamples or appends to the data in order to make it consistent with the provided `n`.\n\nNote that lower/upper/categorical arguments must be provided, or lower/upper/categorical properties must be known on data.\n\nNote that if using categories constraint, data are treated as categorical regardless of atomic type."), proto_id: 50 }
[INFO] [stderr]   ComponentJSON { id: "RowMax", name: "row_max", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Member data type must match that of right.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Member data type must match that of left.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Returns the maximum of the left and right arguments, per row. Note that left and right arguments must share the same data types."), proto_id: 51 }
[INFO] [stderr]   ComponentJSON { id: "RowMin", name: "row_min", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Member data type must match that of right.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Member data type must match that of left.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Returns the minimum of the left and right arguments, per row. Note that left and right arguments must share the same data types."), proto_id: 52 }
[INFO] [stderr]   ComponentJSON { id: "SimpleGeometricMechanism", name: "simple_geometric_mechanism", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Result to be released privately via the Geometric mechanism. Member data type must be integer.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: Some("Lower bound of the statistic to be privatized. Member data type must be integer.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: Some("None"), description: Some("Upper bound of the statistic to be privatized. Member data type must be integer.") }, "sensitivity": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled.") }}, options: {"privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release. Values of zero or less, and values of greater than one, will result in warnings.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Original data perturbed with Geometric noise.") }, description: Some("Privatizes a result by returning it perturbed with Geometric noise."), proto_id: 53 }
[INFO] [stderr]   ComponentJSON { id: "SnappingMechanism", name: "snapping_mechanism", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Result to be released privately via the Snapping mechanism. Array members must be of type float or of type integer.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated minimum possible value of the data. Only useful for the snapping mechanism. This argument is required.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. This argument is required.") }, "binding_probability": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Upper bound on probability that final clamp binds. Must be within [0, 1).") }, "sensitivity": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: Some("None"), default_python: Some("None"), description: Some("Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled.") }}, options: {"privacy_usage": ArgumentJSON { nature: None, type_value: None, type_proto: Some("repeated PrivacyUsage"), type_rust: Some("Vec<proto::PrivacyUsage>"), default_rust: None, default_python: Some("None"), description: Some("Object describing the type and amount of privacy to be used for the mechanism release.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Original data perturbed via the Snapping mechanism.") }, description: Some("Privatizes a result by returning it perturbed via the Snapping mechanism. This mechanism is generally intended for non-integer numerical data. Note that snapping may not operate on integers when floating-point protections are enabled. For this situation, use the geometric mechanism instead."), proto_id: 64 }
[INFO] [stderr]   ComponentJSON { id: "Subtract", name: "subtract", arguments: {"left": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Value from which to subtract. Must be of type float or integer.") }, "right": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Value which to subtract. Must be of type float or integer.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Mathematical subtraction. Value types of arguments must match."), proto_id: 55 }
[INFO] [stderr]   ComponentJSON { id: "Sum", name: "sum", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data for which you want the sum of each column.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Sum of each column of the data.") }, description: Some("Calculates the sum of each column of the data. Data must be of type float or integer."), proto_id: 56 }
[INFO] [stderr]   ComponentJSON { id: "TheilSen", name: "theil_sen", arguments: {"data_x": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("value(s) from the first coordinate axis") }, "data_y": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("value(s) from the second coordinate axis") }}, options: {"implementation": ArgumentJSON { nature: None, type_value: None, type_proto: Some("string"), type_rust: Some("String"), default_rust: Some("String::from(\"theil-sen-k-match\")"), default_python: Some("\"theil-sen-k-match\""), description: Some("Theil-Sen implementation to use. One of [`theil-sen`, `theil-sen-k-match`]") }, "k": ArgumentJSON { nature: None, type_value: None, type_proto: Some("uint32"), type_rust: Some("u32"), default_rust: Some("0"), default_python: Some("0"), description: Some("Number of trials to run for Theil-Sen K Match.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("All slope and intercept estimates for point pairs") }, description: Some("Returns slope and intercept estimates for point pairs"), proto_id: 65 }
[INFO] [stderr]   ComponentJSON { id: "ToBool", name: "to_bool", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be cast to Boolean type.") }, "true_label": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Positive class (class to be mapped to `true`) for each column.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }, description: Some("Cast data to a bool atomic type."), proto_id: 57 }
[INFO] [stderr]   ComponentJSON { id: "ToDataframe", name: "to_dataframe", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("ndarray (structured or homogeneous), Iterable, dict, or DataFrame") }, "names": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Column labels to use for resulting frame. Will default to RangeIndex (0, 1, 2, …, n) if no column labels are provided.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Dataframe"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Dataframe in target language, for example <a href=\"https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html\">pandas.DataFrame</a>.") }, description: Some("Name columns of an array to produce a Dataframe with the specified names. Typically used when partitioning a dataframe with preprocessed columns."), proto_id: 48 }
[INFO] [stderr]   ComponentJSON { id: "ToFloat", name: "to_float", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be cast to float.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Array containing the converted float value(s).") }, description: Some("Cast data to a float atomic type."), proto_id: 58 }
[INFO] [stderr]   ComponentJSON { id: "ToInt", name: "to_int", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be cast to integer type.") }, "lower": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Minimum allowable imputation value. Integers cannot represent null, so values that cannot be parsed are imputed.") }, "upper": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Maximum allowable imputation value.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Array containing the converted integer value(s).") }, description: Some("Cast data to a int atomic type."), proto_id: 59 }
[INFO] [stderr]   ComponentJSON { id: "ToString", name: "to_string", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Data to be cast to string type.") }}, options: {}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("The return is the result of the to_string on the arguments.") }, description: Some("Cast data to a string atomic type."), proto_id: 60 }
[INFO] [stderr]   ComponentJSON { id: "Union", name: "union", arguments: {}, options: {"flatten": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: None, default_python: Some("True"), description: Some("When set, the output is an array. When unset, the output is an indexmap of arrays.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Array (or indexmap of arrays) containing item(s) representing the concatenation of all partitions") }, description: Some("Union the arrays in the arguments into one array."), proto_id: 62 }
[INFO] [stderr]   ComponentJSON { id: "Variance", name: "variance", arguments: {"data": ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: None }}, options: {"finite_sample_correction": ArgumentJSON { nature: None, type_value: None, type_proto: Some("bool"), type_rust: Some("bool"), default_rust: Some("true"), default_python: Some("True"), description: Some("Whether or not to use the finite sample correction (Bessel's correction) to correct the bias in the estimation of the population variance.") }}, arg_return: ArgumentJSON { nature: None, type_value: Some("Array"), type_proto: None, type_rust: None, default_rust: None, default_python: None, description: Some("Sample variance for each column of the data.") }, description: Some("Calculates the sample variance for each column of the data."), proto_id: 61 }
[INFO] [stderr] 
[INFO] [stderr]   --- stderr
[INFO] [stderr]   thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }', build/protobuf.rs:98:50
[INFO] [stderr]   note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[INFO] running `Command { std: "docker" "inspect" "68e5936bffed50ed019317c4c0bb3c31e04abea8e0e1f7c3179d1e8c503a9bfd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68e5936bffed50ed019317c4c0bb3c31e04abea8e0e1f7c3179d1e8c503a9bfd", kill_on_drop: false }`
[INFO] [stdout] 68e5936bffed50ed019317c4c0bb3c31e04abea8e0e1f7c3179d1e8c503a9bfd