lsst-pex-config 30.0.0rc2__py3-none-any.whl → 30.0.1rc1__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.
- lsst/pex/config/callStack.py +1 -1
- lsst/pex/config/choiceField.py +3 -3
- lsst/pex/config/comparison.py +5 -5
- lsst/pex/config/config.py +130 -37
- lsst/pex/config/configChoiceField.py +4 -4
- lsst/pex/config/configDictField.py +6 -6
- lsst/pex/config/configField.py +6 -6
- lsst/pex/config/configurableActions/_configurableActionStructField.py +1 -1
- lsst/pex/config/configurableField.py +7 -7
- lsst/pex/config/dictField.py +6 -6
- lsst/pex/config/listField.py +10 -10
- lsst/pex/config/rangeField.py +2 -2
- lsst/pex/config/registry.py +4 -4
- lsst/pex/config/version.py +1 -1
- lsst/pex/config/wrap.py +4 -4
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/METADATA +5 -3
- lsst_pex_config-30.0.1rc1.dist-info/RECORD +35 -0
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/WHEEL +1 -1
- lsst_pex_config-30.0.0rc2.dist-info/RECORD +0 -35
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/COPYRIGHT +0 -0
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/LICENSE +0 -0
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/bsd_license.txt +0 -0
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/gpl-v3.0.txt +0 -0
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/top_level.txt +0 -0
- {lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/zip-safe +0 -0
lsst/pex/config/callStack.py
CHANGED
lsst/pex/config/choiceField.py
CHANGED
|
@@ -42,7 +42,7 @@ class ChoiceField(Field[FieldTypeVar]):
|
|
|
42
42
|
----------
|
|
43
43
|
doc : `str`
|
|
44
44
|
Documentation string that describes the configuration field.
|
|
45
|
-
dtype :
|
|
45
|
+
dtype : `type`
|
|
46
46
|
The type of the field's choices. For example, `str` or `int`.
|
|
47
47
|
allowed : `dict`
|
|
48
48
|
The allowed values. Keys are the allowed choices (of ``dtype``-type).
|
|
@@ -52,9 +52,9 @@ class ChoiceField(Field[FieldTypeVar]):
|
|
|
52
52
|
choices.
|
|
53
53
|
optional : `bool`, optional
|
|
54
54
|
If `True`, this configuration field is *optional*. Default is `True`.
|
|
55
|
-
deprecated : None or `str`, optional
|
|
55
|
+
deprecated : `None` or `str`, optional
|
|
56
56
|
A description of why this Field is deprecated, including removal date.
|
|
57
|
-
If not None
|
|
57
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
58
58
|
|
|
59
59
|
See Also
|
|
60
60
|
--------
|
lsst/pex/config/comparison.py
CHANGED
|
@@ -70,18 +70,18 @@ def compareScalars(name, v1, v2, output, rtol=1e-8, atol=1e-8, dtype=None):
|
|
|
70
70
|
Name to use when reporting differences, typically created by
|
|
71
71
|
`getComparisonName`. This will always appear as the beginning of any
|
|
72
72
|
messages reported via ``output``.
|
|
73
|
-
v1 : object
|
|
73
|
+
v1 : `object`
|
|
74
74
|
Left-hand side value to compare.
|
|
75
|
-
v2 : object
|
|
75
|
+
v2 : `object`
|
|
76
76
|
Right-hand side value to compare.
|
|
77
|
-
output :
|
|
77
|
+
output : `collections.abc.Callable` or `None`
|
|
78
78
|
A callable that takes a string, used (possibly repeatedly) to report
|
|
79
79
|
inequalities (for example, `print`). Set to `None` to disable output.
|
|
80
80
|
rtol : `float`, optional
|
|
81
81
|
Relative tolerance for floating point comparisons.
|
|
82
82
|
atol : `float`, optional
|
|
83
83
|
Absolute tolerance for floating point comparisons.
|
|
84
|
-
dtype :
|
|
84
|
+
dtype : `type`, optional
|
|
85
85
|
Data type of values for comparison. May be `None` if values are not
|
|
86
86
|
floating-point.
|
|
87
87
|
|
|
@@ -130,7 +130,7 @@ def compareConfigs(name, c1, c2, shortcut=True, rtol=1e-8, atol=1e-8, output=Non
|
|
|
130
130
|
Relative tolerance for floating point comparisons.
|
|
131
131
|
atol : `float`, optional
|
|
132
132
|
Absolute tolerance for floating point comparisons.
|
|
133
|
-
output :
|
|
133
|
+
output : `collections.abc.Callable`, optional
|
|
134
134
|
A callable that takes a string, used (possibly repeatedly) to report
|
|
135
135
|
inequalities. For example: `print`.
|
|
136
136
|
|
lsst/pex/config/config.py
CHANGED
|
@@ -38,6 +38,7 @@ __all__ = (
|
|
|
38
38
|
import copy
|
|
39
39
|
import importlib
|
|
40
40
|
import io
|
|
41
|
+
import logging
|
|
41
42
|
import math
|
|
42
43
|
import numbers
|
|
43
44
|
import os
|
|
@@ -47,9 +48,13 @@ import sys
|
|
|
47
48
|
import tempfile
|
|
48
49
|
import warnings
|
|
49
50
|
from collections.abc import Mapping
|
|
51
|
+
from contextlib import contextmanager
|
|
52
|
+
from contextvars import ContextVar
|
|
50
53
|
from types import GenericAlias
|
|
51
54
|
from typing import Any, ForwardRef, Generic, TypeVar, cast, overload
|
|
52
55
|
|
|
56
|
+
from lsst.resources import ResourcePath, ResourcePathExpression
|
|
57
|
+
|
|
53
58
|
# if YAML is not available that's fine and we simply don't register
|
|
54
59
|
# the yaml representer since we know it won't be used.
|
|
55
60
|
try:
|
|
@@ -74,6 +79,25 @@ else:
|
|
|
74
79
|
YamlLoaders = ()
|
|
75
80
|
doImport = None
|
|
76
81
|
|
|
82
|
+
_LOG = logging.getLogger(__name__)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
# Tracks the current config directory for the current context.
|
|
86
|
+
_config_dir_stack: ContextVar[ResourcePath | None] = ContextVar("_config_dir_stack", default=None)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _get_config_root() -> ResourcePath | None:
|
|
90
|
+
return _config_dir_stack.get()
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
@contextmanager
|
|
94
|
+
def _push_config_root(dirname: ResourcePath):
|
|
95
|
+
token = _config_dir_stack.set(dirname)
|
|
96
|
+
try:
|
|
97
|
+
yield
|
|
98
|
+
finally:
|
|
99
|
+
_config_dir_stack.reset(token)
|
|
100
|
+
|
|
77
101
|
|
|
78
102
|
class _PexConfigGenericAlias(GenericAlias):
|
|
79
103
|
"""A Subclass of python's GenericAlias used in defining and instantiating
|
|
@@ -124,14 +148,14 @@ def _autocast(x, dtype):
|
|
|
124
148
|
|
|
125
149
|
Parameters
|
|
126
150
|
----------
|
|
127
|
-
x : object
|
|
151
|
+
x : `object`
|
|
128
152
|
A value.
|
|
129
153
|
dtype : type
|
|
130
154
|
Data type, such as `float`, `int`, or `str`.
|
|
131
155
|
|
|
132
156
|
Returns
|
|
133
157
|
-------
|
|
134
|
-
values : object
|
|
158
|
+
values : `object`
|
|
135
159
|
If appropriate, the returned value is ``x`` cast to the given type
|
|
136
160
|
``dtype``. If the cast cannot be performed the original value of
|
|
137
161
|
``x`` is returned.
|
|
@@ -276,7 +300,7 @@ class FieldValidationError(ValueError):
|
|
|
276
300
|
|
|
277
301
|
See also
|
|
278
302
|
--------
|
|
279
|
-
lsst.pex.config.Field.name
|
|
303
|
+
``lsst.pex.config.Field.name``
|
|
280
304
|
"""
|
|
281
305
|
|
|
282
306
|
self.fullname = _joinNamePath(config._name, field.name)
|
|
@@ -297,7 +321,7 @@ class FieldValidationError(ValueError):
|
|
|
297
321
|
error = (
|
|
298
322
|
f"{self.fieldType.__name__} '{self.fullname}' failed validation: {msg}\n"
|
|
299
323
|
f"For more information see the Field definition at:\n{self.fieldSource.format()}"
|
|
300
|
-
f" and the Config definition at:\n{self.configSource.format()}"
|
|
324
|
+
f" and the Config definition for {_typeStr(config)} at:\n{self.configSource.format()}"
|
|
301
325
|
)
|
|
302
326
|
super().__init__(error)
|
|
303
327
|
|
|
@@ -310,14 +334,14 @@ class Field(Generic[FieldTypeVar]):
|
|
|
310
334
|
----------
|
|
311
335
|
doc : `str`
|
|
312
336
|
A description of the field for users.
|
|
313
|
-
dtype : type
|
|
337
|
+
dtype : `type`, optional
|
|
314
338
|
The field's data type. ``Field`` only supports basic data types:
|
|
315
339
|
`int`, `float`, `complex`, `bool`, and `str`. See
|
|
316
340
|
`Field.supportedTypes`. Optional if supplied as a typing argument to
|
|
317
341
|
the class.
|
|
318
|
-
default : object
|
|
342
|
+
default : `object`, optional
|
|
319
343
|
The field's default value.
|
|
320
|
-
check :
|
|
344
|
+
check : `collections.abc.Callable`, optional
|
|
321
345
|
A callable that is called with the field's value. This callable should
|
|
322
346
|
return `False` if the value is invalid. More complex inter-field
|
|
323
347
|
validation can be written as part of the
|
|
@@ -326,7 +350,7 @@ class Field(Generic[FieldTypeVar]):
|
|
|
326
350
|
This sets whether the field is considered optional, and therefore
|
|
327
351
|
doesn't need to be set by the user. When `False`,
|
|
328
352
|
`lsst.pex.config.Config.validate` fails if the field's value is `None`.
|
|
329
|
-
deprecated : None or `str`, optional
|
|
353
|
+
deprecated : `None` or `str`, optional
|
|
330
354
|
A description of why this Field is deprecated, including removal date.
|
|
331
355
|
If not None, the string is appended to the docstring for this Field.
|
|
332
356
|
|
|
@@ -350,7 +374,7 @@ class Field(Generic[FieldTypeVar]):
|
|
|
350
374
|
|
|
351
375
|
Notes
|
|
352
376
|
-----
|
|
353
|
-
|
|
377
|
+
`Field` instances (including those of any subclass of `Field`) are used
|
|
354
378
|
as class attributes of `~lsst.pex.config.Config` subclasses (see the
|
|
355
379
|
example, below). ``Field`` attributes work like the `property` attributes
|
|
356
380
|
of classes that implement custom setters and getters. `Field` attributes
|
|
@@ -361,15 +385,15 @@ class Field(Generic[FieldTypeVar]):
|
|
|
361
385
|
When you access a `Field` attribute on a `Config` instance, you don't
|
|
362
386
|
get the `Field` instance itself. Instead, you get the value of that field,
|
|
363
387
|
which might be a simple type (`int`, `float`, `str`, `bool`) or a custom
|
|
364
|
-
container type (like a `lsst.pex.config.
|
|
365
|
-
type. See the example, below.
|
|
388
|
+
container type (like a `lsst.pex.config.ListField`) depending on the
|
|
389
|
+
field's type. See the example, below.
|
|
366
390
|
|
|
367
391
|
Fields can be annotated with a type similar to other python classes (python
|
|
368
392
|
specification `here <https://peps.python.org/pep-0484/#generics>`_ ).
|
|
369
393
|
See the name field in the Config example below for an example of this.
|
|
370
394
|
Unlike most other uses in python, this has an effect at type checking *and*
|
|
371
395
|
runtime. If the type is specified with a class annotation, it will be used
|
|
372
|
-
as the value of the ``dtype`` in the
|
|
396
|
+
as the value of the ``dtype`` in the `Field` and there is no need to
|
|
373
397
|
specify it as an argument during instantiation.
|
|
374
398
|
|
|
375
399
|
There are Some notes on dtype through type annotation syntax. Type
|
|
@@ -377,19 +401,20 @@ class Field(Generic[FieldTypeVar]):
|
|
|
377
401
|
name. i.e. "float", but this cannot be used to resolve circular references.
|
|
378
402
|
Type annotation syntax can be used on an identifier in addition to Class
|
|
379
403
|
assignment i.e. ``variable: Field[str] = Config.someField`` vs
|
|
380
|
-
``someField = Field[str](doc="some doc")
|
|
404
|
+
``someField = Field[str](doc="some doc")``. However, this syntax is only
|
|
381
405
|
useful for annotating the type of the identifier (i.e. variable in previous
|
|
382
|
-
example) and does nothing for assigning the dtype of the
|
|
406
|
+
example) and does nothing for assigning the dtype of the `Field`.
|
|
383
407
|
|
|
384
408
|
Examples
|
|
385
409
|
--------
|
|
386
|
-
Instances of
|
|
410
|
+
Instances of `Field` should be used as class attributes of
|
|
387
411
|
`lsst.pex.config.Config` subclasses:
|
|
388
412
|
|
|
389
413
|
>>> from lsst.pex.config import Config, Field
|
|
390
414
|
>>> class Example(Config):
|
|
391
415
|
... myInt = Field("An integer field.", int, default=0)
|
|
392
416
|
... name = Field[str](doc="A string Field")
|
|
417
|
+
>>> config = Example()
|
|
393
418
|
>>> print(config.myInt)
|
|
394
419
|
0
|
|
395
420
|
>>> config.myInt = 5
|
|
@@ -600,7 +625,7 @@ class Field(Generic[FieldTypeVar]):
|
|
|
600
625
|
|
|
601
626
|
Parameters
|
|
602
627
|
----------
|
|
603
|
-
value : object
|
|
628
|
+
value : `object`
|
|
604
629
|
The value being validated.
|
|
605
630
|
|
|
606
631
|
Raises
|
|
@@ -642,8 +667,8 @@ class Field(Generic[FieldTypeVar]):
|
|
|
642
667
|
|
|
643
668
|
Parameters
|
|
644
669
|
----------
|
|
645
|
-
outfile :
|
|
646
|
-
A writeable
|
|
670
|
+
outfile : `typing.IO`
|
|
671
|
+
A writeable file handle.
|
|
647
672
|
instance : `~lsst.pex.config.Config`
|
|
648
673
|
The `~lsst.pex.config.Config` instance that contains this field.
|
|
649
674
|
|
|
@@ -684,7 +709,7 @@ class Field(Generic[FieldTypeVar]):
|
|
|
684
709
|
|
|
685
710
|
Returns
|
|
686
711
|
-------
|
|
687
|
-
value : object
|
|
712
|
+
value : `object`
|
|
688
713
|
The field's value. See *Notes*.
|
|
689
714
|
|
|
690
715
|
Notes
|
|
@@ -843,7 +868,7 @@ class Field(Generic[FieldTypeVar]):
|
|
|
843
868
|
Relative tolerance for floating point comparisons.
|
|
844
869
|
atol : `float`, optional
|
|
845
870
|
Absolute tolerance for floating point comparisons.
|
|
846
|
-
output :
|
|
871
|
+
output : `collections.abc.Callable`, optional
|
|
847
872
|
A callable that takes a string, used (possibly repeatedly) to
|
|
848
873
|
report inequalities.
|
|
849
874
|
|
|
@@ -1171,15 +1196,51 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1171
1196
|
e.add_note(f"No field of name {name} exists in config type {_typeStr(self)}")
|
|
1172
1197
|
raise
|
|
1173
1198
|
|
|
1199
|
+
def _filename_to_resource(
|
|
1200
|
+
self, filename: ResourcePathExpression | None = None
|
|
1201
|
+
) -> tuple[ResourcePath | None, str]:
|
|
1202
|
+
"""Create resource path from filename.
|
|
1203
|
+
|
|
1204
|
+
Parameters
|
|
1205
|
+
----------
|
|
1206
|
+
filename : `lsst.resources.ResourcePathExpression` or `None`
|
|
1207
|
+
The URI expression associated with this config. Can be `None`
|
|
1208
|
+
if no file URI is known.
|
|
1209
|
+
|
|
1210
|
+
Returns
|
|
1211
|
+
-------
|
|
1212
|
+
resource : `lsst.resources.ResourcePath` or `None`
|
|
1213
|
+
The resource version of the filename. Returns `None` if no filename
|
|
1214
|
+
was given or refers to unspecified value.
|
|
1215
|
+
file_string : `str`
|
|
1216
|
+
String form of the resource for use in ``__file__``
|
|
1217
|
+
"""
|
|
1218
|
+
if filename is None or filename in ("?", "<unknown>"):
|
|
1219
|
+
return None, "<unknown>"
|
|
1220
|
+
base = _get_config_root()
|
|
1221
|
+
resource = ResourcePath(filename, forceAbsolute=True, forceDirectory=False, root=base)
|
|
1222
|
+
|
|
1223
|
+
# Preferred definition of __file__ is the full OS path. If a config
|
|
1224
|
+
# is loaded with a relative path it must be converted to the absolute
|
|
1225
|
+
# path to avoid confusion with later relative paths referenced inside
|
|
1226
|
+
# the config.
|
|
1227
|
+
if resource.scheme == "file":
|
|
1228
|
+
file_string = resource.ospath
|
|
1229
|
+
else:
|
|
1230
|
+
file_string = str(resource)
|
|
1231
|
+
|
|
1232
|
+
return resource, file_string
|
|
1233
|
+
|
|
1174
1234
|
def load(self, filename, root="config"):
|
|
1175
1235
|
"""Modify this config in place by executing the Python code in a
|
|
1176
1236
|
configuration file.
|
|
1177
1237
|
|
|
1178
1238
|
Parameters
|
|
1179
1239
|
----------
|
|
1180
|
-
filename : `
|
|
1181
|
-
Name of the configuration
|
|
1182
|
-
module.
|
|
1240
|
+
filename : `lsst.resources.ResourcePathExpression`
|
|
1241
|
+
Name of the configuration URI. A configuration file is a Python
|
|
1242
|
+
module. Since configuration files are Python code, remote URIs
|
|
1243
|
+
are not allowed.
|
|
1183
1244
|
root : `str`, optional
|
|
1184
1245
|
Name of the variable in file that refers to the config being
|
|
1185
1246
|
overridden.
|
|
@@ -1199,9 +1260,21 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1199
1260
|
lsst.pex.config.Config.saveToStream
|
|
1200
1261
|
lsst.pex.config.Config.saveToString
|
|
1201
1262
|
"""
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1263
|
+
resource, file_string = self._filename_to_resource(filename)
|
|
1264
|
+
if resource is None:
|
|
1265
|
+
# A filename is required.
|
|
1266
|
+
raise ValueError(f"Undefined URI provided to load command: {filename}.")
|
|
1267
|
+
|
|
1268
|
+
if resource.scheme not in ("file", "eups", "resource"):
|
|
1269
|
+
raise ValueError(f"Remote URI ({resource}) can not be used to load configurations.")
|
|
1270
|
+
|
|
1271
|
+
# Push the directory of the file we are now reading onto the stack
|
|
1272
|
+
# so that nested loads are relative to this file.
|
|
1273
|
+
with _push_config_root(resource.dirname()):
|
|
1274
|
+
_LOG.debug("Updating config from URI %s", str(resource))
|
|
1275
|
+
with resource.open("r") as f:
|
|
1276
|
+
code = compile(f.read(), filename=file_string, mode="exec")
|
|
1277
|
+
self._loadFromString(code, root=root, filename=file_string)
|
|
1205
1278
|
|
|
1206
1279
|
def loadFromStream(self, stream, root="config", filename=None, extraLocals=None):
|
|
1207
1280
|
"""Modify this Config in place by executing the Python code in the
|
|
@@ -1209,7 +1282,7 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1209
1282
|
|
|
1210
1283
|
Parameters
|
|
1211
1284
|
----------
|
|
1212
|
-
stream :
|
|
1285
|
+
stream : `typing.IO`, `str`, `bytes`, or `~types.CodeType`
|
|
1213
1286
|
Stream containing configuration override code. If this is a
|
|
1214
1287
|
code object, it should be compiled with ``mode="exec"``.
|
|
1215
1288
|
root : `str`, optional
|
|
@@ -1224,7 +1297,8 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1224
1297
|
Then this config's field ``myField`` is set to ``5``.
|
|
1225
1298
|
filename : `str`, optional
|
|
1226
1299
|
Name of the configuration file, or `None` if unknown or contained
|
|
1227
|
-
in the stream. Used for error reporting
|
|
1300
|
+
in the stream. Used for error reporting and to set ``__file__``
|
|
1301
|
+
variable in config.
|
|
1228
1302
|
extraLocals : `dict` of `str` to `object`, optional
|
|
1229
1303
|
Any extra variables to include in local scope when loading.
|
|
1230
1304
|
|
|
@@ -1244,7 +1318,7 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1244
1318
|
"""
|
|
1245
1319
|
if hasattr(stream, "read"):
|
|
1246
1320
|
if filename is None:
|
|
1247
|
-
filename = getattr(stream, "name", "
|
|
1321
|
+
filename = getattr(stream, "name", "<unknown>")
|
|
1248
1322
|
code = compile(stream.read(), filename=filename, mode="exec")
|
|
1249
1323
|
else:
|
|
1250
1324
|
code = stream
|
|
@@ -1268,9 +1342,11 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1268
1342
|
config.myField = 5
|
|
1269
1343
|
|
|
1270
1344
|
Then this config's field ``myField`` is set to ``5``.
|
|
1271
|
-
filename : `
|
|
1272
|
-
|
|
1273
|
-
in the stream. Used for error reporting
|
|
1345
|
+
filename : `lsst.resources.ResourcePathExpression`, optional
|
|
1346
|
+
URI of the configuration file, or `None` if unknown or contained
|
|
1347
|
+
in the stream. Used for error reporting and to set ``__file__``
|
|
1348
|
+
variable. Required to be set if the string config attempts to
|
|
1349
|
+
load other configs using either relative path or ``__file__``.
|
|
1274
1350
|
extraLocals : `dict` of `str` to `object`, optional
|
|
1275
1351
|
Any extra variables to include in local scope when loading.
|
|
1276
1352
|
|
|
@@ -1291,7 +1367,24 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1291
1367
|
if filename is None:
|
|
1292
1368
|
# try to determine the file name; a compiled string
|
|
1293
1369
|
# has attribute "co_filename",
|
|
1294
|
-
filename = getattr(code, "co_filename", "
|
|
1370
|
+
filename = getattr(code, "co_filename", "<unknown>")
|
|
1371
|
+
|
|
1372
|
+
resource, file_string = self._filename_to_resource(filename)
|
|
1373
|
+
if resource is None:
|
|
1374
|
+
# No idea where this config came from so no ability to deal with
|
|
1375
|
+
# relative paths. No reason to use context.
|
|
1376
|
+
self._loadFromString(code, root=root, filename=filename, extraLocals=extraLocals)
|
|
1377
|
+
else:
|
|
1378
|
+
# Push the directory of the file we are now reading onto the stack
|
|
1379
|
+
# so that nested loads are relative to this file.
|
|
1380
|
+
with _push_config_root(resource.dirname()):
|
|
1381
|
+
self._loadFromString(code, root=root, filename=file_string, extraLocals=extraLocals)
|
|
1382
|
+
|
|
1383
|
+
def _loadFromString(self, code, root="config", filename=None, extraLocals=None):
|
|
1384
|
+
"""Update config from string.
|
|
1385
|
+
|
|
1386
|
+
Assumes relative directory path context has been setup by caller.
|
|
1387
|
+
"""
|
|
1295
1388
|
with RecordingImporter() as importer:
|
|
1296
1389
|
globals = {"__file__": filename}
|
|
1297
1390
|
local = {root: self}
|
|
@@ -1374,7 +1467,7 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1374
1467
|
|
|
1375
1468
|
Parameters
|
|
1376
1469
|
----------
|
|
1377
|
-
outfile :
|
|
1470
|
+
outfile : `typing.TextIO`
|
|
1378
1471
|
Destination file object write the config into. Accepts strings not
|
|
1379
1472
|
bytes.
|
|
1380
1473
|
root : `str`, optional
|
|
@@ -1428,7 +1521,7 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1428
1521
|
|
|
1429
1522
|
Parameters
|
|
1430
1523
|
----------
|
|
1431
|
-
outfile :
|
|
1524
|
+
outfile : `typing.TextIO`
|
|
1432
1525
|
Destination file object write the config into. Accepts strings not
|
|
1433
1526
|
bytes.
|
|
1434
1527
|
"""
|
|
@@ -1663,7 +1756,7 @@ class Config(metaclass=ConfigMeta): # type: ignore
|
|
|
1663
1756
|
Relative tolerance for floating point comparisons.
|
|
1664
1757
|
atol : `float`, optional
|
|
1665
1758
|
Absolute tolerance for floating point comparisons.
|
|
1666
|
-
output :
|
|
1759
|
+
output : `collections.abc.Callable`, optional
|
|
1667
1760
|
A callable that takes a string, used (possibly repeatedly) to
|
|
1668
1761
|
report inequalities.
|
|
1669
1762
|
|
|
@@ -1784,7 +1877,7 @@ def unreduceConfig(cls_, stream):
|
|
|
1784
1877
|
cls_ : `lsst.pex.config.Config`-type
|
|
1785
1878
|
A `lsst.pex.config.Config` type (not an instance) that is instantiated
|
|
1786
1879
|
with configurations in the ``stream``.
|
|
1787
|
-
stream :
|
|
1880
|
+
stream : `typing.IO`, `str`, or `~types.CodeType`
|
|
1788
1881
|
Stream containing configuration override code.
|
|
1789
1882
|
|
|
1790
1883
|
Returns
|
|
@@ -192,7 +192,7 @@ class ConfigInstanceDict(collections.abc.Mapping[str, Config]):
|
|
|
192
192
|
result._typemap = self._typemap
|
|
193
193
|
if self._selection is not None:
|
|
194
194
|
if self._field.multi:
|
|
195
|
-
result._selection = SelectionSet(
|
|
195
|
+
result._selection = SelectionSet(self, self._selection._set)
|
|
196
196
|
else:
|
|
197
197
|
result._selection = self._selection
|
|
198
198
|
return result
|
|
@@ -412,9 +412,9 @@ class ConfigChoiceField(Field[ConfigInstanceDict]):
|
|
|
412
412
|
If `False`, the field allows only a single selection. In this case,
|
|
413
413
|
set the active config by assigning the config's key from the
|
|
414
414
|
``typemap`` to the field's ``name`` attribute (see *Examples*).
|
|
415
|
-
deprecated : None or `str`, optional
|
|
415
|
+
deprecated : `None` or `str`, optional
|
|
416
416
|
A description of why this Field is deprecated, including removal date.
|
|
417
|
-
If not None
|
|
417
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
418
418
|
|
|
419
419
|
See Also
|
|
420
420
|
--------
|
|
@@ -650,7 +650,7 @@ class ConfigChoiceField(Field[ConfigInstanceDict]):
|
|
|
650
650
|
Relative tolerance for floating point comparisons.
|
|
651
651
|
atol : `float`
|
|
652
652
|
Absolute tolerance for floating point comparisons.
|
|
653
|
-
output :
|
|
653
|
+
output : `collections.abc.Callable`
|
|
654
654
|
A callable that takes a string, used (possibly repeatedly) to
|
|
655
655
|
report inequalities.
|
|
656
656
|
|
|
@@ -76,7 +76,7 @@ class ConfigDict(Dict[str, Config]):
|
|
|
76
76
|
return type(self)(
|
|
77
77
|
config,
|
|
78
78
|
self._field,
|
|
79
|
-
{k: v.
|
|
79
|
+
{k: v.copy() for k, v in self._dict.items()},
|
|
80
80
|
at=None,
|
|
81
81
|
label="copy",
|
|
82
82
|
setHistory=False,
|
|
@@ -148,7 +148,7 @@ class ConfigDictField(DictField):
|
|
|
148
148
|
itemtype : `lsst.pex.config.Config`-type
|
|
149
149
|
The type of the values in the mapping. This must be
|
|
150
150
|
`~lsst.pex.config.Config` or a subclass.
|
|
151
|
-
default : optional
|
|
151
|
+
default : `typing.Any`, optional
|
|
152
152
|
Unknown.
|
|
153
153
|
default : ``itemtype``-dtype, optional
|
|
154
154
|
Default value of this field.
|
|
@@ -161,9 +161,9 @@ class ConfigDictField(DictField):
|
|
|
161
161
|
Callable to check a key.
|
|
162
162
|
itemCheck : `~collections.abc.Callable` or `None`, optional
|
|
163
163
|
Callable to check an item.
|
|
164
|
-
deprecated : None or `str`, optional
|
|
164
|
+
deprecated : `None` or `str`, optional
|
|
165
165
|
A description of why this Field is deprecated, including removal date.
|
|
166
|
-
If not None
|
|
166
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
167
167
|
|
|
168
168
|
Raises
|
|
169
169
|
------
|
|
@@ -171,7 +171,7 @@ class ConfigDictField(DictField):
|
|
|
171
171
|
Raised if the inputs are invalid:
|
|
172
172
|
|
|
173
173
|
- ``keytype`` or ``itemtype`` arguments are not supported types
|
|
174
|
-
(members of `
|
|
174
|
+
(members of `Field.supportedTypes`.
|
|
175
175
|
- ``dictCheck``, ``keyCheck`` or ``itemCheck`` is not a callable
|
|
176
176
|
function.
|
|
177
177
|
|
|
@@ -326,7 +326,7 @@ class ConfigDictField(DictField):
|
|
|
326
326
|
Relative tolerance for floating point comparisons.
|
|
327
327
|
atol : `float`
|
|
328
328
|
Absolute tolerance for floating point comparisons.
|
|
329
|
-
output :
|
|
329
|
+
output : `collections.abc.Callable`
|
|
330
330
|
A callable that takes a string, used (possibly repeatedly) to
|
|
331
331
|
report inequalities.
|
|
332
332
|
|
lsst/pex/config/configField.py
CHANGED
|
@@ -52,12 +52,12 @@ class ConfigField(Field[FieldTypeVar]):
|
|
|
52
52
|
considered equivalent to assigning a default-constructed sub-config.
|
|
53
53
|
This means that the argument default can be ``dtype``, as well as an
|
|
54
54
|
instance of ``dtype``.
|
|
55
|
-
check :
|
|
55
|
+
check : `collections.abc.Callable`, optional
|
|
56
56
|
A callback function that validates the field's value, returning `True`
|
|
57
57
|
if the value is valid, and `False` otherwise.
|
|
58
|
-
deprecated : None or `str`, optional
|
|
58
|
+
deprecated : `None` or `str`, optional
|
|
59
59
|
A description of why this Field is deprecated, including removal date.
|
|
60
|
-
If not None
|
|
60
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
61
61
|
|
|
62
62
|
See Also
|
|
63
63
|
--------
|
|
@@ -178,7 +178,7 @@ class ConfigField(Field[FieldTypeVar]):
|
|
|
178
178
|
|
|
179
179
|
Parameters
|
|
180
180
|
----------
|
|
181
|
-
outfile :
|
|
181
|
+
outfile : `typing.IO`
|
|
182
182
|
A writeable field handle.
|
|
183
183
|
instance : `~lsst.pex.config.Config`
|
|
184
184
|
The `~lsst.pex.config.Config` instance that contains this field.
|
|
@@ -226,7 +226,7 @@ class ConfigField(Field[FieldTypeVar]):
|
|
|
226
226
|
|
|
227
227
|
Returns
|
|
228
228
|
-------
|
|
229
|
-
value : object
|
|
229
|
+
value : `object`
|
|
230
230
|
The field's value. See *Notes*.
|
|
231
231
|
|
|
232
232
|
Notes
|
|
@@ -299,7 +299,7 @@ class ConfigField(Field[FieldTypeVar]):
|
|
|
299
299
|
Relative tolerance for floating point comparisons.
|
|
300
300
|
atol : `float`
|
|
301
301
|
Absolute tolerance for floating point comparisons.
|
|
302
|
-
output :
|
|
302
|
+
output : `collections.abc.Callable`
|
|
303
303
|
A callable that takes a string, used (possibly repeatedly) to
|
|
304
304
|
report inequalities.
|
|
305
305
|
|
|
@@ -446,7 +446,7 @@ class ConfigurableActionStructField(Field[ActionTypeVar]):
|
|
|
446
446
|
Relative tolerance for floating point comparisons.
|
|
447
447
|
atol : `float`
|
|
448
448
|
Absolute tolerance for floating point comparisons.
|
|
449
|
-
output :
|
|
449
|
+
output : `collections.abc.Callable`
|
|
450
450
|
A callable that takes a string, used (possibly repeatedly) to
|
|
451
451
|
report inequalities.
|
|
452
452
|
|
|
@@ -247,7 +247,7 @@ class ConfigurableField(Field[ConfigurableInstance[FieldTypeVar]]):
|
|
|
247
247
|
----------
|
|
248
248
|
doc : `str`
|
|
249
249
|
A description of the configuration field.
|
|
250
|
-
target : configurable class
|
|
250
|
+
target : `lsst.pipe.base.Task` or other configurable class
|
|
251
251
|
The configurable target. Configurables have a ``ConfigClass``
|
|
252
252
|
attribute. Within the task framework, configurables are
|
|
253
253
|
`lsst.pipe.base.Task` subclasses).
|
|
@@ -255,16 +255,16 @@ class ConfigurableField(Field[ConfigurableInstance[FieldTypeVar]]):
|
|
|
255
255
|
The subclass of `lsst.pex.config.Config` expected as the configuration
|
|
256
256
|
class of the ``target``. If ``ConfigClass`` is unset then
|
|
257
257
|
``target.ConfigClass`` is used.
|
|
258
|
-
default :
|
|
258
|
+
default : `type`, optional
|
|
259
259
|
The default configuration class. Normally this parameter is not set,
|
|
260
260
|
and defaults to ``ConfigClass`` (or ``target.ConfigClass``).
|
|
261
|
-
check :
|
|
261
|
+
check : `collections.abc.Callable`, optional
|
|
262
262
|
Callable that takes the field's value (the ``target``) as its only
|
|
263
263
|
positional argument, and returns `True` if the ``target`` is valid (and
|
|
264
264
|
`False` otherwise).
|
|
265
|
-
deprecated : None or `str`, optional
|
|
265
|
+
deprecated : `None` or `str`, optional
|
|
266
266
|
A description of why this Field is deprecated, including removal date.
|
|
267
|
-
If not None
|
|
267
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
268
268
|
|
|
269
269
|
See Also
|
|
270
270
|
--------
|
|
@@ -289,7 +289,7 @@ class ConfigurableField(Field[ConfigurableInstance[FieldTypeVar]]):
|
|
|
289
289
|
|
|
290
290
|
Parameters
|
|
291
291
|
----------
|
|
292
|
-
target :
|
|
292
|
+
target : `type`
|
|
293
293
|
The configurable being verified.
|
|
294
294
|
ConfigClass : `lsst.pex.config.Config`-type or `None`
|
|
295
295
|
The configuration class associated with the ``target``. This can
|
|
@@ -486,7 +486,7 @@ class ConfigurableField(Field[ConfigurableInstance[FieldTypeVar]]):
|
|
|
486
486
|
Relative tolerance for floating point comparisons.
|
|
487
487
|
atol : `float`
|
|
488
488
|
Absolute tolerance for floating point comparisons.
|
|
489
|
-
output :
|
|
489
|
+
output : `collections.abc.Callable`
|
|
490
490
|
A callable that takes a string, used (possibly repeatedly) to
|
|
491
491
|
report inequalities. For example: `print`.
|
|
492
492
|
|
lsst/pex/config/dictField.py
CHANGED
|
@@ -229,15 +229,15 @@ class DictField(Field[Dict[KeyTypeVar, ItemTypeVar]], Generic[KeyTypeVar, ItemTy
|
|
|
229
229
|
The default mapping.
|
|
230
230
|
optional : `bool`, optional
|
|
231
231
|
If `True`, the field doesn't need to have a set value.
|
|
232
|
-
dictCheck :
|
|
232
|
+
dictCheck : `collections.abc.Callable`
|
|
233
233
|
A function that validates the dictionary as a whole.
|
|
234
|
-
keyCheck :
|
|
234
|
+
keyCheck : `collections.abc.Callable`
|
|
235
235
|
A function that validates individual mapping keys.
|
|
236
|
-
itemCheck :
|
|
236
|
+
itemCheck : `collections.abc.Callable`
|
|
237
237
|
A function that validates individual mapping values.
|
|
238
|
-
deprecated : None or `str`, optional
|
|
238
|
+
deprecated : `None` or `str`, optional
|
|
239
239
|
A description of why this Field is deprecated, including removal date.
|
|
240
|
-
If not None
|
|
240
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
241
241
|
|
|
242
242
|
See Also
|
|
243
243
|
--------
|
|
@@ -439,7 +439,7 @@ class DictField(Field[Dict[KeyTypeVar, ItemTypeVar]], Generic[KeyTypeVar, ItemTy
|
|
|
439
439
|
Relative tolerance for floating point comparisons.
|
|
440
440
|
atol : `float`
|
|
441
441
|
Absolute tolerance for floating point comparisons.
|
|
442
|
-
output :
|
|
442
|
+
output : `collections.abc.Callable`
|
|
443
443
|
A callable that takes a string, used (possibly repeatedly) to
|
|
444
444
|
report inequalities.
|
|
445
445
|
|
lsst/pex/config/listField.py
CHANGED
|
@@ -57,7 +57,7 @@ class List(collections.abc.MutableSequence[FieldTypeVar]):
|
|
|
57
57
|
Config instance that contains the ``field``.
|
|
58
58
|
field : `ListField`
|
|
59
59
|
Instance of the `ListField` using this ``List``.
|
|
60
|
-
value :
|
|
60
|
+
value : `collections.abc.Sequence`
|
|
61
61
|
Sequence of values that are inserted into this ``List``.
|
|
62
62
|
at : `list` of `~lsst.pex.config.callStack.StackFrame`
|
|
63
63
|
The call stack (created by `lsst.pex.config.callStack.getCallStack`).
|
|
@@ -114,7 +114,7 @@ class List(collections.abc.MutableSequence[FieldTypeVar]):
|
|
|
114
114
|
----------
|
|
115
115
|
i : `int`
|
|
116
116
|
Index of the item in the `list`.
|
|
117
|
-
x : object
|
|
117
|
+
x : `object`
|
|
118
118
|
Item in the `list`.
|
|
119
119
|
|
|
120
120
|
Raises
|
|
@@ -215,7 +215,7 @@ class List(collections.abc.MutableSequence[FieldTypeVar]):
|
|
|
215
215
|
----------
|
|
216
216
|
i : `int`
|
|
217
217
|
Index where the item is inserted.
|
|
218
|
-
x : object
|
|
218
|
+
x : `object`
|
|
219
219
|
Item that is inserted.
|
|
220
220
|
at : `list` of `~lsst.pex.config.callStack.StackFrame` or `None`,\
|
|
221
221
|
optional
|
|
@@ -283,18 +283,18 @@ class ListField(Field[List[FieldTypeVar]], Generic[FieldTypeVar]):
|
|
|
283
283
|
----------
|
|
284
284
|
doc : `str`
|
|
285
285
|
A description of the field.
|
|
286
|
-
dtype :
|
|
286
|
+
dtype : `type`, optional
|
|
287
287
|
The data type of items in the list. Optional if supplied as typing
|
|
288
288
|
argument to the class.
|
|
289
|
-
default :
|
|
289
|
+
default : `collections.abc.Sequence`, optional
|
|
290
290
|
The default items for the field.
|
|
291
291
|
optional : `bool`, optional
|
|
292
292
|
Set whether the field is *optional*. When `False`,
|
|
293
293
|
`lsst.pex.config.Config.validate` will fail if the field's value is
|
|
294
294
|
`None`.
|
|
295
|
-
listCheck :
|
|
295
|
+
listCheck : `collections.abc.Callable`, optional
|
|
296
296
|
A callable that validates the list as a whole.
|
|
297
|
-
itemCheck :
|
|
297
|
+
itemCheck : `collections.abc.Callable`, optional
|
|
298
298
|
A callable that validates individual items in the list.
|
|
299
299
|
length : `int`, optional
|
|
300
300
|
If set, this field must contain exactly ``length`` number of items.
|
|
@@ -304,9 +304,9 @@ class ListField(Field[List[FieldTypeVar]], Generic[FieldTypeVar]):
|
|
|
304
304
|
maxLength : `int`, optional
|
|
305
305
|
If set, this field must contain *no more than* ``maxLength`` number of
|
|
306
306
|
items.
|
|
307
|
-
deprecated : None or `str`, optional
|
|
307
|
+
deprecated : `None` or `str`, optional
|
|
308
308
|
A description of why this Field is deprecated, including removal date.
|
|
309
|
-
If not None
|
|
309
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
310
310
|
|
|
311
311
|
See Also
|
|
312
312
|
--------
|
|
@@ -503,7 +503,7 @@ class ListField(Field[List[FieldTypeVar]], Generic[FieldTypeVar]):
|
|
|
503
503
|
Relative tolerance for floating point comparisons.
|
|
504
504
|
atol : `float`
|
|
505
505
|
Absolute tolerance for floating point comparisons.
|
|
506
|
-
output :
|
|
506
|
+
output : `collections.abc.Callable`
|
|
507
507
|
If not None, a callable that takes a `str`, used (possibly
|
|
508
508
|
repeatedly) to report inequalities.
|
|
509
509
|
|
lsst/pex/config/rangeField.py
CHANGED
|
@@ -56,9 +56,9 @@ class RangeField(Field):
|
|
|
56
56
|
If `True`, the ``min`` value is included in the allowed range.
|
|
57
57
|
inclusiveMax : `bool`, optional
|
|
58
58
|
If `True`, the ``max`` value is included in the allowed range.
|
|
59
|
-
deprecated : None or `str`, optional
|
|
59
|
+
deprecated : `None` or `str`, optional
|
|
60
60
|
A description of why this Field is deprecated, including removal date.
|
|
61
|
-
If not None
|
|
61
|
+
If not `None`, the string is appended to the docstring for this Field.
|
|
62
62
|
|
|
63
63
|
See Also
|
|
64
64
|
--------
|
lsst/pex/config/registry.py
CHANGED
|
@@ -42,7 +42,7 @@ class ConfigurableWrapper:
|
|
|
42
42
|
|
|
43
43
|
Parameters
|
|
44
44
|
----------
|
|
45
|
-
target : configurable class
|
|
45
|
+
target : `lsst.pipe.base.Task` or other configurable class
|
|
46
46
|
Target class.
|
|
47
47
|
ConfigClass : `type`
|
|
48
48
|
Config class.
|
|
@@ -135,7 +135,7 @@ class Registry(collections.abc.Mapping):
|
|
|
135
135
|
Name that the ``target`` is registered under. The target can
|
|
136
136
|
be accessed later with `dict`-like patterns using ``name`` as
|
|
137
137
|
the key.
|
|
138
|
-
target :
|
|
138
|
+
target : `lsst.pipe.base.Task` or other configurable type
|
|
139
139
|
A configurable type, usually a subclass of `lsst.pipe.base.Task`.
|
|
140
140
|
ConfigClass : `lsst.pex.config.Config`-type, optional
|
|
141
141
|
A subclass of `lsst.pex.config.Config` used to configure the
|
|
@@ -188,7 +188,7 @@ class Registry(collections.abc.Mapping):
|
|
|
188
188
|
----------
|
|
189
189
|
doc : `str`
|
|
190
190
|
A description of the field.
|
|
191
|
-
default : object
|
|
191
|
+
default : `object`, optional
|
|
192
192
|
The default target for the field.
|
|
193
193
|
optional : `bool`, optional
|
|
194
194
|
When `False`, `lsst.pex.config.Config.validate` fails if the
|
|
@@ -456,7 +456,7 @@ def registerConfig(name, registry, target):
|
|
|
456
456
|
Name of the ``target`` in the ``registry``.
|
|
457
457
|
registry : `Registry`
|
|
458
458
|
The registry containing the ``target``.
|
|
459
|
-
target :
|
|
459
|
+
target : `lsst.pipe.base.Task` or other configurable type
|
|
460
460
|
A configurable type, such as a subclass of `lsst.pipe.base.Task`.
|
|
461
461
|
|
|
462
462
|
See Also
|
lsst/pex/config/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "30.0.
|
|
2
|
+
__version__ = "30.0.1rc1"
|
lsst/pex/config/wrap.py
CHANGED
|
@@ -61,7 +61,7 @@ def makeConfigClass(ctrl, name=None, base=Config, doc=None, module=None, cls=Non
|
|
|
61
61
|
|
|
62
62
|
Parameters
|
|
63
63
|
----------
|
|
64
|
-
ctrl :
|
|
64
|
+
ctrl : `type`
|
|
65
65
|
C++ control class to wrap.
|
|
66
66
|
name : `str`, optional
|
|
67
67
|
Name of the new config class; defaults to the ``__name__`` of the
|
|
@@ -70,7 +70,7 @@ def makeConfigClass(ctrl, name=None, base=Config, doc=None, module=None, cls=Non
|
|
|
70
70
|
Base class for the config class.
|
|
71
71
|
doc : `str`, optional
|
|
72
72
|
Docstring for the config class.
|
|
73
|
-
module : object
|
|
73
|
+
module : `object`, `str`, `int`, or `None` optional
|
|
74
74
|
Either a module object, a string specifying the name of the module, or
|
|
75
75
|
an integer specifying how far back in the stack to look for the module
|
|
76
76
|
to use: 0 is the immediate caller of `~lsst.pex.config.wrap`. This will
|
|
@@ -78,7 +78,7 @@ def makeConfigClass(ctrl, name=None, base=Config, doc=None, module=None, cls=Non
|
|
|
78
78
|
will also be added to the module. Ignored if `None` or if ``cls`` is
|
|
79
79
|
not `None`. Defaults to None in which case module is looked up from the
|
|
80
80
|
module of ctrl.
|
|
81
|
-
cls :
|
|
81
|
+
cls : `type` [`lsst.pex.config.Config`]
|
|
82
82
|
An existing config class to use instead of creating a new one; name,
|
|
83
83
|
base doc, and module will be ignored if this is not `None`.
|
|
84
84
|
|
|
@@ -316,7 +316,7 @@ def wrap(ctrl):
|
|
|
316
316
|
|
|
317
317
|
Parameters
|
|
318
318
|
----------
|
|
319
|
-
ctrl : object
|
|
319
|
+
ctrl : `object`
|
|
320
320
|
The C++ control class.
|
|
321
321
|
|
|
322
322
|
Notes
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-pex-config
|
|
3
|
-
Version: 30.0.
|
|
3
|
+
Version: 30.0.1rc1
|
|
4
4
|
Summary: A flexible configuration system using Python files.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/lsst/pex_config
|
|
8
|
+
Project-URL: Source, https://github.com/lsst/pex_config
|
|
8
9
|
Keywords: lsst
|
|
9
10
|
Classifier: Intended Audience :: Science/Research
|
|
10
11
|
Classifier: Operating System :: OS Independent
|
|
11
12
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
17
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
17
|
-
Requires-Python: >=3.
|
|
18
|
+
Requires-Python: >=3.11.0
|
|
18
19
|
Description-Content-Type: text/x-rst
|
|
19
20
|
License-File: COPYRIGHT
|
|
20
21
|
License-File: LICENSE
|
|
@@ -22,6 +23,7 @@ License-File: gpl-v3.0.txt
|
|
|
22
23
|
License-File: bsd_license.txt
|
|
23
24
|
Requires-Dist: pyyaml>=5.1
|
|
24
25
|
Requires-Dist: numpy>=1.17
|
|
26
|
+
Requires-Dist: lsst-resources
|
|
25
27
|
Provides-Extra: test
|
|
26
28
|
Requires-Dist: pytest>=3.2; extra == "test"
|
|
27
29
|
Requires-Dist: pytest-openfiles>=0.5.0; extra == "test"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
lsst/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
|
|
2
|
+
lsst/pex/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
|
|
3
|
+
lsst/pex/config/__init__.py,sha256=wv2iwYszZA11Uyz4AFV2cnURBuKi2dHy9H-41FLzHvo,1282
|
|
4
|
+
lsst/pex/config/_doNotImportMe.py,sha256=AYqqE8aIHH711hPcZJssplBsIIW4xCbz2oZqRNheI3I,87
|
|
5
|
+
lsst/pex/config/callStack.py,sha256=qfD3FrqG7U_odTdd9BpNGmWopUw_fE2f3Yu_fk5mn60,5912
|
|
6
|
+
lsst/pex/config/choiceField.py,sha256=7tevtgxgJju6HwFBE1de3FUwh3gOzJOvVnrUzXYYg-w,4282
|
|
7
|
+
lsst/pex/config/comparison.py,sha256=4ZF8tLlGF2mR0log_aYvQfMbWcYQIqSo3VXBsek-W6E,6361
|
|
8
|
+
lsst/pex/config/config.py,sha256=nqXko3p0hVu17JK8cyO64D8pRacF5WIbF6rU_2rU6CA,67036
|
|
9
|
+
lsst/pex/config/configChoiceField.py,sha256=ZPcXE1OCM-XkUH7JVGQ3ExKWaHidCLohKYq6p47wvs8,24453
|
|
10
|
+
lsst/pex/config/configDictField.py,sha256=PFe0jn9RqZUGMBw5biBYK1H-7NWBrKfdYPeBP6vdO4g,12918
|
|
11
|
+
lsst/pex/config/configField.py,sha256=esu0VjB04ZMgcDkTt_VZVaAnoa3swEhO3FswzBbrR54,11692
|
|
12
|
+
lsst/pex/config/configurableField.py,sha256=nVCABJ1R3PsD-lsCSQr4VRoCox5B4A1uRRAB9n-uZh4,19040
|
|
13
|
+
lsst/pex/config/convert.py,sha256=dBTLjkcoh3lM6FxtY9DV33iLOtD6V0PMni6O2b9K4Ww,2397
|
|
14
|
+
lsst/pex/config/dictField.py,sha256=8lc6k4pos1FBIZgmTuF0HYfnfA9qujnhAQkpxMWWVVI,17538
|
|
15
|
+
lsst/pex/config/history.py,sha256=k6ecRik20basI2WAtYuhHd1TotrjB15Io59o2yMMqHg,8373
|
|
16
|
+
lsst/pex/config/listField.py,sha256=UYQodU2UWSp3-4yu4N61S3twdupV1lRoOXONxFcXFxU,18955
|
|
17
|
+
lsst/pex/config/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
+
lsst/pex/config/rangeField.py,sha256=shOHUL7zxiRbjqfDuuThq7AuLxZmZyANFUwd98hm0Ao,5433
|
|
19
|
+
lsst/pex/config/registry.py,sha256=Ew6eS6S3DWPfWHFiYDNOXeyXi9CrH6wGvvaSXstpGRg,15913
|
|
20
|
+
lsst/pex/config/version.py,sha256=-auEgPcWk4qAWrWVMJY7Of7dAJ0dNQHoqQraCNdAEN4,52
|
|
21
|
+
lsst/pex/config/wrap.py,sha256=Oc_H55EYFg9VNlQz4mvevq1TOcn6Z_kgLhwznJ9BcpU,12997
|
|
22
|
+
lsst/pex/config/configurableActions/__init__.py,sha256=kwMbhFr3LirwEqzgHij7CxWF_xki3UYeajzveb4vpTI,1039
|
|
23
|
+
lsst/pex/config/configurableActions/_configurableAction.py,sha256=KZiYYzIQHNeUhDxS1DMb_D9X28_LOzLyNXclaOW-ApY,2784
|
|
24
|
+
lsst/pex/config/configurableActions/_configurableActionField.py,sha256=E1uVrGIvu64QDJL76sW3LlIrR30-NJs0ZQeofy-iVEs,5353
|
|
25
|
+
lsst/pex/config/configurableActions/_configurableActionStructField.py,sha256=65dbNZ-HR3xVURYDX7tth2o0aC8zbZdCnNy9iZmBlEA,17772
|
|
26
|
+
lsst/pex/config/configurableActions/tests.py,sha256=aisHgzghfR4NFQD22NU2K5pNilCjAwcJTSMs0vK7dzI,3039
|
|
27
|
+
lsst_pex_config-30.0.1rc1.dist-info/licenses/COPYRIGHT,sha256=J3bcuh9PTaTU9iNjxE-9THWEwoo5drYshgYvZVgUKoI,381
|
|
28
|
+
lsst_pex_config-30.0.1rc1.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
29
|
+
lsst_pex_config-30.0.1rc1.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
30
|
+
lsst_pex_config-30.0.1rc1.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
31
|
+
lsst_pex_config-30.0.1rc1.dist-info/METADATA,sha256=B1qkUubOp3JrWvUQR8mr6eeYeJSSntHVC6T9qyVpQys,2292
|
|
32
|
+
lsst_pex_config-30.0.1rc1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
33
|
+
lsst_pex_config-30.0.1rc1.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
34
|
+
lsst_pex_config-30.0.1rc1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
35
|
+
lsst_pex_config-30.0.1rc1.dist-info/RECORD,,
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
lsst/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
|
|
2
|
-
lsst/pex/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
|
|
3
|
-
lsst/pex/config/__init__.py,sha256=wv2iwYszZA11Uyz4AFV2cnURBuKi2dHy9H-41FLzHvo,1282
|
|
4
|
-
lsst/pex/config/_doNotImportMe.py,sha256=AYqqE8aIHH711hPcZJssplBsIIW4xCbz2oZqRNheI3I,87
|
|
5
|
-
lsst/pex/config/callStack.py,sha256=HxcH1QpYERsR68sBLs8jqX3Gj85e28vhCCjCy6lnVaE,5917
|
|
6
|
-
lsst/pex/config/choiceField.py,sha256=S_ygw6coQaKNIstpQxKF-MMsX0agdEZtqZuEcK1EYJg,4277
|
|
7
|
-
lsst/pex/config/comparison.py,sha256=2zbOdMD5aOC3ccI2NJSxtiI59wLMmssuP9oxdXBvzaE,6320
|
|
8
|
-
lsst/pex/config/config.py,sha256=DPlN6tLVJawAaJPuxTjjDZQGYPnwWOv1cGq5myFoNQU,63028
|
|
9
|
-
lsst/pex/config/configChoiceField.py,sha256=CbISBYgMuKEJyed2G6f8XEodL-98O3L2Haxc8Dx_s1I,24439
|
|
10
|
-
lsst/pex/config/configDictField.py,sha256=gnVi52CHB3B0K-NNC3NUZDxi556pFJnVSF4-73JlJw4,12893
|
|
11
|
-
lsst/pex/config/configField.py,sha256=9jSPSHO_9p-499SmJgvMWBbizAl4p1jTQrtlib1gXHo,11655
|
|
12
|
-
lsst/pex/config/configurableField.py,sha256=-nYA54G6UJLVzB_lQgPRiCMQJ_yv9c-43uxyCJkH198,18995
|
|
13
|
-
lsst/pex/config/convert.py,sha256=dBTLjkcoh3lM6FxtY9DV33iLOtD6V0PMni6O2b9K4Ww,2397
|
|
14
|
-
lsst/pex/config/dictField.py,sha256=zCzW0yduPDKH_eSwtYT5pcTT-sAejcWvn6xwvH33HAE,17462
|
|
15
|
-
lsst/pex/config/history.py,sha256=k6ecRik20basI2WAtYuhHd1TotrjB15Io59o2yMMqHg,8373
|
|
16
|
-
lsst/pex/config/listField.py,sha256=H0j1TR3jTxUM80vcBWmoNlCCjd1HFSP15UxiR56gBxY,18856
|
|
17
|
-
lsst/pex/config/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
-
lsst/pex/config/rangeField.py,sha256=VmfcAoLYRJIdIsnFQIFlVYKrmNnfGX6Ef9enEYkFTx8,5429
|
|
19
|
-
lsst/pex/config/registry.py,sha256=JKy6kXOumSYDoOdHlg4oBGeQN7pmMSOgCJCXylEI6yM,15790
|
|
20
|
-
lsst/pex/config/version.py,sha256=CrAQNQjb1NNXqaNvScI53U2GvkmrnpRtyOiy0bIrcl4,52
|
|
21
|
-
lsst/pex/config/wrap.py,sha256=t8s5KzN2kJ-oW8AJTZrz4xAl0Qtpvnqo9H6rQKRBK_s,12964
|
|
22
|
-
lsst/pex/config/configurableActions/__init__.py,sha256=kwMbhFr3LirwEqzgHij7CxWF_xki3UYeajzveb4vpTI,1039
|
|
23
|
-
lsst/pex/config/configurableActions/_configurableAction.py,sha256=KZiYYzIQHNeUhDxS1DMb_D9X28_LOzLyNXclaOW-ApY,2784
|
|
24
|
-
lsst/pex/config/configurableActions/_configurableActionField.py,sha256=E1uVrGIvu64QDJL76sW3LlIrR30-NJs0ZQeofy-iVEs,5353
|
|
25
|
-
lsst/pex/config/configurableActions/_configurableActionStructField.py,sha256=HL53MsLh1DaKmZBD3midrHcB8tbJ46lNBwerjne0qrg,17754
|
|
26
|
-
lsst/pex/config/configurableActions/tests.py,sha256=aisHgzghfR4NFQD22NU2K5pNilCjAwcJTSMs0vK7dzI,3039
|
|
27
|
-
lsst_pex_config-30.0.0rc2.dist-info/licenses/COPYRIGHT,sha256=J3bcuh9PTaTU9iNjxE-9THWEwoo5drYshgYvZVgUKoI,381
|
|
28
|
-
lsst_pex_config-30.0.0rc2.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
29
|
-
lsst_pex_config-30.0.0rc2.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
30
|
-
lsst_pex_config-30.0.0rc2.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
31
|
-
lsst_pex_config-30.0.0rc2.dist-info/METADATA,sha256=mJscy7ZVKy3me7ddU2jrehkQdhZWvt1gQ4J0jM2wYho,2206
|
|
32
|
-
lsst_pex_config-30.0.0rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
33
|
-
lsst_pex_config-30.0.0rc2.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
34
|
-
lsst_pex_config-30.0.0rc2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
35
|
-
lsst_pex_config-30.0.0rc2.dist-info/RECORD,,
|
{lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/COPYRIGHT
RENAMED
|
File without changes
|
{lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/bsd_license.txt
RENAMED
|
File without changes
|
{lsst_pex_config-30.0.0rc2.dist-info → lsst_pex_config-30.0.1rc1.dist-info}/licenses/gpl-v3.0.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|