Esempio n. 1
0
def ts_get_manifest(ts_path):
    """Reads in or makes up a manifest for the timestream at ``ts_path``, and
    returns it as a ``dict``
    """
    manifest = _ts_has_manifest(ts_path)
    if manifest:
        try:
            LOG.debug("Manifest for {} exists at {}".format(ts_path, manifest))
            with open(manifest) as ifh:
                manifest = json.load(ifh)
            if isinstance(manifest, list):
                # it comes in as a list, we want a dict
                manifest = dict_unicode_to_str(manifest[0])
            else:
                manifest = dict_unicode_to_str(manifest)
            manifest = validate_timestream_manifest(manifest)
        except (IOError, OSError, ValueError, MultipleInvalid):
            # We can't read manifest or it's invalid
            manifest = None
    if not manifest:
        LOG.debug("Manifest for {} doesn't exist (yet)".format(ts_path))
        manifest = ts_guess_manifest(ts_path)
        manifest = validate_timestream_manifest(manifest)
    LOG.debug("Manifest for {} is {!r}".format(ts_path, manifest))
    return manifest
 def test_validate_invalid(self):
     """Test validate_timestream_manifest with invalid manfests"""
     with self.assertRaises(TypeError):
         validate_timestream_manifest(None)
     with self.assertRaises(MultipleInvalid):
         validate_timestream_manifest({"A": "b", })
Esempio n. 3
0
 def _set_metadata(self, **metadata):
     """Sets class members from ``metadata`` dict, first validating it."""
     metadata = validate_timestream_manifest(metadata)
     for datum, value in metadata.items():
         setattr(self, datum, value)
 def test_validate_valid(self):
     """Test validate_timestream_manifest with valid manfests"""
     self.assertDictEqual(validate_timestream_manifest(self.str_dict),
                          self.val_dict)
     self.assertDictEqual(validate_timestream_manifest(self.val_dict),
                          self.val_dict)