From d0e2ecfa20d6193389bbc36844ec540f431087a3 Mon Sep 17 00:00:00 2001
From: David Sullivan <davesullivan41@gmail.com>
Date: Mon, 25 Nov 2019 09:03:21 -0600
Subject: [PATCH 1/3] Add files for
 d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing

---
 .../pipeline_runs/uu5_heartstatlog.yml.gz     | Bin 0 -> 6981 bytes
 .../1b6f69a5-022a-4ca0-b11d-93dc388329f4.json |   1 +
 .../1.0.0/primitive.json                      | 208 ++++++++++++++++++
 3 files changed, 209 insertions(+)
 create mode 100644 v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz
 create mode 100644 v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json
 create mode 100644 v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json

diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz
new file mode 100644
index 0000000000000000000000000000000000000000..40b83db319de229a143bfc45c8248b913c45b2bc
GIT binary patch
literal 6981
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
G5dQ<;B&FW~

literal 0
HcmV?d00001

diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json
new file mode 100644
index 0000000000..41a81c27df
--- /dev/null
+++ b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json
@@ -0,0 +1 @@
+{"id": "1b6f69a5-022a-4ca0-b11d-93dc388329f4", "schema": "https://metadata.datadrivendiscovery.org/schemas/v0/pipeline.json", "created": "2019-11-25T14:43:30.659046Z", "inputs": [{"name": "inputs"}], "outputs": [{"data": "steps.8.produce", "name": "output predictions"}], "steps": [{"type": "PRIMITIVE", "primitive": {"id": "f31f8c1f-d1c5-43e5-a4b2-2ae4a761ef2e", "version": "0.2.0", "python_path": "d3m.primitives.data_transformation.denormalize.Common", "name": "Denormalize datasets", "digest": "fa376cea4c03e06d896d6cce68f0a18661bbbb9ebe30653ea739785eedc02198"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "inputs.0"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "4b42ce1e-9b98-4a25-b68e-fad13311eb65", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.dataset_to_dataframe.Common", "name": "Extract a DataFrame from a Dataset", "digest": "bddea02d001c6633722c14643ec2a065fb4a977354ddbdf74282d076da77e530"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.0.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"dataframe_resource": {"type": "VALUE", "data": "learningData"}}}, {"type": "PRIMITIVE", "primitive": {"id": "3b09ba74-cc90-4f22-9e0a-0cf4f29a7e28", "version": "0.1.0", "python_path": "d3m.primitives.data_transformation.remove_columns.Common", "name": "Removes columns", "digest": "48221645501106d194c96172f28d209cfd95ecc7cbb1fc520d26bd5e0eacbeee"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"columns": {"type": "VALUE", "data": [8, 9, 10, 11, 12, 13, 14]}}}, {"type": "PRIMITIVE", "primitive": {"id": "fc6bf33a-f3e0-3496-aa47-9a40289661bc", "version": "3.0.2", "python_path": "d3m.primitives.data_cleaning.data_cleaning.Datacleaning", "name": "Data cleaning", "digest": "86f391bddc57bcab2d5af1728f442e7469298425a6678dc004312ed4a470f4d8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.2.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d510cb7a-1782-4f51-b44c-58f0236e47c7", "version": "0.5.0", "python_path": "d3m.primitives.data_transformation.column_parser.Common", "name": "Parses strings into their types", "digest": "c162d57bc73b6f30a0d600af31136b5028fe0efcd852efc15b9ad2826a2f391f"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.3.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d016df89-de62-3c53-87ed-c06bb6a23cde", "version": "2019.6.7", "python_path": "d3m.primitives.data_cleaning.imputer.SKlearn", "name": "sklearn.impute.SimpleImputer", "digest": "adc79e644eec35eb9d616be755a5de83b27f66e42b04f6508a9ceb82d99cc739"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.4.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"return_result": {"type": "VALUE", "data": "replace"}, "use_semantic_types": {"type": "VALUE", "data": true}}}, {"type": "PRIMITIVE", "primitive": {"id": "20736e8c-4f8c-484d-b128-33aa6fb20549", "version": "1.0.0", "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing", "name": "Pre-processing Fairness Techniques", "digest": "2b99d1c79d46d01edc306175344ede2770190f5f70cfc8d52c7732c6e46bcac8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.5.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"algorithm": {"type": "VALUE", "data": "Learning_Fair_Representations"}, "protected_attribute_cols": {"type": "VALUE", "data": [3]}, "favorable_label": {"type": "VALUE", "data": 0.0}}}, {"type": "PRIMITIVE", "primitive": {"id": "37c2b19d-bdab-4a30-ba08-6be49edcc6af", "version": "0.4.0", "python_path": "d3m.primitives.classification.random_forest.Common", "name": "Random forest classifier", "digest": "8f296d60a3d31b77f3a6b34cd0cdb698fb3894ef1605db56d85a561d19201f26"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.6.produce"}, "outputs": {"type": "CONTAINER", "data": "steps.6.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"use_inputs_columns": {"type": "VALUE", "data": [2, 3, 4, 5, 6, 7]}, "use_outputs_columns": {"type": "VALUE", "data": [1]}}}, {"type": "PRIMITIVE", "primitive": {"id": "8d38b340-f83f-4877-baaa-162f8e551736", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.construct_predictions.Common", "name": "Construct pipeline predictions output", "digest": "5144bad4fea16168f6667c991e137067721dd0573c68ab1bf172ead9e2c82869"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.7.produce"}, "reference": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}]}], "digest": "c0ba0874f2f36eaa8660da7606f09e2c9bb7e99f36a578f406fb3bcb22f10208"}
\ No newline at end of file
diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json
new file mode 100644
index 0000000000..47367befaf
--- /dev/null
+++ b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json
@@ -0,0 +1,208 @@
+{
+    "id": "20736e8c-4f8c-484d-b128-33aa6fb20549",
+    "version": "1.0.0",
+    "name": "Pre-processing Fairness Techniques",
+    "keywords": [
+        "fairness, bias, debias, data preprocessing, data augmentation"
+    ],
+    "source": {
+        "name": "Distil",
+        "contact": "mailto:nklabs@newknowledge.com",
+        "uris": [
+            "https://github.com/NewKnowledge/D3M-Fairness-Primitives"
+        ]
+    },
+    "installation": [
+        {
+            "type": "PIP",
+            "package_uri": "git+https://github.com/NewKnowledge/D3M-Fairness-Primitives.git@7a48c3d0b1750a5942c4ba21d89c4e55557a3625#egg=FairnessPrimitives"
+        }
+    ],
+    "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing",
+    "algorithm_types": [
+        "DATA_CONVERSION"
+    ],
+    "primitive_family": "DATA_PREPROCESSING",
+    "schema": "https://metadata.datadrivendiscovery.org/schemas/v0/primitive.json",
+    "original_python_path": "FairnessPrimitives.pre_processing.FairnessPreProcessing",
+    "primitive_code": {
+        "class_type_arguments": {
+            "Inputs": "d3m.container.pandas.DataFrame",
+            "Outputs": "d3m.container.pandas.DataFrame",
+            "Hyperparams": "FairnessPrimitives.pre_processing.Hyperparams",
+            "Params": "NoneType"
+        },
+        "interfaces_version": "2019.11.10",
+        "interfaces": [
+            "transformer.TransformerPrimitiveBase",
+            "base.PrimitiveBase"
+        ],
+        "hyperparams": {
+            "algorithm": {
+                "type": "d3m.metadata.hyperparams.Enumeration",
+                "default": "Disparate_Impact_Remover",
+                "structural_type": "str",
+                "semantic_types": [
+                    "https://metadata.datadrivendiscovery.org/types/ControlParameter"
+                ],
+                "description": "type of fairness pre-processing algorithm to use",
+                "values": [
+                    "Disparate_Impact_Remover",
+                    "Learning_Fair_Representations",
+                    "Reweighing"
+                ]
+            },
+            "protected_attribute_cols": {
+                "type": "d3m.metadata.hyperparams.List",
+                "default": [],
+                "structural_type": "typing.Sequence[int]",
+                "semantic_types": [
+                    "https://metadata.datadrivendiscovery.org/types/ControlParameter"
+                ],
+                "description": "A set of column indices to use as protected attributes.",
+                "elements": {
+                    "type": "d3m.metadata.hyperparams.Hyperparameter",
+                    "default": -1,
+                    "structural_type": "int",
+                    "semantic_types": []
+                },
+                "is_configuration": false,
+                "min_size": 0
+            },
+            "favorable_label": {
+                "type": "d3m.metadata.hyperparams.Bounded",
+                "default": 1.0,
+                "structural_type": "float",
+                "semantic_types": [
+                    "https://metadata.datadrivendiscovery.org/types/ControlParameter"
+                ],
+                "description": "label value which is considered favorable (i.e. positive) in the binary label case",
+                "lower": 0.0,
+                "upper": 1.0,
+                "lower_inclusive": true,
+                "upper_inclusive": true
+            }
+        },
+        "arguments": {
+            "hyperparams": {
+                "type": "FairnessPrimitives.pre_processing.Hyperparams",
+                "kind": "RUNTIME"
+            },
+            "random_seed": {
+                "type": "int",
+                "kind": "RUNTIME",
+                "default": 0
+            },
+            "timeout": {
+                "type": "typing.Union[NoneType, float]",
+                "kind": "RUNTIME",
+                "default": null
+            },
+            "iterations": {
+                "type": "typing.Union[NoneType, int]",
+                "kind": "RUNTIME",
+                "default": null
+            },
+            "produce_methods": {
+                "type": "typing.Sequence[str]",
+                "kind": "RUNTIME"
+            },
+            "inputs": {
+                "type": "d3m.container.pandas.DataFrame",
+                "kind": "PIPELINE"
+            },
+            "params": {
+                "type": "NoneType",
+                "kind": "RUNTIME"
+            }
+        },
+        "class_methods": {},
+        "instance_methods": {
+            "__init__": {
+                "kind": "OTHER",
+                "arguments": [
+                    "hyperparams",
+                    "random_seed"
+                ],
+                "returns": "NoneType"
+            },
+            "fit": {
+                "kind": "OTHER",
+                "arguments": [
+                    "timeout",
+                    "iterations"
+                ],
+                "returns": "d3m.primitive_interfaces.base.CallResult[NoneType]",
+                "description": "A noop.\n\nParameters\n----------\ntimeout : float\n    A maximum time this primitive should be fitting during this method call, in seconds.\niterations : int\n    How many of internal iterations should the primitive do.\n\nReturns\n-------\nCallResult[None]\n    A ``CallResult`` with ``None`` value."
+            },
+            "fit_multi_produce": {
+                "kind": "OTHER",
+                "arguments": [
+                    "produce_methods",
+                    "inputs",
+                    "timeout",
+                    "iterations"
+                ],
+                "returns": "d3m.primitive_interfaces.base.MultiCallResult",
+                "description": "A method calling ``fit`` and after that multiple produce methods at once.\n\nParameters\n----------\nproduce_methods : Sequence[str]\n    A list of names of produce methods to call.\ninputs : Inputs\n    The inputs given to all produce methods.\ntimeout : float\n    A maximum time this primitive should take to both fit the primitive and produce outputs\n    for all produce methods listed in ``produce_methods`` argument, in seconds.\niterations : int\n    How many of internal iterations should the primitive do for both fitting and producing\n    outputs of all produce methods.\n\nReturns\n-------\nMultiCallResult\n    A dict of values for each produce method wrapped inside ``MultiCallResult``."
+            },
+            "get_params": {
+                "kind": "OTHER",
+                "arguments": [],
+                "returns": "NoneType",
+                "description": "A noop.\n\nReturns\n-------\nParams\n    An instance of parameters."
+            },
+            "multi_produce": {
+                "kind": "OTHER",
+                "arguments": [
+                    "produce_methods",
+                    "inputs",
+                    "timeout",
+                    "iterations"
+                ],
+                "returns": "d3m.primitive_interfaces.base.MultiCallResult",
+                "description": "A method calling multiple produce methods at once.\n\nWhen a primitive has multiple produce methods it is common that they might compute the\nsame internal results for same inputs but return different representations of those results.\nIf caller is interested in multiple of those representations, calling multiple produce\nmethods might lead to recomputing same internal results multiple times. To address this,\nthis method allows primitive author to implement an optimized version which computes\ninternal results only once for multiple calls of produce methods, but return those different\nrepresentations.\n\nIf any additional method arguments are added to primitive's produce method(s), they have\nto be added to this method as well. This method should accept an union of all arguments\naccepted by primitive's produce method(s) and then use them accordingly when computing\nresults.\n\nThe default implementation of this method just calls all produce methods listed in\n``produce_methods`` in order and is potentially inefficient.\n\nIf primitive should have been fitted before calling this method, but it has not been,\nprimitive should raise a ``PrimitiveNotFittedError`` exception.\n\nParameters\n----------\nproduce_methods : Sequence[str]\n    A list of names of produce methods to call.\ninputs : Inputs\n    The inputs given to all produce methods.\ntimeout : float\n    A maximum time this primitive should take to produce outputs for all produce methods\n    listed in ``produce_methods`` argument, in seconds.\niterations : int\n    How many of internal iterations should the primitive do.\n\nReturns\n-------\nMultiCallResult\n    A dict of values for each produce method wrapped inside ``MultiCallResult``."
+            },
+            "produce": {
+                "kind": "PRODUCE",
+                "arguments": [
+                    "inputs",
+                    "timeout",
+                    "iterations"
+                ],
+                "returns": "d3m.primitive_interfaces.base.CallResult[d3m.container.pandas.DataFrame]",
+                "singleton": false,
+                "inputs_across_samples": [],
+                "description": "Produce pre-processed D3M Dataframe according to some distance / fairness / representation / distribution\nconstraint defined by the algorithm. This pre-processing is only applied to training data and\nnot to testing data.\n\nParameters\n----------\ninputs : D3M dataframe\n\nReturns\n-------\nOutputs : D3M dataframe after pre-processing algorithm has been applied"
+            },
+            "set_params": {
+                "kind": "OTHER",
+                "arguments": [
+                    "params"
+                ],
+                "returns": "NoneType",
+                "description": "A noop.\n\nParameters\n----------\nparams : Params\n    An instance of parameters."
+            },
+            "set_training_data": {
+                "kind": "OTHER",
+                "arguments": [],
+                "returns": "NoneType",
+                "description": "A noop.\n\nParameters\n----------"
+            }
+        },
+        "class_attributes": {
+            "logger": "logging.Logger",
+            "metadata": "d3m.metadata.base.PrimitiveMetadata"
+        },
+        "instance_attributes": {
+            "hyperparams": "d3m.metadata.hyperparams.Hyperparams",
+            "random_seed": "int",
+            "docker_containers": "typing.Dict[str, d3m.primitive_interfaces.base.DockerContainer]",
+            "volumes": "typing.Dict[str, str]",
+            "temporary_directory": "typing.Union[NoneType, str]"
+        }
+    },
+    "structural_type": "FairnessPrimitives.pre_processing.FairnessPreProcessing",
+    "description": "Primitive that applies one of three pre-processing algorithm to training data before fitting a learning algorithm. Algorithm\noptions are 'Disparate_Impact_Remover', 'Learning_Fair_Representations', and 'Reweighing'.\n\nAttributes\n----------\nmetadata : PrimitiveMetadata\n    Primitive's metadata. Available as a class attribute.\nlogger : Logger\n    Primitive's logger. Available as a class attribute.\nhyperparams : Hyperparams\n    Hyperparams passed to the constructor.\nrandom_seed : int\n    Random seed passed to the constructor.\ndocker_containers : Dict[str, DockerContainer]\n    A dict mapping Docker image keys from primitive's metadata to (named) tuples containing\n    container's address under which the container is accessible by the primitive, and a\n    dict mapping exposed ports to ports on that address.\nvolumes : Dict[str, str]\n    A dict mapping volume keys from primitive's metadata to file and directory paths\n    where downloaded and extracted files are available to the primitive.\ntemporary_directory : str\n    An absolute path to a temporary directory a primitive can use to store any files\n    for the duration of the current pipeline run phase. Directory is automatically\n    cleaned up after the current pipeline run phase finishes.",
+    "digest": "2b99d1c79d46d01edc306175344ede2770190f5f70cfc8d52c7732c6e46bcac8"
+}
-- 
GitLab


From 8961bc16c3d7a79ae24740f1b28d35aadb996809 Mon Sep 17 00:00:00 2001
From: David Sullivan <davesullivan41@gmail.com>
Date: Mon, 25 Nov 2019 10:19:25 -0600
Subject: [PATCH 2/3] Update package versions to match d3m

---
 .../pipeline_runs/uu5_heartstatlog.yml.gz     | Bin 6981 -> 7020 bytes
 .../1.0.0/pipelines/uu5_heartstatlog.json     |   1 +
 2 files changed, 1 insertion(+)
 create mode 100644 v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json

diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz
index 40b83db319de229a143bfc45c8248b913c45b2bc..f3b9b6cc757a3729fab82d63cab1d82a234756db 100644
GIT binary patch
delta 6878
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

delta 6839
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
ac?@C+fOT?wFH!O!shc|-{L2Lv=Dz?KJX~u4

diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json
new file mode 100644
index 0000000000..824413e1d3
--- /dev/null
+++ b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json
@@ -0,0 +1 @@
+{"id": "8a5adbcd-6dca-4e61-9397-20538d2481ec", "schema": "https://metadata.datadrivendiscovery.org/schemas/v0/pipeline.json", "created": "2019-11-25T15:26:20.881157Z", "inputs": [{"name": "inputs"}], "outputs": [{"data": "steps.8.produce", "name": "output predictions"}], "steps": [{"type": "PRIMITIVE", "primitive": {"id": "f31f8c1f-d1c5-43e5-a4b2-2ae4a761ef2e", "version": "0.2.0", "python_path": "d3m.primitives.data_transformation.denormalize.Common", "name": "Denormalize datasets", "digest": "fa376cea4c03e06d896d6cce68f0a18661bbbb9ebe30653ea739785eedc02198"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "inputs.0"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "4b42ce1e-9b98-4a25-b68e-fad13311eb65", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.dataset_to_dataframe.Common", "name": "Extract a DataFrame from a Dataset", "digest": "bddea02d001c6633722c14643ec2a065fb4a977354ddbdf74282d076da77e530"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.0.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"dataframe_resource": {"type": "VALUE", "data": "learningData"}}}, {"type": "PRIMITIVE", "primitive": {"id": "3b09ba74-cc90-4f22-9e0a-0cf4f29a7e28", "version": "0.1.0", "python_path": "d3m.primitives.data_transformation.remove_columns.Common", "name": "Removes columns", "digest": "48221645501106d194c96172f28d209cfd95ecc7cbb1fc520d26bd5e0eacbeee"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"columns": {"type": "VALUE", "data": [8, 9, 10, 11, 12, 13, 14]}}}, {"type": "PRIMITIVE", "primitive": {"id": "fc6bf33a-f3e0-3496-aa47-9a40289661bc", "version": "3.0.2", "python_path": "d3m.primitives.data_cleaning.data_cleaning.Datacleaning", "name": "Data cleaning", "digest": "86f391bddc57bcab2d5af1728f442e7469298425a6678dc004312ed4a470f4d8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.2.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d510cb7a-1782-4f51-b44c-58f0236e47c7", "version": "0.5.0", "python_path": "d3m.primitives.data_transformation.column_parser.Common", "name": "Parses strings into their types", "digest": "c162d57bc73b6f30a0d600af31136b5028fe0efcd852efc15b9ad2826a2f391f"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.3.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d016df89-de62-3c53-87ed-c06bb6a23cde", "version": "2019.6.7", "python_path": "d3m.primitives.data_cleaning.imputer.SKlearn", "name": "sklearn.impute.SimpleImputer", "digest": "adc79e644eec35eb9d616be755a5de83b27f66e42b04f6508a9ceb82d99cc739"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.4.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"return_result": {"type": "VALUE", "data": "replace"}, "use_semantic_types": {"type": "VALUE", "data": true}}}, {"type": "PRIMITIVE", "primitive": {"id": "20736e8c-4f8c-484d-b128-33aa6fb20549", "version": "1.0.0", "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing", "name": "Pre-processing Fairness Techniques", "digest": "2b99d1c79d46d01edc306175344ede2770190f5f70cfc8d52c7732c6e46bcac8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.5.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"algorithm": {"type": "VALUE", "data": "Learning_Fair_Representations"}, "protected_attribute_cols": {"type": "VALUE", "data": [3]}, "favorable_label": {"type": "VALUE", "data": 0.0}}}, {"type": "PRIMITIVE", "primitive": {"id": "37c2b19d-bdab-4a30-ba08-6be49edcc6af", "version": "0.4.0", "python_path": "d3m.primitives.classification.random_forest.Common", "name": "Random forest classifier", "digest": "8f296d60a3d31b77f3a6b34cd0cdb698fb3894ef1605db56d85a561d19201f26"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.6.produce"}, "outputs": {"type": "CONTAINER", "data": "steps.6.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"use_inputs_columns": {"type": "VALUE", "data": [2, 3, 4, 5, 6, 7]}, "use_outputs_columns": {"type": "VALUE", "data": [1]}}}, {"type": "PRIMITIVE", "primitive": {"id": "8d38b340-f83f-4877-baaa-162f8e551736", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.construct_predictions.Common", "name": "Construct pipeline predictions output", "digest": "5144bad4fea16168f6667c991e137067721dd0573c68ab1bf172ead9e2c82869"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.7.produce"}, "reference": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}]}], "digest": "87dde190cb4dac45a252fb521f161f2bda3370b66c07bffba9cb9026f9f144a9"}
\ No newline at end of file
-- 
GitLab


From 6e71eb4c2ef15694caa50e670cc295524cef2a92 Mon Sep 17 00:00:00 2001
From: David Sullivan <davesullivan41@gmail.com>
Date: Mon, 25 Nov 2019 11:12:18 -0600
Subject: [PATCH 3/3] Update primitive submission to point to appropriate
 commit for git repo. Should have proper libraries now

---
 .../pipeline_runs/uu5_heartstatlog.yml.gz     | Bin 7020 -> 7011 bytes
 ...6ad556c1-94bd-4f6f-ab09-c2e8af0bf080.json} |   2 +-
 .../1.0.0/pipelines/uu5_heartstatlog.json     |   1 -
 .../1.0.0/primitive.json                      |   4 ++--
 4 files changed, 3 insertions(+), 4 deletions(-)
 rename v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/{1b6f69a5-022a-4ca0-b11d-93dc388329f4.json => 6ad556c1-94bd-4f6f-ab09-c2e8af0bf080.json} (93%)
 delete mode 100644 v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json

diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipeline_runs/uu5_heartstatlog.yml.gz
index f3b9b6cc757a3729fab82d63cab1d82a234756db..dd1ba754c7194b4d9161b4e38ff2bbe9139c0a6f 100644
GIT binary patch
literal 7011
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
NC_oJCjkuws{SO}b(g6Sf

literal 7020
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
b4~=~4S*ebhI^^u@?W=g2(ZrA|BEtUwJO!i3

diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/6ad556c1-94bd-4f6f-ab09-c2e8af0bf080.json
similarity index 93%
rename from v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json
rename to v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/6ad556c1-94bd-4f6f-ab09-c2e8af0bf080.json
index 41a81c27df..19cee7f8ec 100644
--- a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/1b6f69a5-022a-4ca0-b11d-93dc388329f4.json
+++ b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/6ad556c1-94bd-4f6f-ab09-c2e8af0bf080.json
@@ -1 +1 @@
-{"id": "1b6f69a5-022a-4ca0-b11d-93dc388329f4", "schema": "https://metadata.datadrivendiscovery.org/schemas/v0/pipeline.json", "created": "2019-11-25T14:43:30.659046Z", "inputs": [{"name": "inputs"}], "outputs": [{"data": "steps.8.produce", "name": "output predictions"}], "steps": [{"type": "PRIMITIVE", "primitive": {"id": "f31f8c1f-d1c5-43e5-a4b2-2ae4a761ef2e", "version": "0.2.0", "python_path": "d3m.primitives.data_transformation.denormalize.Common", "name": "Denormalize datasets", "digest": "fa376cea4c03e06d896d6cce68f0a18661bbbb9ebe30653ea739785eedc02198"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "inputs.0"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "4b42ce1e-9b98-4a25-b68e-fad13311eb65", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.dataset_to_dataframe.Common", "name": "Extract a DataFrame from a Dataset", "digest": "bddea02d001c6633722c14643ec2a065fb4a977354ddbdf74282d076da77e530"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.0.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"dataframe_resource": {"type": "VALUE", "data": "learningData"}}}, {"type": "PRIMITIVE", "primitive": {"id": "3b09ba74-cc90-4f22-9e0a-0cf4f29a7e28", "version": "0.1.0", "python_path": "d3m.primitives.data_transformation.remove_columns.Common", "name": "Removes columns", "digest": "48221645501106d194c96172f28d209cfd95ecc7cbb1fc520d26bd5e0eacbeee"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"columns": {"type": "VALUE", "data": [8, 9, 10, 11, 12, 13, 14]}}}, {"type": "PRIMITIVE", "primitive": {"id": "fc6bf33a-f3e0-3496-aa47-9a40289661bc", "version": "3.0.2", "python_path": "d3m.primitives.data_cleaning.data_cleaning.Datacleaning", "name": "Data cleaning", "digest": "86f391bddc57bcab2d5af1728f442e7469298425a6678dc004312ed4a470f4d8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.2.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d510cb7a-1782-4f51-b44c-58f0236e47c7", "version": "0.5.0", "python_path": "d3m.primitives.data_transformation.column_parser.Common", "name": "Parses strings into their types", "digest": "c162d57bc73b6f30a0d600af31136b5028fe0efcd852efc15b9ad2826a2f391f"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.3.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d016df89-de62-3c53-87ed-c06bb6a23cde", "version": "2019.6.7", "python_path": "d3m.primitives.data_cleaning.imputer.SKlearn", "name": "sklearn.impute.SimpleImputer", "digest": "adc79e644eec35eb9d616be755a5de83b27f66e42b04f6508a9ceb82d99cc739"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.4.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"return_result": {"type": "VALUE", "data": "replace"}, "use_semantic_types": {"type": "VALUE", "data": true}}}, {"type": "PRIMITIVE", "primitive": {"id": "20736e8c-4f8c-484d-b128-33aa6fb20549", "version": "1.0.0", "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing", "name": "Pre-processing Fairness Techniques", "digest": "2b99d1c79d46d01edc306175344ede2770190f5f70cfc8d52c7732c6e46bcac8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.5.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"algorithm": {"type": "VALUE", "data": "Learning_Fair_Representations"}, "protected_attribute_cols": {"type": "VALUE", "data": [3]}, "favorable_label": {"type": "VALUE", "data": 0.0}}}, {"type": "PRIMITIVE", "primitive": {"id": "37c2b19d-bdab-4a30-ba08-6be49edcc6af", "version": "0.4.0", "python_path": "d3m.primitives.classification.random_forest.Common", "name": "Random forest classifier", "digest": "8f296d60a3d31b77f3a6b34cd0cdb698fb3894ef1605db56d85a561d19201f26"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.6.produce"}, "outputs": {"type": "CONTAINER", "data": "steps.6.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"use_inputs_columns": {"type": "VALUE", "data": [2, 3, 4, 5, 6, 7]}, "use_outputs_columns": {"type": "VALUE", "data": [1]}}}, {"type": "PRIMITIVE", "primitive": {"id": "8d38b340-f83f-4877-baaa-162f8e551736", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.construct_predictions.Common", "name": "Construct pipeline predictions output", "digest": "5144bad4fea16168f6667c991e137067721dd0573c68ab1bf172ead9e2c82869"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.7.produce"}, "reference": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}]}], "digest": "c0ba0874f2f36eaa8660da7606f09e2c9bb7e99f36a578f406fb3bcb22f10208"}
\ No newline at end of file
+{"id": "6ad556c1-94bd-4f6f-ab09-c2e8af0bf080", "schema": "https://metadata.datadrivendiscovery.org/schemas/v0/pipeline.json", "created": "2019-11-25T17:09:20.264793Z", "inputs": [{"name": "inputs"}], "outputs": [{"data": "steps.8.produce", "name": "output predictions"}], "steps": [{"type": "PRIMITIVE", "primitive": {"id": "f31f8c1f-d1c5-43e5-a4b2-2ae4a761ef2e", "version": "0.2.0", "python_path": "d3m.primitives.data_transformation.denormalize.Common", "name": "Denormalize datasets", "digest": "fa376cea4c03e06d896d6cce68f0a18661bbbb9ebe30653ea739785eedc02198"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "inputs.0"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "4b42ce1e-9b98-4a25-b68e-fad13311eb65", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.dataset_to_dataframe.Common", "name": "Extract a DataFrame from a Dataset", "digest": "bddea02d001c6633722c14643ec2a065fb4a977354ddbdf74282d076da77e530"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.0.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"dataframe_resource": {"type": "VALUE", "data": "learningData"}}}, {"type": "PRIMITIVE", "primitive": {"id": "3b09ba74-cc90-4f22-9e0a-0cf4f29a7e28", "version": "0.1.0", "python_path": "d3m.primitives.data_transformation.remove_columns.Common", "name": "Removes columns", "digest": "48221645501106d194c96172f28d209cfd95ecc7cbb1fc520d26bd5e0eacbeee"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"columns": {"type": "VALUE", "data": [8, 9, 10, 11, 12, 13, 14]}}}, {"type": "PRIMITIVE", "primitive": {"id": "fc6bf33a-f3e0-3496-aa47-9a40289661bc", "version": "3.0.2", "python_path": "d3m.primitives.data_cleaning.data_cleaning.Datacleaning", "name": "Data cleaning", "digest": "86f391bddc57bcab2d5af1728f442e7469298425a6678dc004312ed4a470f4d8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.2.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d510cb7a-1782-4f51-b44c-58f0236e47c7", "version": "0.5.0", "python_path": "d3m.primitives.data_transformation.column_parser.Common", "name": "Parses strings into their types", "digest": "c162d57bc73b6f30a0d600af31136b5028fe0efcd852efc15b9ad2826a2f391f"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.3.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d016df89-de62-3c53-87ed-c06bb6a23cde", "version": "2019.6.7", "python_path": "d3m.primitives.data_cleaning.imputer.SKlearn", "name": "sklearn.impute.SimpleImputer", "digest": "adc79e644eec35eb9d616be755a5de83b27f66e42b04f6508a9ceb82d99cc739"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.4.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"return_result": {"type": "VALUE", "data": "replace"}, "use_semantic_types": {"type": "VALUE", "data": true}}}, {"type": "PRIMITIVE", "primitive": {"id": "20736e8c-4f8c-484d-b128-33aa6fb20549", "version": "1.0.0", "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing", "name": "Pre-processing Fairness Techniques", "digest": "92aa6c244fd6c2644ab19206848722ce0bb4ea431a0609b3025b972d39f3d868"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.5.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"algorithm": {"type": "VALUE", "data": "Learning_Fair_Representations"}, "protected_attribute_cols": {"type": "VALUE", "data": [3]}, "favorable_label": {"type": "VALUE", "data": 0.0}}}, {"type": "PRIMITIVE", "primitive": {"id": "37c2b19d-bdab-4a30-ba08-6be49edcc6af", "version": "0.4.0", "python_path": "d3m.primitives.classification.random_forest.Common", "name": "Random forest classifier", "digest": "8f296d60a3d31b77f3a6b34cd0cdb698fb3894ef1605db56d85a561d19201f26"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.6.produce"}, "outputs": {"type": "CONTAINER", "data": "steps.6.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"use_inputs_columns": {"type": "VALUE", "data": [2, 3, 4, 5, 6, 7]}, "use_outputs_columns": {"type": "VALUE", "data": [1]}}}, {"type": "PRIMITIVE", "primitive": {"id": "8d38b340-f83f-4877-baaa-162f8e551736", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.construct_predictions.Common", "name": "Construct pipeline predictions output", "digest": "5144bad4fea16168f6667c991e137067721dd0573c68ab1bf172ead9e2c82869"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.7.produce"}, "reference": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}]}], "digest": "2b1d38e4263b2ab58dbf067504bb57c131fab52f3557e164b3c5ff4febf2ddcc"}
\ No newline at end of file
diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json
deleted file mode 100644
index 824413e1d3..0000000000
--- a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/pipelines/uu5_heartstatlog.json
+++ /dev/null
@@ -1 +0,0 @@
-{"id": "8a5adbcd-6dca-4e61-9397-20538d2481ec", "schema": "https://metadata.datadrivendiscovery.org/schemas/v0/pipeline.json", "created": "2019-11-25T15:26:20.881157Z", "inputs": [{"name": "inputs"}], "outputs": [{"data": "steps.8.produce", "name": "output predictions"}], "steps": [{"type": "PRIMITIVE", "primitive": {"id": "f31f8c1f-d1c5-43e5-a4b2-2ae4a761ef2e", "version": "0.2.0", "python_path": "d3m.primitives.data_transformation.denormalize.Common", "name": "Denormalize datasets", "digest": "fa376cea4c03e06d896d6cce68f0a18661bbbb9ebe30653ea739785eedc02198"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "inputs.0"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "4b42ce1e-9b98-4a25-b68e-fad13311eb65", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.dataset_to_dataframe.Common", "name": "Extract a DataFrame from a Dataset", "digest": "bddea02d001c6633722c14643ec2a065fb4a977354ddbdf74282d076da77e530"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.0.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"dataframe_resource": {"type": "VALUE", "data": "learningData"}}}, {"type": "PRIMITIVE", "primitive": {"id": "3b09ba74-cc90-4f22-9e0a-0cf4f29a7e28", "version": "0.1.0", "python_path": "d3m.primitives.data_transformation.remove_columns.Common", "name": "Removes columns", "digest": "48221645501106d194c96172f28d209cfd95ecc7cbb1fc520d26bd5e0eacbeee"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"columns": {"type": "VALUE", "data": [8, 9, 10, 11, 12, 13, 14]}}}, {"type": "PRIMITIVE", "primitive": {"id": "fc6bf33a-f3e0-3496-aa47-9a40289661bc", "version": "3.0.2", "python_path": "d3m.primitives.data_cleaning.data_cleaning.Datacleaning", "name": "Data cleaning", "digest": "86f391bddc57bcab2d5af1728f442e7469298425a6678dc004312ed4a470f4d8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.2.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d510cb7a-1782-4f51-b44c-58f0236e47c7", "version": "0.5.0", "python_path": "d3m.primitives.data_transformation.column_parser.Common", "name": "Parses strings into their types", "digest": "c162d57bc73b6f30a0d600af31136b5028fe0efcd852efc15b9ad2826a2f391f"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.3.produce"}}, "outputs": [{"id": "produce"}]}, {"type": "PRIMITIVE", "primitive": {"id": "d016df89-de62-3c53-87ed-c06bb6a23cde", "version": "2019.6.7", "python_path": "d3m.primitives.data_cleaning.imputer.SKlearn", "name": "sklearn.impute.SimpleImputer", "digest": "adc79e644eec35eb9d616be755a5de83b27f66e42b04f6508a9ceb82d99cc739"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.4.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"return_result": {"type": "VALUE", "data": "replace"}, "use_semantic_types": {"type": "VALUE", "data": true}}}, {"type": "PRIMITIVE", "primitive": {"id": "20736e8c-4f8c-484d-b128-33aa6fb20549", "version": "1.0.0", "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing", "name": "Pre-processing Fairness Techniques", "digest": "2b99d1c79d46d01edc306175344ede2770190f5f70cfc8d52c7732c6e46bcac8"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.5.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"algorithm": {"type": "VALUE", "data": "Learning_Fair_Representations"}, "protected_attribute_cols": {"type": "VALUE", "data": [3]}, "favorable_label": {"type": "VALUE", "data": 0.0}}}, {"type": "PRIMITIVE", "primitive": {"id": "37c2b19d-bdab-4a30-ba08-6be49edcc6af", "version": "0.4.0", "python_path": "d3m.primitives.classification.random_forest.Common", "name": "Random forest classifier", "digest": "8f296d60a3d31b77f3a6b34cd0cdb698fb3894ef1605db56d85a561d19201f26"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.6.produce"}, "outputs": {"type": "CONTAINER", "data": "steps.6.produce"}}, "outputs": [{"id": "produce"}], "hyperparams": {"use_inputs_columns": {"type": "VALUE", "data": [2, 3, 4, 5, 6, 7]}, "use_outputs_columns": {"type": "VALUE", "data": [1]}}}, {"type": "PRIMITIVE", "primitive": {"id": "8d38b340-f83f-4877-baaa-162f8e551736", "version": "0.3.0", "python_path": "d3m.primitives.data_transformation.construct_predictions.Common", "name": "Construct pipeline predictions output", "digest": "5144bad4fea16168f6667c991e137067721dd0573c68ab1bf172ead9e2c82869"}, "arguments": {"inputs": {"type": "CONTAINER", "data": "steps.7.produce"}, "reference": {"type": "CONTAINER", "data": "steps.1.produce"}}, "outputs": [{"id": "produce"}]}], "digest": "87dde190cb4dac45a252fb521f161f2bda3370b66c07bffba9cb9026f9f144a9"}
\ No newline at end of file
diff --git a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json
index 47367befaf..65870d7fb2 100644
--- a/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json
+++ b/v2019.11.10/Distil/d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing/1.0.0/primitive.json
@@ -15,7 +15,7 @@
     "installation": [
         {
             "type": "PIP",
-            "package_uri": "git+https://github.com/NewKnowledge/D3M-Fairness-Primitives.git@7a48c3d0b1750a5942c4ba21d89c4e55557a3625#egg=FairnessPrimitives"
+            "package_uri": "git+https://github.com/NewKnowledge/D3M-Fairness-Primitives.git@56db675b3f851d608f2a4e52fedfe39cc79f0b84#egg=FairnessPrimitives"
         }
     ],
     "python_path": "d3m.primitives.data_preprocessing.data_conversion.FairnessPreProcessing",
@@ -204,5 +204,5 @@
     },
     "structural_type": "FairnessPrimitives.pre_processing.FairnessPreProcessing",
     "description": "Primitive that applies one of three pre-processing algorithm to training data before fitting a learning algorithm. Algorithm\noptions are 'Disparate_Impact_Remover', 'Learning_Fair_Representations', and 'Reweighing'.\n\nAttributes\n----------\nmetadata : PrimitiveMetadata\n    Primitive's metadata. Available as a class attribute.\nlogger : Logger\n    Primitive's logger. Available as a class attribute.\nhyperparams : Hyperparams\n    Hyperparams passed to the constructor.\nrandom_seed : int\n    Random seed passed to the constructor.\ndocker_containers : Dict[str, DockerContainer]\n    A dict mapping Docker image keys from primitive's metadata to (named) tuples containing\n    container's address under which the container is accessible by the primitive, and a\n    dict mapping exposed ports to ports on that address.\nvolumes : Dict[str, str]\n    A dict mapping volume keys from primitive's metadata to file and directory paths\n    where downloaded and extracted files are available to the primitive.\ntemporary_directory : str\n    An absolute path to a temporary directory a primitive can use to store any files\n    for the duration of the current pipeline run phase. Directory is automatically\n    cleaned up after the current pipeline run phase finishes.",
-    "digest": "2b99d1c79d46d01edc306175344ede2770190f5f70cfc8d52c7732c6e46bcac8"
+    "digest": "92aa6c244fd6c2644ab19206848722ce0bb4ea431a0609b3025b972d39f3d868"
 }
-- 
GitLab