lsst-daf-butler 29.2025.2500__py3-none-any.whl → 29.2025.2600__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -101,6 +101,11 @@ class DatasetTypeConfig(pydantic.BaseModel):
101
101
  """Value for the ``obs_collection`` column, if specified it overrides
102
102
  global value in `ObsCoreConfig`."""
103
103
 
104
+ s_xel: tuple[int, int] | None = None
105
+ """The number of pixels in the first and second dimension of the dataset
106
+ type.
107
+ """
108
+
104
109
  extra_columns: (
105
110
  None | (dict[str, StrictFloat | StrictInt | StrictBool | StrictStr | ExtraColumnConfig])
106
111
  ) = None
@@ -179,6 +179,10 @@ class RecordFactory:
179
179
  record["obs_collection"] = self.config.obs_collection
180
180
  record["access_format"] = dataset_config.access_format
181
181
 
182
+ if dataset_config.s_xel is not None:
183
+ record["s_xel1"] = dataset_config.s_xel[0]
184
+ record["s_xel2"] = dataset_config.s_xel[1]
185
+
182
186
  dataId = ref.dataId
183
187
  dataset_type_name = ref.datasetType.name
184
188
 
@@ -190,6 +194,11 @@ class RecordFactory:
190
194
  fmt_kws.update(run=ref.run)
191
195
  fmt_kws.update(dataset_type=dataset_type_name)
192
196
  fmt_kws.update(record)
197
+
198
+ # In some cases we would like some keys to be duplicated
199
+ # with different names. For example making an exposure be a visit.
200
+ self.finalize_format_keywords(fmt_kws)
201
+
193
202
  if dataset_config.obs_id_fmt:
194
203
  record["obs_id"] = dataset_config.obs_id_fmt.format(**fmt_kws)
195
204
  fmt_kws["obs_id"] = record["obs_id"]
@@ -330,6 +339,17 @@ class RecordFactory:
330
339
  raise
331
340
  return record
332
341
 
342
+ def finalize_format_keywords(self, format_kws: dict[str, Any]) -> None:
343
+ """Modify the formatting dict as required after it has been populated
344
+ with generic content.
345
+
346
+ Parameters
347
+ ----------
348
+ format_kws : `dict`
349
+ Dictionary that might be modified in place.
350
+ """
351
+ pass
352
+
333
353
  @classmethod
334
354
  def get_record_type_from_universe(cls, universe: DimensionUniverse) -> type[RecordFactory]:
335
355
  namespace = universe.namespace
@@ -410,10 +430,10 @@ class DafButlerRecordFactory(RecordFactory):
410
430
  if timespan is not None:
411
431
  if timespan.begin is not None:
412
432
  t_min = cast(astropy.time.Time, timespan.begin)
413
- record["t_min"] = float(t_min.mjd)
433
+ record["t_min"] = float(t_min.utc.mjd)
414
434
  if timespan.end is not None:
415
435
  t_max = cast(astropy.time.Time, timespan.end)
416
- record["t_max"] = float(t_max.mjd)
436
+ record["t_max"] = float(t_max.utc.mjd)
417
437
 
418
438
  region = dataId.region
419
439
  if self.exposure.name in dataId:
@@ -469,3 +489,9 @@ class DafButlerRecordFactory(RecordFactory):
469
489
  else:
470
490
  return None, None
471
491
  return region_dim, "region"
492
+
493
+ def finalize_format_keywords(self, format_kws: dict[str, Any]) -> None:
494
+ # If we have an exposure but do not have a visit, copy the exposure
495
+ # into the visit field.
496
+ if "exposure" in format_kws and "visit" not in format_kws:
497
+ format_kws["visit"] = format_kws["exposure"]
@@ -1,2 +1,2 @@
1
1
  __all__ = ["__version__"]
2
- __version__ = "29.2025.2500"
2
+ __version__ = "29.2025.2600"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-daf-butler
3
- Version: 29.2025.2500
3
+ Version: 29.2025.2600
4
4
  Summary: An abstraction layer for reading and writing astronomical data to datastores.
5
5
  Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
6
6
  License: BSD 3-Clause License
@@ -52,7 +52,7 @@ lsst/daf/butler/repo_relocation.py,sha256=Ivhx2xU4slc53Z6RExhNnquMr2Hx-S8h62emml
52
52
  lsst/daf/butler/time_utils.py,sha256=MVTfOFI2xt3IeA46pa-fWY2kJRwSzaQyq1uzeUABcTM,11805
53
53
  lsst/daf/butler/timespan_database_representation.py,sha256=MWDusjIQIL2RH1CDpWSW5sYvdHCJKzAfpg1rm1DfgEU,24302
54
54
  lsst/daf/butler/utils.py,sha256=5u50COK5z4u31grOhmQF7mFz55biNLOvSMRdQjEdsjo,5140
55
- lsst/daf/butler/version.py,sha256=uW49-HYTP9jPdj_-PD584MYKQsfoumQbft7BWRqu6H4,55
55
+ lsst/daf/butler/version.py,sha256=eKEngRNTsqzq5yv4faNqXQ7KB1ya5wGTLTxJ1qbWG50,55
56
56
  lsst/daf/butler/_utilities/__init__.py,sha256=vLzPZYAJ-9r1cnqsP64MVpFgSw2166yOpq0iPMSdAvw,1298
57
57
  lsst/daf/butler/_utilities/locked_object.py,sha256=3RQf0Ish55mfQAfBy3V4Tfnfq5Q7-cxrwTlQMUhrIno,1931
58
58
  lsst/daf/butler/_utilities/named_locks.py,sha256=Zj_u1rZELaiWec3wJfkgmGD_YiZMLVxbMQmdbbVgk5E,2286
@@ -219,9 +219,9 @@ lsst/daf/butler/registry/interfaces/_obscore.py,sha256=oYmtCEqPsIUch3MTFVHp-z_kZ
219
219
  lsst/daf/butler/registry/interfaces/_opaque.py,sha256=WFusLN04IkQ2KZLA3NduByZyD5sTFYQta9Sfw_rezZQ,10371
220
220
  lsst/daf/butler/registry/interfaces/_versioning.py,sha256=nKNsZQP0NBLiOoLBb_bZ3qu1-p9D8mnLC7F-ueluluY,11951
221
221
  lsst/daf/butler/registry/obscore/__init__.py,sha256=-pBtrRuaW0D6wQrGI9RzlkK4KgPHMtxysHESbP2NfWc,1417
222
- lsst/daf/butler/registry/obscore/_config.py,sha256=OlO-SXVXQVOWyByD3lyvALTsUHGN7C_EXDqmjlfdD8s,8392
222
+ lsst/daf/butler/registry/obscore/_config.py,sha256=Md5FFh9UfoOMnALpN48R1_2HSdvvwYVAfxMry1fyHYo,8529
223
223
  lsst/daf/butler/registry/obscore/_manager.py,sha256=jzZhW3LfFHhWxc_pxklNnsUtY2psMxfYlvB2DCUb_WE,16791
224
- lsst/daf/butler/registry/obscore/_records.py,sha256=eSWAfCsK8Lg0J8VOLzhntyW6mEkSpWN28JD9-5u8XMI,18334
224
+ lsst/daf/butler/registry/obscore/_records.py,sha256=7zTxT_owCCenNz-j-jc8RAH77IU2cLE3JSye8PF_0i0,19329
225
225
  lsst/daf/butler/registry/obscore/_schema.py,sha256=4jmePOr4Z9qTuwLxmoPNDRCKP4-L7iIuAnnrBMbj7pQ,10115
226
226
  lsst/daf/butler/registry/obscore/_spatial.py,sha256=ipsXvDHM8C8d3vfiO9IQit0Z-tAPWlIgBMtAwPwfhr0,6478
227
227
  lsst/daf/butler/registry/obscore/default_spatial.py,sha256=7Ut51mEFloRx4AHK-Sl1qNnAHxFYlknciZX734TQBWI,4003
@@ -343,13 +343,13 @@ lsst/daf/butler/transfers/__init__.py,sha256=M1YcFszSkNB5hB2pZwwGXqbJE2dKt4YXDin
343
343
  lsst/daf/butler/transfers/_context.py,sha256=h1XDJpdg64R7DRHo7mb9xgaLiHDs_AIJmZbyo66qSSw,17278
344
344
  lsst/daf/butler/transfers/_interfaces.py,sha256=Ia1NqcFR5E-Ik4zsXEe2fuMtNCJj5Yfe_gVHLTBtJDw,7490
345
345
  lsst/daf/butler/transfers/_yaml.py,sha256=w_0GmrueuHVLfOfAXGHFBbWAl18tX6eSElbTC-2jRoc,32632
346
- lsst_daf_butler-29.2025.2500.dist-info/licenses/COPYRIGHT,sha256=k1Vq0-Be_K-puaeW4UZnckPjksEL-MJh4XKiWcjMxJE,312
347
- lsst_daf_butler-29.2025.2500.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
348
- lsst_daf_butler-29.2025.2500.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
349
- lsst_daf_butler-29.2025.2500.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
350
- lsst_daf_butler-29.2025.2500.dist-info/METADATA,sha256=yZjCnvNEQVYLue2Ng0pR4tPeQMkDKpORZXEEEZiQ5qI,3265
351
- lsst_daf_butler-29.2025.2500.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
352
- lsst_daf_butler-29.2025.2500.dist-info/entry_points.txt,sha256=XsRxyTK3c-jGlKVuVnbpch3gtaO0lAA_fS3i2NGS5rw,59
353
- lsst_daf_butler-29.2025.2500.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
354
- lsst_daf_butler-29.2025.2500.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
355
- lsst_daf_butler-29.2025.2500.dist-info/RECORD,,
346
+ lsst_daf_butler-29.2025.2600.dist-info/licenses/COPYRIGHT,sha256=k1Vq0-Be_K-puaeW4UZnckPjksEL-MJh4XKiWcjMxJE,312
347
+ lsst_daf_butler-29.2025.2600.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
348
+ lsst_daf_butler-29.2025.2600.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
349
+ lsst_daf_butler-29.2025.2600.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
350
+ lsst_daf_butler-29.2025.2600.dist-info/METADATA,sha256=cmlhIrx73oYFr2nqz5rguNpe5QIZRf949UPtZpzmcJQ,3265
351
+ lsst_daf_butler-29.2025.2600.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
352
+ lsst_daf_butler-29.2025.2600.dist-info/entry_points.txt,sha256=XsRxyTK3c-jGlKVuVnbpch3gtaO0lAA_fS3i2NGS5rw,59
353
+ lsst_daf_butler-29.2025.2600.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
354
+ lsst_daf_butler-29.2025.2600.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
355
+ lsst_daf_butler-29.2025.2600.dist-info/RECORD,,