Skip to content

Commit c14a473

Browse files
committed
refactor: move is_XXX from ak._do to ak._meta
1 parent 6dd371b commit c14a473

File tree

13 files changed

+68
-76
lines changed

13 files changed

+68
-76
lines changed

src/awkward/_do/meta.py

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -3,67 +3,13 @@
33
from __future__ import annotations
44

55
from awkward._nplikes.numpy_like import NumpyMetadata
6-
from awkward._typing import TYPE_CHECKING, TypeGuard, TypeVar
6+
from awkward._typing import TYPE_CHECKING
77

88
if TYPE_CHECKING:
9-
from awkward._meta.bitmaskedmeta import BitMaskedMeta
10-
from awkward._meta.bytemaskedmeta import ByteMaskedMeta
11-
from awkward._meta.indexedmeta import IndexedMeta
12-
from awkward._meta.indexedoptionmeta import IndexedOptionMeta
13-
from awkward._meta.listmeta import ListMeta
14-
from awkward._meta.listoffsetmeta import ListOffsetMeta
159
from awkward._meta.meta import Meta
16-
from awkward._meta.numpymeta import NumpyMeta
17-
from awkward._meta.recordmeta import RecordMeta
18-
from awkward._meta.regularmeta import RegularMeta
19-
from awkward._meta.unionmeta import UnionMeta
20-
from awkward._meta.unmaskedmeta import UnmaskedMeta
2110

2211
np = NumpyMetadata.instance()
2312

2413

25-
T = TypeVar("T", bound="Meta")
26-
27-
28-
def is_option(
29-
meta: Meta
30-
) -> TypeGuard[IndexedOptionMeta | BitMaskedMeta | ByteMaskedMeta | UnmaskedMeta]:
31-
return meta.is_option
32-
33-
34-
def is_list(meta: Meta) -> TypeGuard[RegularMeta | ListOffsetMeta | ListMeta]:
35-
return meta.is_list
36-
37-
38-
def is_numpy(meta: Meta) -> TypeGuard[NumpyMeta]:
39-
return meta.is_numpy
40-
41-
42-
def is_regular(meta: Meta) -> TypeGuard[RegularMeta]:
43-
return meta.is_regular
44-
45-
46-
def is_union(meta: Meta) -> TypeGuard[UnionMeta]:
47-
return meta.is_union
48-
49-
50-
def is_record(meta: Meta) -> TypeGuard[RecordMeta]:
51-
return meta.is_record
52-
53-
54-
def is_indexed(meta: Meta) -> TypeGuard[IndexedOptionMeta, IndexedMeta]:
55-
return meta.is_indexed
56-
57-
58-
# FIXME: narrow this to have `is_tuple` be a const True
59-
def is_record_tuple(meta: Meta) -> TypeGuard[RecordMeta]:
60-
return meta.is_record and meta.is_tuple
61-
62-
63-
# FIXME: narrow this to have `is_tuple` be a const False
64-
def is_record_record(meta: Meta) -> TypeGuard[RecordMeta]:
65-
return meta.is_record and not meta.is_tuple
66-
67-
6814
def mergeable(one: Meta, two: Meta, mergebool: bool = True) -> bool:
6915
return one._mergeable_next(two, mergebool=mergebool)

src/awkward/_meta/bitmaskedmeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_option
76
from awkward._parameters import type_parameters_equal
87
from awkward._typing import JSONSerializable
98

src/awkward/_meta/bytemaskedmeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_option
76
from awkward._parameters import type_parameters_equal
87
from awkward._typing import JSONSerializable
98

src/awkward/_meta/indexedmeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_option
76
from awkward._parameters import type_parameters_equal
87
from awkward._typing import JSONSerializable
98

src/awkward/_meta/indexedoptionmeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_option
76
from awkward._parameters import type_parameters_equal
87
from awkward._typing import JSONSerializable
98

src/awkward/_meta/listmeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_list, is_numpy, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_list, is_numpy, is_option
76
from awkward._parameters import type_parameters_equal
87
from awkward._typing import JSONSerializable
98

src/awkward/_meta/listoffsetmeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_list, is_numpy, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_list, is_numpy, is_option
76
from awkward._parameters import type_parameters_equal
87
from awkward._typing import JSONSerializable
98

src/awkward/_meta/meta.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,68 @@
33
from __future__ import annotations
44

55
from awkward._typing import (
6+
TYPE_CHECKING,
67
ClassVar,
78
JSONMapping,
89
JSONSerializable,
910
Self,
11+
TypeGuard,
1012
)
1113
from awkward._util import UNSET, Sentinel
1214

15+
if TYPE_CHECKING:
16+
from awkward._meta.bitmaskedmeta import BitMaskedMeta
17+
from awkward._meta.bytemaskedmeta import ByteMaskedMeta
18+
from awkward._meta.indexedmeta import IndexedMeta
19+
from awkward._meta.indexedoptionmeta import IndexedOptionMeta
20+
from awkward._meta.listmeta import ListMeta
21+
from awkward._meta.listoffsetmeta import ListOffsetMeta
22+
from awkward._meta.numpymeta import NumpyMeta
23+
from awkward._meta.recordmeta import RecordMeta
24+
from awkward._meta.regularmeta import RegularMeta
25+
from awkward._meta.unionmeta import UnionMeta
26+
from awkward._meta.unmaskedmeta import UnmaskedMeta
27+
28+
29+
def is_option(
30+
meta: Meta
31+
) -> TypeGuard[IndexedOptionMeta | BitMaskedMeta | ByteMaskedMeta | UnmaskedMeta]:
32+
return meta.is_option
33+
34+
35+
def is_list(meta: Meta) -> TypeGuard[RegularMeta | ListOffsetMeta | ListMeta]:
36+
return meta.is_list
37+
38+
39+
def is_numpy(meta: Meta) -> TypeGuard[NumpyMeta]:
40+
return meta.is_numpy
41+
42+
43+
def is_regular(meta: Meta) -> TypeGuard[RegularMeta]:
44+
return meta.is_regular
45+
46+
47+
def is_union(meta: Meta) -> TypeGuard[UnionMeta]:
48+
return meta.is_union
49+
50+
51+
def is_record(meta: Meta) -> TypeGuard[RecordMeta]:
52+
return meta.is_record
53+
54+
55+
def is_indexed(meta: Meta) -> TypeGuard[IndexedOptionMeta | IndexedMeta]:
56+
return meta.is_indexed
57+
58+
59+
# FIXME: narrow this to have `is_tuple` be a const True
60+
def is_record_tuple(meta: Meta) -> TypeGuard[RecordMeta]:
61+
return meta.is_record and meta.is_tuple
62+
63+
64+
# FIXME: narrow this to have `is_tuple` be a const False
65+
def is_record_record(meta: Meta) -> TypeGuard[RecordMeta]:
66+
return meta.is_record and not meta.is_tuple
67+
1368

1469
class Meta:
1570
is_numpy: ClassVar[bool] = False

src/awkward/_meta/numpymeta.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import is_indexed, is_numpy, is_option
6-
from awkward._meta.meta import Meta
5+
from awkward._meta.meta import Meta, is_indexed, is_numpy, is_option
76
from awkward._nplikes.numpy_like import NumpyMetadata
87
from awkward._nplikes.shape import ShapeItem
98
from awkward._parameters import type_parameters_equal

src/awkward/_meta/recordmeta.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
from __future__ import annotations
44

5-
from awkward._do.meta import (
5+
from awkward._meta.meta import (
6+
Meta,
67
is_indexed,
78
is_option,
89
is_record,
910
is_record_record,
1011
is_record_tuple,
1112
)
12-
from awkward._meta.meta import Meta
1313
from awkward._parameters import type_parameters_equal
1414
from awkward._regularize import is_integer
1515
from awkward._typing import JSONSerializable

0 commit comments

Comments
 (0)