Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
8f95bb2
dev
davidhassell Nov 16, 2022
815d933
dev
davidhassell Nov 16, 2022
1d8e39b
actify methods with @active_stage decorator
davidhassell Nov 17, 2022
24ec636
tidy
davidhassell Nov 17, 2022
d9c9c7f
refactor
davidhassell Nov 18, 2022
54bef6b
refactor
davidhassell Nov 18, 2022
eddd377
dev
davidhassell Nov 21, 2022
0825c56
dev
davidhassell Nov 22, 2022
033fed9
Merge branch 'lama-to-dask' of github.com:NCAS-CMS/cf-python into das…
davidhassell Dec 8, 2022
5d60f10
Merge branch 'dask-active-storage' of github.com:davidhassell/cf-pyth…
davidhassell Dec 8, 2022
044ccc9
dev
davidhassell Feb 8, 2023
f5d2834
dev
davidhassell Feb 9, 2023
02ce7b7
dev
davidhassell Feb 9, 2023
0d4276f
merge conflicts
davidhassell Feb 10, 2023
7dff9a0
linting
davidhassell Feb 10, 2023
ede2946
dev
davidhassell Feb 10, 2023
a32ced6
dev
davidhassell Feb 10, 2023
b24d521
dev
davidhassell Feb 11, 2023
669f3cd
dev
davidhassell Mar 2, 2023
248b67c
Merge branch 'main' of github.com:NCAS-CMS/cf-python into dask-active…
davidhassell Mar 2, 2023
b2b0c7e
dev
davidhassell Mar 2, 2023
e95a624
dev
davidhassell Mar 2, 2023
f74cf7a
dev
davidhassell Mar 3, 2023
d464a04
dev
davidhassell Mar 3, 2023
8bc3a92
dev
davidhassell Mar 3, 2023
68fb18a
dev
davidhassell Mar 17, 2023
3a5c3a2
dev
davidhassell Mar 17, 2023
bd1a1be
Merge branch 'main' of github.com:NCAS-CMS/cf-python into dask-active…
davidhassell Mar 17, 2023
9fcc737
dev
davidhassell Mar 17, 2023
a4c1267
Merge pull request #616 from davidhassell/dask-active-storage
davidhassell Mar 17, 2023
c2e7eca
move netcdf lock
davidhassell Mar 18, 2023
5ee6886
upstream merge
davidhassell Sep 25, 2023
064de91
dev
davidhassell Sep 25, 2023
1383a1d
Merge branch 'main' of github.com:davidhassell/cf-python into active-…
davidhassell Jan 18, 2024
bfbdb33
Merge branch 'main' of github.com:NCAS-CMS/cf-python into active-stor…
davidhassell Jan 22, 2024
78b7269
dev
davidhassell Jan 22, 2024
39a5a64
dev
davidhassell Jan 25, 2024
37f8b7f
dev
davidhassell Jan 25, 2024
fe429b7
dev
davidhassell Jan 26, 2024
417a297
dev
davidhassell Jan 26, 2024
5ef961c
dev
davidhassell Jan 26, 2024
2abc8c4
dev
davidhassell Jan 28, 2024
589bd16
dev
davidhassell Jan 28, 2024
92fc8e2
dev
davidhassell Jan 30, 2024
d54fc40
dev
davidhassell Feb 1, 2024
80ac2e6
dev
davidhassell Feb 2, 2024
62edeb8
dependency versions
davidhassell Feb 2, 2024
ebb94cc
dev
davidhassell Feb 2, 2024
af7c20a
dev
davidhassell Feb 4, 2024
31b2b64
dev
davidhassell Feb 5, 2024
7b6cabe
dev
davidhassell Feb 6, 2024
a038030
dev
davidhassell Feb 7, 2024
c6e94e7
dev
davidhassell Feb 8, 2024
3b8ae98
dev
davidhassell Feb 9, 2024
1f90a48
dev
davidhassell Feb 12, 2024
866ccca
dev
davidhassell Feb 13, 2024
baee889
dev
davidhassell Feb 13, 2024
8108dd6
dev
davidhassell Feb 13, 2024
28fdf10
dev
davidhassell Feb 14, 2024
4fcb960
dev
davidhassell Feb 14, 2024
96cdc8f
dev
davidhassell Feb 16, 2024
16131f8
dev
davidhassell Mar 4, 2024
1023ad0
dev
davidhassell Mar 4, 2024
4334cff
upstream merge
davidhassell Mar 5, 2024
6eef10a
dev
davidhassell Mar 5, 2024
e829e58
dev
davidhassell Mar 5, 2024
e2c892c
dev
davidhassell Mar 11, 2024
aa8d505
dev
davidhassell Mar 12, 2024
14a4de7
dev
davidhassell Mar 15, 2024
4825684
dev
davidhassell Mar 15, 2024
36f1ecc
dev
davidhassell Mar 15, 2024
df2f23b
dev
davidhassell Mar 15, 2024
d01d427
dev
davidhassell Mar 17, 2024
297f33b
dev
davidhassell Mar 17, 2024
c7a9cb9
dev
davidhassell Mar 17, 2024
d48a7cf
dev
davidhassell Mar 18, 2024
1c73b89
dev
davidhassell Mar 18, 2024
80d533d
dev
davidhassell Mar 18, 2024
4bfa673
dev
davidhassell Mar 19, 2024
82079fd
dev
davidhassell Mar 19, 2024
9e6d4a2
dev
davidhassell Mar 19, 2024
be63ec7
dev
davidhassell Mar 20, 2024
2a16242
dev
davidhassell Mar 20, 2024
b3907b2
dev
davidhassell Mar 20, 2024
b8b52a7
dev
davidhassell Mar 20, 2024
81f3794
dev
davidhassell Mar 21, 2024
8c39e35
dev
davidhassell Mar 21, 2024
146b4ef
dev
davidhassell Mar 21, 2024
7e633e6
dev
davidhassell Mar 22, 2024
2ac6cbd
dev
davidhassell Mar 22, 2024
9b373ae
dev
davidhassell Mar 22, 2024
128e7ef
main merge conflicts
davidhassell Mar 26, 2024
2aca4a1
Merge branch 'active-storage' of github.com:davidhassell/cf-python in…
davidhassell Mar 26, 2024
080f227
dev
davidhassell Mar 26, 2024
b127508
dev
davidhassell Apr 3, 2024
3a2ad82
dev
davidhassell Apr 3, 2024
157eeea
dev
davidhassell Apr 4, 2024
ab45235
Merge branch 'main' of github.com:NCAS-CMS/cf-python into active-storage
davidhassell Apr 4, 2024
930812b
dev
davidhassell Apr 4, 2024
0ff02be
Merge branch 'main' of github.com:NCAS-CMS/cf-python into active-storage
davidhassell Apr 5, 2024
a3f805c
dev
davidhassell Apr 5, 2024
75e4897
dev
davidhassell Apr 5, 2024
222a18b
dev
davidhassell Apr 5, 2024
bdbbd6c
dev
davidhassell Apr 6, 2024
d4ec974
dev
davidhassell Apr 8, 2024
20dc358
dev
davidhassell Apr 8, 2024
b3dc1bd
dev
davidhassell Apr 20, 2024
7987bde
dev
davidhassell Apr 21, 2024
18b3e09
dev
davidhassell Apr 22, 2024
87e249e
2-d np index
davidhassell Apr 23, 2024
6973177
dask vn
davidhassell Apr 23, 2024
bac1cc8
fragment get_array
davidhassell Apr 24, 2024
bd625f5
dev
davidhassell Apr 25, 2024
a279f21
Merge branch 'active-storage' of github.com:davidhassell/cf-python in…
davidhassell Apr 26, 2024
aa6d04c
dev
davidhassell May 1, 2024
d05c50b
dev
davidhassell May 2, 2024
9b56aae
engine -> backend
davidhassell Jul 10, 2024
68dce62
merge conflicts
davidhassell Jul 12, 2024
88cdbe6
dev
davidhassell Jul 15, 2024
a1dc78f
new non-dask code start
davidhassell Jul 19, 2024
dc4ce6f
dev
davidhassell Jul 19, 2024
eff61c1
dev
davidhassell Jul 19, 2024
03eeb8c
dev
davidhassell Jul 19, 2024
4c6adad
dev
davidhassell Jul 19, 2024
8125510
dev
davidhassell Jul 22, 2024
57561a0
dev
davidhassell Aug 6, 2024
581648d
dev
davidhassell Aug 6, 2024
baf9898
Fix typos
davidhassell Oct 21, 2024
8697288
Remove dead code
davidhassell Oct 21, 2024
03067a2
Remove dead code
davidhassell Oct 21, 2024
20fe071
When a note isn't a note
davidhassell Oct 21, 2024
ef8d9ae
trap no fragment files
davidhassell Oct 21, 2024
8b0086e
Typo
davidhassell Oct 21, 2024
bd45bda
Update cf.environment docs
davidhassell Oct 21, 2024
e2bdf64
Clarify is_log_level_info docs
davidhassell Oct 21, 2024
af54bd1
dev
davidhassell Oct 21, 2024
cc5aca1
Merge branch 'active-storage-new' of github.com:davidhassell/cf-pytho…
davidhassell Oct 21, 2024
df7a672
Fix typos
davidhassell Oct 22, 2024
9b4f721
Fix typos
davidhassell Oct 22, 2024
7dd8ff5
Typo
davidhassell Oct 22, 2024
96eb691
activestorage installation instructions
davidhassell Oct 22, 2024
2f9a47f
Typo
davidhassell Oct 22, 2024
9b0e8a6
dask_task_graph.png -> dask_task_graph.svg
davidhassell Oct 22, 2024
6af723c
remove redundant active_storage test
davidhassell Oct 22, 2024
dc173a3
fix active doc string
davidhassell Oct 22, 2024
0509135
trap: No module named 'activestorage'
davidhassell Oct 22, 2024
b72c17b
correct hdf5 chunks after data operations
davidhassell Oct 22, 2024
dd92b55
set default mtol=1 everywhere, and update docstrings
davidhassell Oct 22, 2024
66b84ae
warning note about current and futiue Active class APIs
davidhassell Oct 22, 2024
edc51cd
warning note about current and future Active class APIs
davidhassell Oct 22, 2024
9e0b446
linting
davidhassell Oct 22, 2024
885a67d
Fix missing methods in on-line API docs
davidhassell Oct 23, 2024
5d03edf
Remove dead code
davidhassell Oct 23, 2024
e90430a
\emptyset
davidhassell Oct 23, 2024
4db0276
asanyarray0
davidhassell Oct 23, 2024
d75dcd1
asanyarray changes
davidhassell Oct 25, 2024
9d8f8bb
dev
davidhassell Oct 28, 2024
93fa1f0
Active storage placeholder
davidhassell Oct 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions cf/data/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ def __init__(
self._set_dask(array, copy=copy, clear=_NONE)
else:
self._set_dask(
array, copy=copy, clear=_NONE, asanyarray=None
array, copy=copy, clear=_NONE, __asanyarray__=None
)
else:
self._del_dask(None, clear=_NONE)
Expand Down Expand Up @@ -515,7 +515,7 @@ def __init__(

# REVIEW: getitem: `__init__`: set 'asanyarray'
# Store the dask array
self._set_dask(dx, clear=_NONE, asanyarray=None)
self._set_dask(dx, clear=_NONE, __asanyarray__=None)

# Override the data type
if dtype is not None:
Expand Down Expand Up @@ -966,7 +966,7 @@ def __getitem__(self, indices):
# so we set asanyarray=True to ensure that, if required,
# they are converted at compute time.
# ------------------------------------------------------------
new._set_dask(dx, asanyarray=True)
new._set_dask(dx, __asanyarray__=True)

# ------------------------------------------------------------
# Get the axis identifiers for the subspace
Expand Down Expand Up @@ -1184,19 +1184,19 @@ def __setitem__(self, indices, value):
# REVIEW: getitem: `__asanyarray__`: new property `__asanyarray__`
@property
def __asanyarray__(self):
"""Whether the chunks need conversion to a `numpy` array.
"""Whether the chunks need conversion to `numpy` arrays.

.. versionadded:: NEXTVERSION

:Returns:

`bool`
If True then at compute time add a final operation
(not in-place) to the Dask graph that converts a
chunk's array object to a `numpy` array if the array
object has an `__asanyarray__` attribute that is
`True`, or else does nothing. If False then do not add
this operation.
If True then at compute time add to the Dask graph
(not in-place) a `cf_asanyarray` operation, which
converts a chunk's array object to a `numpy` array,
but only if the array object itself has an
`__asanyarray__` attribute that is `True`. If False
then this operation is not added to the Dask graph.

"""
return self._custom.get("__asanyarray__", True)
Expand Down Expand Up @@ -1415,7 +1415,7 @@ def _clear_after_dask_update(self, clear=_ALL):
self._cfa_del_write()

# REVIEW: getitem: `_set_dask`: new keyword 'asanyarray'
def _set_dask(self, dx, copy=False, clear=_ALL, asanyarray=False):
def _set_dask(self, dx, copy=False, clear=_ALL, __asanyarray__=False):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know we spoke about this today and agreed that a leading underscore to indicate internal-use intent for asanyarray is a good idea, but having both trailing and leading dunderscores for a name is meant to be reserved for special Python methods, so I don't think it is a good idea to have __asanyarray__ for anything, unless you want to elevate asanyarray in these cases to the level of a 'magic' method? I personally think it is misleading so best keep it as _anyanyarray in these cases too.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree - __asanyarray__= has gone!

"""Set the dask array.

.. versionadded:: 3.14.0
Expand All @@ -1438,9 +1438,9 @@ def _set_dask(self, dx, copy=False, clear=_ALL, asanyarray=False):
results in all components being removed. See
`_clear_after_dask_update` for details.

asanyarray: `bool` or `None`, optional
If `None` then do nothing. Otherwise set
`__asanyarray__` to the Boolean value of *asanyarray*.
__asanyarray__: `bool` or `None`, optional
If `None` then do nothing. Otherwise set the
`__asanyarray__` attribute to *__asanyarray__*.

.. versionadded:: NEXTVERSION

Expand Down Expand Up @@ -1474,8 +1474,8 @@ def _set_dask(self, dx, copy=False, clear=_ALL, asanyarray=False):
custom = self._custom
custom["dask"] = dx
# REVIEW: getitem: `_set_dask`: set '__asanyarray__'
if asanyarray is not None:
custom["__asanyarray__"] = bool(asanyarray)
if __asanyarray__ is not None:
custom["__asanyarray__"] = bool(__asanyarray__)

self._clear_after_dask_update(clear)

Expand Down Expand Up @@ -3245,7 +3245,7 @@ def rechunk(

dx = d.to_dask_array(asanyarray=False)
dx = dx.rechunk(chunks, threshold, block_size_limit, balance)
d._set_dask(dx, clear=_ALL ^ _ARRAY ^ _CACHE, asanyarray=True)
d._set_dask(dx, clear=_ALL ^ _ARRAY ^ _CACHE, __asanyarray__=True)

return d

Expand Down Expand Up @@ -4258,7 +4258,7 @@ def concatenate(

# REVIEW: getitem: `concatenate`: set 'asanyarray'
# Set the new dask array
data0._set_dask(dx, clear=_ALL ^ cfa, asanyarray=asanyarray)
data0._set_dask(dx, clear=_ALL ^ cfa, __asanyarray__=asanyarray)

# Set appropriate cached elements
cached_elements = {}
Expand Down Expand Up @@ -6858,7 +6858,7 @@ def add_file_location(self, location):
if updated:
dx = self.to_dask_array(asanyarray=False)
dx = da.Array(dsk, dx.name, dx.chunks, dx.dtype, dx._meta)
self._set_dask(dx, clear=_NONE, asanyarray=None)
self._set_dask(dx, clear=_NONE, __asanyarray__=None)

return location

Expand Down Expand Up @@ -10231,7 +10231,7 @@ def del_file_location(self, location):
if updated:
dx = self.to_dask_array(asanyarray=False)
dx = da.Array(dsk, dx.name, dx.chunks, dx.dtype, dx._meta)
self._set_dask(dx, clear=_NONE, asanyarray=None)
self._set_dask(dx, clear=_NONE, __asanyarray__=None)

return location

Expand Down Expand Up @@ -11693,7 +11693,7 @@ def cull_graph(self):
dx = self.to_dask_array(asanyarray=False)
dsk, _ = cull(dx.dask, dx.__dask_keys__())
dx = da.Array(dsk, name=dx.name, chunks=dx.chunks, dtype=dx.dtype)
self._set_dask(dx, clear=_NONE, asanyarray=None)
self._set_dask(dx, clear=_NONE, __asanyarray__=None)

@_deprecated_kwarg_check("i", version="3.0.0", removed_at="4.0.0")
@_inplace_enabled(default=False)
Expand Down