Commit 12df9146 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

re-structured meta operations

parent 21e2d3d6
Pipeline #10994 passed with stage
......@@ -69,7 +69,7 @@ REQUIRED_KEYS_IN_META = dict(
)
def generate_meta(**kwargs) -> fits.Header:
def generate_meta(**kwargs) -> dict:
"""
Generate metadata.
......@@ -101,16 +101,10 @@ def generate_meta(**kwargs) -> fits.Header:
meta["build"] = os.getenv("BUILD", default="__unset__")
meta["prc_date"] = now()
meta["data_uuid"] = str(uuid.uuid4())
# convert meta to fits header
meta_card = fits.Card(
keyword="META",
value=json.dumps(meta, separators=(",", ":"), ensure_ascii=False),
)
meta_header = reformat_header(fits.Header(cards=[meta_card]), comment="METADATA")
return meta_header
return meta
def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
def append_meta(hdulist: fits.HDUList, meta: dict) -> fits.HDUList:
"""
Append meta to hdulist.
......@@ -118,8 +112,8 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
----------
hdulist : fits.HDUList
HDUList.
kwargs : Any
Meta data.
meta : dict
Meta data dict.
Returns
-------
......@@ -127,7 +121,13 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
HDUList with meta.
"""
meta_header = generate_meta(**kwargs)
# convert meta to fits header
meta_card = fits.Card(
keyword="META",
value=json.dumps(meta, separators=(",", ":"), ensure_ascii=False),
)
meta_header = reformat_header(fits.Header(cards=[meta_card]), comment="METADATA")
# append meta_header to hdulist[0].header
hdulist[0].header = append_header(hdulist[0].header, meta_header)
return hdulist
......
......@@ -134,11 +134,12 @@ class TestFitsHeaderOps(unittest.TestCase):
def test_generate_meta(self):
h = generate_meta()
self.assertIsInstance(h, fits.Header)
self.assertIsInstance(h, dict)
def test_append_meta(self):
hdulist = fits.HDUList([fits.PrimaryHDU()])
hdulist = append_meta(hdulist, obs_id="123456")
meta = generate_meta(obs_id="123456")
hdulist = append_meta(hdulist, meta)
self.assertIn("META", set(hdulist[0].header.keys()))
meta = extract_meta(hdulist)
self.assertEqual(meta["obs_id"], "123456")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment