Esempio n. 1
0
    def to_json_dict(self):
        """
        Return a JSON-serializable dictionary representation of this object.

        :return: A JSON-serializable dictionary
        """
        config = OrderedDict({
            'name':
            self._name,
            'meta_data': {
                'temporal_coverage':
                TimeRangeLike.format(self._temporal_coverage)
                if self._temporal_coverage else None,
                'spatial_coverage':
                PolygonLike.format(self._spatial_coverage)
                if self._spatial_coverage else None,
                'variables':
                VarNamesLike.format(self._variables)
                if self._variables else None,
                'reference_type':
                self._reference_type,
                'reference_name':
                self._reference_name
            },
            'files':
            [[item[0], item[1][0], item[1][1]] if item[1] else [item[0]]
             for item in self._files.items()]
        })
        return config
Esempio n. 2
0
    def generate_title(cls, title: str,
                       time_range: Optional[TimeRange] = None,
                       region: Optional[shapely.geometry.Polygon] = None,
                       var_names: Optional[VarNames] = None) -> str:

        if time_range:
            title += " [TimeRange:{}]".format(TimeRangeLike.format(time_range))
        if region:
            title += " [Region:{}]".format(PolygonLike.format(region))
        if var_names:
            title += " [Variables:{}]".format(VarNamesLike.format(var_names))

        return title
Esempio n. 3
0
    def generate_uuid(cls, ref_id: str,
                      time_range: Optional[TimeRange] = None,
                      region: Optional[shapely.geometry.Polygon] = None,
                      var_names: Optional[VarNames] = None) -> str:

        if time_range:
            ref_id += TimeRangeLike.format(time_range)
        if region:
            ref_id += PolygonLike.format(region)
        if var_names:
            ref_id += VarNamesLike.format(var_names)

        return str(uuid.uuid3(_NAMESPACE, ref_id))
Esempio n. 4
0
    def generate_title(cls,
                       title: str,
                       time_range: Optional[TimeRange] = None,
                       region: Optional[shapely.geometry.Polygon] = None,
                       var_names: Optional[VarNames] = None) -> str:

        if time_range:
            title += " [TimeRange:{}]".format(TimeRangeLike.format(time_range))
        if region:
            title += " [Region:{}]".format(PolygonLike.format(region))
        if var_names:
            title += " [Variables:{}]".format(VarNamesLike.format(var_names))

        return title
Esempio n. 5
0
    def generate_uuid(cls,
                      ref_id: str,
                      time_range: Optional[TimeRange] = None,
                      region: Optional[shapely.geometry.Polygon] = None,
                      var_names: Optional[VarNames] = None) -> str:

        if time_range:
            ref_id += TimeRangeLike.format(time_range)
        if region:
            ref_id += PolygonLike.format(region)
        if var_names:
            ref_id += VarNamesLike.format(var_names)

        return str(uuid.uuid3(_NAMESPACE, ref_id))
Esempio n. 6
0
 def test_format(self):
     self.assertEqual(VarNamesLike.format(['aa', 'bb', 'cc']), "aa, bb, cc")
     self.assertEqual(VarNamesLike.format(['aa']), "aa")
     self.assertEqual(VarNamesLike.format([]), "")
     self.assertEqual(VarNamesLike.format(None), "")
Esempio n. 7
0
 def test_format(self):
     actual = VarNamesLike.format(HTML('abc'))
     self.assertIsInstance(actual, str)
     self.assertEqual(actual, 'abc')
Esempio n. 8
0
 def test_format(self):
     self.assertEqual(VarNamesLike.format(['aa', 'bb', 'cc']),
                      "['aa', 'bb', 'cc']")
Esempio n. 9
0
 def test_format(self):
     self.assertEqual(VarNamesLike.format(['aa', 'bb', 'cc']), "aa, bb, cc")
     self.assertEqual(VarNamesLike.format(['aa']), "aa")
     self.assertEqual(VarNamesLike.format([]), "")
     self.assertEqual(VarNamesLike.format(None), "")
Esempio n. 10
0
 def test_format(self):
     actual = VarNamesLike.format(HTML('abc'))
     self.assertIsInstance(actual, str)
     self.assertEqual(actual, 'abc')