Beispiel #1
0
    def evaluate(self, data_collection):
        """Determine the value of the target parameter and, according to that
        value, choose which meter to run.

        Returns
        -------
        out : dict
            Contains the results of each meter run.
        """
        output_data_collection = DataCollection()
        for i in data_collection.get_data(**self.iterable).value:
            variable_name = self.variable["name"]
            variable_value = i.get("value")
            variable_tags = self.variable.get("tags", [])
            data_container = DataContainer(name=variable_name,
                                           value=variable_value,
                                           tags=variable_tags)

            input_data_collection = data_collection.copy()
            input_data_collection.add_data(data_container)

            outputs = self.meter.evaluate(input_data_collection)

            tags = i.get("tags", [])
            outputs.add_tags(tags)
            output_data_collection.add_data_collection(outputs)
        return output_data_collection
Beispiel #2
0
    def evaluate(self, data_collection):
        """Determine the value of the target parameter and, according to that
        value, choose which meter to run.

        Returns
        -------
        out : dict
            Contains the results of each meter run.
        """
        output_data_collection = DataCollection()
        for i in data_collection.get_data(**self.iterable).value:
            variable_name = self.variable["name"]
            variable_value = i.get("value")
            variable_tags = self.variable.get("tags",[])
            data_container = DataContainer(
                    name=variable_name,
                    value=variable_value,
                    tags=variable_tags)

            input_data_collection = data_collection.copy()
            input_data_collection.add_data(data_container)

            outputs = self.meter.evaluate(input_data_collection)

            tags = i.get("tags", [])
            outputs.add_tags(tags)
            output_data_collection.add_data_collection(outputs)
        return output_data_collection
def test_data_collection_json():
    dc1 = DataCollection(item1="item1_value", item2="item2_value", tags=["tag1"])
    dc1.add_data_collection(DataCollection(item1="item1_value", item2="item2_value", tags=["tag2"]))
    json_data = dc1.json()
    json.dumps(json_data)
    assert len(json_data["item1"]) == 2
    assert len(json_data["item2"]) == 2
    assert json_data["item1"][0]["value"] == "item1_value"
    assert json_data["item1"][0]["tags"] in [["tag1"], ["tag2"]]
Beispiel #4
0
    def evaluate(self, data_collection):
        """Overrides normal execution to evaluate meters in sequence,
        collecting outputs.

        Returns
        -------
        out : dict
            Collected outputs from all meters in the sequence.
        """
        input_data_collection = data_collection.copy()
        output_data_collection = DataCollection()
        for meter in self.sequence:
            meter_result = meter.evaluate(input_data_collection)
            input_data_collection.add_data_collection(meter_result)
            output_data_collection.add_data_collection(meter_result)
        return output_data_collection
Beispiel #5
0
    def evaluate(self, data_collection):
        """Overrides normal execution to evaluate meters in sequence,
        collecting outputs.

        Returns
        -------
        out : dict
            Collected outputs from all meters in the sequence.
        """
        input_data_collection = data_collection.copy()
        output_data_collection = DataCollection()
        for meter in self.sequence:
            meter_result = meter.evaluate(input_data_collection)
            input_data_collection.add_data_collection(meter_result)
            output_data_collection.add_data_collection(meter_result)
        return output_data_collection
Beispiel #6
0
def test_fuel_type_tag_filter():
    meter_yaml = """
        !obj:eemeter.meter.FuelTypeTagFilter {
            fuel_type_search_name: active_fuel_type,
            input_mapping: {
                active_fuel_type: {},
            },
            meter: !obj:eemeter.meter.Sequence {
                sequence: [
                    !obj:eemeter.meter.DummyMeter {
                        input_mapping: {
                            value: { name: active_fuel_type }
                        },
                        output_mapping: { result: { name: result1 } },
                    },
                    !obj:eemeter.meter.DummyMeter {
                        input_mapping: {
                            value: {}
                        },
                        output_mapping: { result: { name: result2 } },
                    }
                ]
            }
        }
    """

    meter = load(meter_yaml)
    data_collection = DataCollection(active_fuel_type="electricity")
    data_collection_include = DataCollection(value="value_include")
    data_collection_exclude = DataCollection(value="value_exclude")
    data_collection.add_data_collection(data_collection_include, tagspace=["electricity"])
    data_collection.add_data_collection(data_collection_exclude, tagspace=["natural_gas"])

    output_data_collection = meter.evaluate(data_collection)
    assert output_data_collection.get_data("result1").value == "electricity"
    assert output_data_collection.get_data("result2").value == "value_include"