@@ -13,22 +13,29 @@ def _array_expr_enabled() -> builtins.bool:
1313
1414 global ARRAY_EXPR_ENABLED
1515
16- use_array_expr = dask .config .get ("array.query-planning" )
16+ use_array_expr : builtins .bool | None = dask .config .get ("array.query-planning" )
17+ if use_array_expr is None :
18+ use_array_expr = False # Eventually, this default will flip to True
19+ if not isinstance (use_array_expr , builtins .bool ):
20+ # Guard against "false" string in YAML config, which would evaluate to True
21+ raise TypeError ( # pragma: no cover
22+ "The 'array.query-planning' config must be True, False, or None"
23+ )
1724
18- if ARRAY_EXPR_ENABLED is not None :
19- if (use_array_expr is True and ARRAY_EXPR_ENABLED is False ) or (
20- use_array_expr is False and ARRAY_EXPR_ENABLED is True
21- ):
22- warnings .warn (
23- "The 'array.query-planning' config is now set to "
24- f"{ use_array_expr } , but query planning is already "
25- f"{ 'enabled' if ARRAY_EXPR_ENABLED else 'disabled' } . "
26- "The query-planning config can only be changed before "
27- "`dask.array` is first imported!"
28- )
29- return ARRAY_EXPR_ENABLED
25+ if ARRAY_EXPR_ENABLED is None :
26+ ARRAY_EXPR_ENABLED = use_array_expr
27+ return use_array_expr
3028
31- return builtins .bool (use_array_expr if use_array_expr is not None else False )
29+ if use_array_expr != ARRAY_EXPR_ENABLED :
30+ warnings .warn (
31+ "The 'array.query-planning' config is now set to "
32+ f"{ use_array_expr } , but query planning is already "
33+ f"{ 'enabled' if ARRAY_EXPR_ENABLED else 'disabled' } . "
34+ "The query-planning config can only be changed before "
35+ "`dask.array` is first imported!" ,
36+ RuntimeWarning ,
37+ )
38+ return ARRAY_EXPR_ENABLED
3239
3340
3441def array_expr_enabled () -> builtins .bool :
0 commit comments