File tree 5 files changed +50
-10
lines changed
5 files changed +50
-10
lines changed Original file line number Diff line number Diff line change
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2023 Scipp contributors (https://github.com/scipp)
3
+
4
+ from typing import MutableMapping
5
+
6
+ import scipp as sc
7
+
8
+
9
+ def get_attrs (da : sc .DataArray ) -> MutableMapping [str , sc .Variable ]:
10
+ try :
11
+ # During deprecation phase
12
+ return da .deprecated_attrs
13
+ except AttributeError :
14
+ try :
15
+ # Before deprecation phase
16
+ return da .attrs
17
+ except AttributeError :
18
+ # After deprecation phase / removal of attrs
19
+ return da .coords
20
+
21
+
22
+ def get_meta (da : sc .DataArray ) -> MutableMapping [str , sc .Variable ]:
23
+ try :
24
+ # During deprecation phase
25
+ return da .deprecated_meta
26
+ except AttributeError :
27
+ try :
28
+ # Before deprecation phase
29
+ return da .meta
30
+ except AttributeError :
31
+ # After deprecation phase / removal of attrs
32
+ return da .coords
Original file line number Diff line number Diff line change 9
9
10
10
import scipp as sc
11
11
12
+ from ..._migration import get_attrs
12
13
from ...logging import get_logger
13
14
from .corrections import merge_calibration
14
15
@@ -153,7 +154,7 @@ def to_dspacing_with_calibration(
153
154
# should be able to remove this.
154
155
for key in ('difc' , 'difa' , 'tzero' ):
155
156
if key not in out .coords :
156
- out .coords [key ] = out . deprecated_attrs .pop (key )
157
+ out .coords [key ] = get_attrs ( out ) .pop (key )
157
158
158
159
out = out .transform_coords ('dspacing' , graph = graph , keep_intermediate = False )
159
160
out .coords .pop ('_tag_positions_consumed' , None )
Original file line number Diff line number Diff line change 6
6
import numpy as np
7
7
import scipp as sc
8
8
9
+ from .._migration import get_meta
9
10
from ..logging import get_logger
10
11
from . import i_of_q
11
12
from .common import gravity_vector
@@ -28,9 +29,9 @@ def center_of_mass(data: sc.DataArray) -> sc.Variable:
28
29
:
29
30
The position of the center-of-mass, as a vector.
30
31
"""
31
- summed = data .sum (list (set (data .dims ) - set (data . deprecated_meta ['position' ].dims )))
32
+ summed = data .sum (list (set (data .dims ) - set (get_meta ( data ) ['position' ].dims )))
32
33
v = sc .values (summed .data )
33
- return sc .sum (summed . deprecated_meta ['position' ] * v ) / v .sum ()
34
+ return sc .sum (get_meta ( summed ) ['position' ] * v ) / v .sum ()
34
35
35
36
36
37
def _offsets_to_vector (data : sc .DataArray , xy : List [float ], graph : dict ) -> sc .Variable :
@@ -339,7 +340,7 @@ def beam_center(
339
340
This is what is now implemented in this version of the algorithm.
340
341
""" # noqa: E501
341
342
logger = get_logger ('sans' )
342
- if 'gravity' not in data . deprecated_meta :
343
+ if 'gravity' not in get_meta ( data ) :
343
344
data = data .copy (deep = False )
344
345
data .coords ['gravity' ] = gravity_vector ()
345
346
# Use center of mass to get initial guess for beam center
Original file line number Diff line number Diff line change 6
6
import scipp as sc
7
7
from scipp .scipy .interpolate import interp1d
8
8
9
+ from .._migration import get_meta
9
10
from ..logging import get_logger
10
11
from . import conversions , normalization
11
12
from .common import gravity_vector , mask_range
@@ -160,7 +161,7 @@ def convert_to_q_and_merge_spectra(
160
161
:
161
162
The input data converted to Q and then summed over all detector pixels.
162
163
"""
163
- if gravity and ('gravity' not in data . deprecated_meta ):
164
+ if gravity and ('gravity' not in get_meta ( data ) ):
164
165
data = data .copy (deep = False )
165
166
data .coords ["gravity" ] = gravity_vector ()
166
167
@@ -329,7 +330,7 @@ def to_I_of_Q(
329
330
# Insert a copy of coords needed for conversion to Q.
330
331
# TODO: can this be avoided by copying the Q coords from the converted numerator?
331
332
for coord in ['position' , 'sample_position' , 'source_position' ]:
332
- denominator .coords [coord ] = data . deprecated_meta [coord ]
333
+ denominator .coords [coord ] = get_meta ( data ) [coord ]
333
334
334
335
# In the case where no wavelength bands are requested, we create a single wavelength
335
336
# band to make sure we select the correct wavelength range that corresponds to
Original file line number Diff line number Diff line change 4
4
5
5
import scipp as sc
6
6
7
+ from .._migration import get_attrs
8
+
7
9
8
10
def _stitch_dense_data (
9
11
item : sc .DataArray ,
@@ -47,10 +49,13 @@ def _stitch_dense_data(
47
49
),
48
50
coords = {new_dim : new_coord },
49
51
)
50
- for group in ["coords" , "deprecated_attrs" ]:
51
- for key in getattr (item , group ):
52
- if key != dim :
53
- getattr (out , group )[key ] = getattr (item , group )[key ].copy ()
52
+
53
+ for key in item .coords :
54
+ if key != dim :
55
+ out .coords [key ] = item .coords [key ].copy ()
56
+ for key in get_attrs (item ):
57
+ if key != dim :
58
+ get_attrs (out )[key ] = get_attrs (item )[key ].copy ()
54
59
55
60
for i in range (frames .sizes ["frame" ]):
56
61
section = item [
You can’t perform that action at this time.
0 commit comments