LSST Applications g013ef56533+d2224463a4,g199a45376c+0ba108daf9,g19c4beb06c+9f335b2115,g1fd858c14a+2459ca3e43,g210f2d0738+2d3d333a78,g262e1987ae+abbb004f04,g2825c19fe3+eedc38578d,g29ae962dfc+0cb55f06ef,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+19c3a54948,g47891489e3+501a489530,g4cdb532a89+a047e97985,g511e8cfd20+ce1f47b6d6,g53246c7159+8c5ae1fdc5,g54cd7ddccb+890c8e1e5d,g5fd55ab2c7+951cc3f256,g64539dfbff+2d3d333a78,g67b6fd64d1+501a489530,g67fd3c3899+2d3d333a78,g74acd417e5+0ea5dee12c,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g89139ef638+501a489530,g8d7436a09f+5ea4c44d25,g8ea07a8fe4+81eaaadc04,g90f42f885a+34c0557caf,g9486f8a5af+165c016931,g97be763408+d5e351dcc8,gbf99507273+8c5ae1fdc5,gc2a301910b+2d3d333a78,gca7fc764a6+501a489530,gce8aa8abaa+8c5ae1fdc5,gd7ef33dd92+501a489530,gdab6d2f7ff+0ea5dee12c,ge410e46f29+501a489530,geaed405ab2+e3b4b2a692,gf9a733ac38+8c5ae1fdc5,w.2025.41
LSST Data Management Base Package
Loading...
Searching...
No Matches
lsst.dax.apdb.tests._apdb Namespace Reference

Classes

class  ApdbSchemaUpdateTest
 
class  ApdbTest
 

Functions

Region _make_region (tuple[float, float, float] xyz=(1.0, 1.0, -1.0))
 
Iterator[str] update_schema_yaml (str schema_file, bool drop_metadata=False, str|None version=None)
 

Function Documentation

◆ _make_region()

Region lsst.dax.apdb.tests._apdb._make_region ( tuple[float, float, float] xyz = (1.0, 1.0, -1.0))
protected
Make a region to use in tests

Definition at line 64 of file _apdb.py.

64def _make_region(xyz: tuple[float, float, float] = (1.0, 1.0, -1.0)) -> Region:
65 """Make a region to use in tests"""
66 pointing_v = UnitVector3d(*xyz)
67 fov = 0.0013 # radians
68 region = Circle(pointing_v, Angle(fov / 2))
69 return region
70
71
72@contextlib.contextmanager

◆ update_schema_yaml()

Iterator[str] lsst.dax.apdb.tests._apdb.update_schema_yaml ( str schema_file,
bool drop_metadata = False,
str | None version = None )
Update schema definition and return name of the new schema file.

Parameters
----------
schema_file : `str`
    Path for the existing YAML file with APDB schema.
drop_metadata : `bool`
    If `True` then remove metadata table from the list of tables.
version : `str` or `None`
    If non-empty string then set schema version to this string, if empty
    string then remove schema version from config, if `None` - don't change
    the version in config.

Yields
------
Path for the updated configuration file.

Definition at line 73 of file _apdb.py.

77) -> Iterator[str]:
78 """Update schema definition and return name of the new schema file.
79
80 Parameters
81 ----------
82 schema_file : `str`
83 Path for the existing YAML file with APDB schema.
84 drop_metadata : `bool`
85 If `True` then remove metadata table from the list of tables.
86 version : `str` or `None`
87 If non-empty string then set schema version to this string, if empty
88 string then remove schema version from config, if `None` - don't change
89 the version in config.
90
91 Yields
92 ------
93 Path for the updated configuration file.
94 """
95 with open(schema_file) as yaml_stream:
96 schemas_list = list(yaml.load_all(yaml_stream, Loader=yaml.SafeLoader))
97 # Edit YAML contents.
98 for schema in schemas_list:
99 # Optionally drop metadata table.
100 if drop_metadata:
101 schema["tables"] = [table for table in schema["tables"] if table["name"] != "metadata"]
102 if version is not None:
103 if version == "":
104 del schema["version"]
105 else:
106 schema["version"] = version
107
108 with TemporaryDirectory(ignore_cleanup_errors=True) as tmpdir:
109 output_path = os.path.join(tmpdir, "schema.yaml")
110 with open(output_path, "w") as yaml_stream:
111 yaml.dump_all(schemas_list, stream=yaml_stream)
112 yield output_path
113
114