def saveUri(self, uri): """Save `QuantumGraph` to the specified URI. Parameters ---------- uri : `ButlerURI` or `str` URI to where the graph should be saved. """ buffer = self._buildSaveObject() butlerUri = ButlerURI(uri) if butlerUri.getExtension() not in (".qgraph"): raise TypeError( f"Can currently only save a graph in qgraph format not {uri}") butlerUri.write( buffer ) # type: ignore # Ignore because bytearray is safe to use in place of bytes
def testUriExtensions(self): """Test extension extraction.""" files = (("file.fits.gz", ".fits.gz"), ("file.fits", ".fits"), ("file.fits.xz", ".fits.xz"), ("file.fits.tar", ".tar"), ("file", ""), ("flat_i_sim_1.4_blah.fits.gz", ".fits.gz"), ("flat_i_sim_1.4_blah.txt", ".txt"), ("flat_i_sim_1.4_blah.fits.fz", ".fits.fz"), ("flat_i_sim_1.4_blah.fits.txt", ".txt"), ) for file, expected in files: uri = ButlerURI(f"a/b/{file}") self.assertEqual(uri.getExtension(), expected)
def testUriExtensions(self): """Test extension extraction.""" files = (("file.fits.gz", ".fits.gz"), ("file.fits", ".fits"), ("file.fits.xz", ".fits.xz"), ("file.fits.tar", ".tar"), ("file", ""), ("flat_i_sim_1.4_blah.fits.gz", ".fits.gz"), ("flat_i_sim_1.4_blah.txt", ".txt"), ("flat_i_sim_1.4_blah.fits.fz", ".fits.fz"), ("flat_i_sim_1.4_blah.fits.txt", ".txt"), ("s3://bucket/c/a.b/", ""), ("s3://bucket/c/a.b", ".b"), ("file://localhost/c/a.b.gz", ".b.gz"), ) for file, expected in files: test_string = file if ":" not in test_string: test_string = f"a/b/{test_string}" uri = ButlerURI(test_string) self.assertEqual(uri.getExtension(), expected)