Skip to content

Commit

Permalink
Merge pull request #358 from casangi/review_schema_changes
Browse files Browse the repository at this point in the history
Review schema changes
  • Loading branch information
Jan-Willem authored Feb 5, 2025
2 parents 7400703 + 7730d24 commit 67e495d
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ field_and_source_xds

.. xradio_dataset_schema_table:: xradio.measurement_set.schema.FieldSourceXds

.. autoclass:: xradio.measurement_set.schema.FieldSourceEphemerisXds()

.. xradio_dataset_schema_table:: xradio.measurement_set.schema.FieldSourceEphemerisXds

antenna_xds
~~~~~~~~~~~
.. autoclass:: xradio.measurement_set.schema.AntennaXds()
Expand Down
2 changes: 1 addition & 1 deletion src/xradio/measurement_set/_utils/_msv2/descr.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,6 @@ def populate_ms_descr(
elif mode == "flat":
summary += [(ddi, (sdf["rows"], sdf["chans"], sdf["pols"]))]
else:
summary += [((ddi, sdf["times"], sdf["baselines"], sdf["chans"], sdf["pols"]))]
summary += [(ddi, sdf["times"], sdf["baselines"], sdf["chans"], sdf["pols"])]

return sdf
6 changes: 5 additions & 1 deletion src/xradio/measurement_set/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ class EllipsoidPosLocationArray:

@xarray_dataarray_schema
class BaselineArray:
"""Model of the baseline_id coordinate in the main dataset (interferometric data, :py:class:`VisibiiltyXds`)"""
"""Model of the baseline_id coordinate in the main dataset (interferometric data, :py:class:`VisibilityXds`)"""

data: Data[BaselineId, Union[numpy.int64, numpy.int32]]
"""Unique id for each baseline."""
Expand Down Expand Up @@ -1223,6 +1223,8 @@ class SpectrumArray:
polarization: Coordof[PolarizationArray]

field_and_source_xds: Attr[Union[FieldSourceXds, FieldSourceEphemerisXds]]
""" Field and source information. Also alows for variant where ephemeris information is included. """

long_name: Optional[Attr[str]] = "Spectrum values"
""" Long-form name to use for axis. Should be ``"Spectrum values"``"""
units: Attr[list[str]] = ("Jy",)
Expand All @@ -1243,6 +1245,8 @@ class VisibilityArray:
frequency: Coordof[FrequencyArray]

field_and_source_xds: Attr[Union[FieldSourceXds, FieldSourceEphemerisXds]]
""" Field and source information. Also alows for variant where ephemeris information is included. """

long_name: Optional[Attr[str]] = "Visibility values"
""" Long-form name to use for axis. Should be ``"Visibility values"``"""
units: Attr[list[str]] = ("Jy",)
Expand Down
12 changes: 12 additions & 0 deletions src/xradio/sphinx/schema_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,18 @@ def format_attr_model_text(state, attr) -> StringList:
state.nested_parse(vl, 0, line)
return line

if typing.get_origin(attr.typ) == typing.Union:
vl = StringList()
type_args = typing.get_args(attr.typ)
options = []
for i, arg in enumerate(type_args):
vl.append(f":py:class:`~{arg.__module__}.{arg.__name__}`", "")
if i + 1 < len(type_args):
vl.append(" or ", "")
with switch_source_input(state, vl):
state.nested_parse(vl, 0, line)
return line

# Derived type, e.g. list of types?
if typing.get_origin(attr.typ) == list and all(
[isinstance(arg, type) for arg in type_args]
Expand Down

0 comments on commit 67e495d

Please sign in to comment.