Contents¶
Strategies for Contents (layouts).
These strategies are related to the section of Awkward Array User Guide "Direct constructors".
Functions:
| Name | Description |
|---|---|
contents |
Strategy for Awkward Array content layouts. |
content_lists |
Strategy for lists of contents within a size budget. |
leaf_contents |
Strategy for leaf content types. |
empty_array_contents |
Strategy for EmptyArray content. |
numpy_array_contents |
Strategy for NumpyArray content. |
regular_array_contents |
Strategy for RegularArray Content wrapping child Content. |
list_array_contents |
Strategy for ListArray Content wrapping child Content. |
list_offset_array_contents |
Strategy for ListOffsetArray Content wrapping child Content. |
string_contents |
Strategy for ListOffsetArray string content. |
bytestring_contents |
Strategy for ListOffsetArray bytestring content. |
record_array_contents |
Strategy for RecordArray Content from a list of child Contents. |
option_contents |
Strategy for option-type content, selected by |
indexed_option_array_contents |
Strategy for IndexedOptionArray Content wrapping child Content. |
byte_masked_array_contents |
Strategy for ByteMaskedArray Content wrapping child Content. |
bit_masked_array_contents |
Strategy for BitMaskedArray Content wrapping child Content. |
unmasked_array_contents |
Strategy for UnmaskedArray Content wrapping child Content. |
union_array_contents |
Strategy for UnionArray Content from a list of child Contents. |
contents ¶
contents(
draw: DrawFn,
*,
dtypes: SearchStrategy[dtype] | None = None,
max_size: int = 50,
allow_nan: bool = True,
allow_numpy: bool = True,
allow_empty: bool = True,
allow_string: bool = True,
allow_bytestring: bool = True,
allow_regular: bool = True,
allow_list_offset: bool = True,
allow_list: bool = True,
allow_record: bool = True,
allow_union: bool = True,
allow_union_root: bool = True,
allow_indexed_option: bool = True,
allow_byte_masked: bool = True,
allow_bit_masked: bool = True,
allow_unmasked: bool = True,
allow_option_root: bool = True,
max_leaf_size: int | None = None,
max_depth: int = 5,
max_length: int | None = None,
) -> Content
Strategy for Awkward Array content layouts.
The current implementation generates the following layouts:
EmptyArrayNumpyArrayRegularArrayListArrayListOffsetArray- Strings
- Bytestrings
RecordArrayIndexedOptionArrayByteMaskedArrayBitMaskedArrayUnmaskedArrayUnionArray
Each type can be excluded separately with the corresponding allow_* argument.
The max_size is the main argument for constraining the array size. It counts most
of the scalar values in the layout, including data elements, offsets, indices, field
names, and parameters. The array size can also be constrained with
max_leaf_size, max_depth, and max_length.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dtypes
|
SearchStrategy[dtype] | None
|
A strategy for NumPy scalar dtypes used in |
None
|
max_size
|
int
|
Upper bound on |
50
|
allow_nan
|
bool
|
No |
True
|
allow_numpy
|
bool
|
No |
True
|
allow_empty
|
bool
|
No |
True
|
allow_string
|
bool
|
No string content is generated if |
True
|
allow_bytestring
|
bool
|
No bytestring content is generated if |
True
|
allow_regular
|
bool
|
No |
True
|
allow_list_offset
|
bool
|
No |
True
|
allow_list
|
bool
|
No |
True
|
allow_record
|
bool
|
No |
True
|
allow_union
|
bool
|
No |
True
|
allow_union_root
|
bool
|
The outermost content node cannot be a |
True
|
allow_indexed_option
|
bool
|
No |
True
|
allow_byte_masked
|
bool
|
No |
True
|
allow_bit_masked
|
bool
|
No |
True
|
allow_unmasked
|
bool
|
No |
True
|
allow_option_root
|
bool
|
The outermost content node cannot be an option type if |
True
|
max_leaf_size
|
int | None
|
Maximum total number of leaf elements in the generated content. Each numerical value, including complex and datetime, counts as one. Each string and bytestring (not character or byte) counts as one. |
None
|
max_depth
|
int
|
Maximum nesting depth. At each level below this limit, a coin flip decides whether to descend further or produce a leaf. Each RegularArray, ListOffsetArray, ListArray, RecordArray, and UnionArray layer adds one level, excluding those that form string or bytestring content. |
5
|
max_length
|
int | None
|
Maximum |
None
|
Examples:
content_lists ¶
content_lists(
draw: DrawFn,
st_content: StContent = contents,
*,
max_size: int = 50,
max_leaf_size: int | None = None,
min_len: int = 0,
max_len: int | None = None,
all_option_or_none: bool = False,
st_option: StOption | None = None,
) -> list[Content]
Strategy for lists of contents within a size budget.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
st_content
|
StContent
|
A callable that accepts |
contents
|
max_size
|
int
|
Upper bound on total |
50
|
max_leaf_size
|
int | None
|
Maximum total number of leaf elements across all contents in the list. |
None
|
min_len
|
int
|
Minimum number of contents in the list. |
0
|
max_len
|
int | None
|
Maximum number of contents in the list. By default there is no upper bound. |
None
|
all_option_or_none
|
bool
|
If |
False
|
st_option
|
StOption | None
|
A callable conforming to |
None
|
leaf_contents ¶
leaf_contents(
*,
dtypes: SearchStrategy[dtype] | None = None,
allow_nan: bool = True,
min_size: int = 0,
max_size: int = 10,
allow_numpy: bool = True,
allow_empty: bool = True,
allow_string: bool = True,
allow_bytestring: bool = True,
) -> st.SearchStrategy[
NumpyArray | EmptyArray | ListOffsetArray
]
Strategy for leaf content types.
Produces one of NumpyArray, EmptyArray, string, or bytestring content, selected by
st.one_of.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dtypes
|
SearchStrategy[dtype] | None
|
A strategy for NumPy scalar dtypes used in |
None
|
allow_nan
|
bool
|
No |
True
|
min_size
|
int
|
Minimum number of elements. |
0
|
max_size
|
int
|
Maximum number of elements. |
10
|
allow_numpy
|
bool
|
No |
True
|
allow_empty
|
bool
|
No |
True
|
allow_string
|
bool
|
No string content is generated if |
True
|
allow_bytestring
|
bool
|
No bytestring content is generated if |
True
|
Examples:
empty_array_contents ¶
Strategy for EmptyArray content.
numpy_array_contents ¶
numpy_array_contents(
*,
dtypes: SearchStrategy[dtype] | None = None,
allow_nan: bool = True,
min_size: int = 0,
max_size: int = 10,
) -> st.SearchStrategy[NumpyArray]
Strategy for NumpyArray content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dtypes
|
SearchStrategy[dtype] | None
|
A strategy for NumPy scalar dtypes. If |
None
|
allow_nan
|
bool
|
No |
True
|
min_size
|
int
|
Minimum number of elements. |
0
|
max_size
|
int
|
Maximum number of elements. |
10
|
Examples:
regular_array_contents ¶
regular_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
*,
max_size: int = 5,
max_zeros_length: int = 5,
max_length: int | None = None,
) -> RegularArray
Strategy for RegularArray Content wrapping child Content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
max_size
|
int
|
Upper bound on the length of each element. |
5
|
max_zeros_length
|
int
|
Upper bound on the number of elements when each element is empty, i.e., when size is zero. |
5
|
max_length
|
int | None
|
Upper bound on the number of groups, i.e., |
None
|
Examples:
Limit each element to at most 3 items:
Limit the number of elements when size is zero:
>>> c = regular_array_contents(max_size=0, max_zeros_length=2).example()
>>> c.size == 0 and len(c) <= 2
True
Limit the number of groups:
list_array_contents ¶
list_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
*,
max_length: int | None = None,
) -> ListArray
Strategy for ListArray Content wrapping child Content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
max_length
|
int | None
|
Upper bound on the number of lists, i.e., |
None
|
Examples:
Limit the number of lists:
list_offset_array_contents ¶
list_offset_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
*,
max_length: int | None = None,
) -> ListOffsetArray
Strategy for ListOffsetArray Content wrapping child Content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
max_length
|
int | None
|
Upper bound on the number of lists, i.e., |
None
|
Examples:
Limit the number of lists:
string_contents ¶
string_contents(
draw: DrawFn,
*,
alphabet: SearchStrategy[str] | None = None,
min_size: int = 0,
max_size: int = 10,
) -> ListOffsetArray
Strategy for ListOffsetArray string content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
alphabet
|
SearchStrategy[str] | None
|
A strategy for characters used in the generated strings. If |
None
|
min_size
|
int
|
Minimum number of strings. |
0
|
max_size
|
int
|
Maximum number of strings. |
10
|
Examples:
bytestring_contents ¶
record_array_contents ¶
record_array_contents(
draw: DrawFn,
contents: list[Content]
| SearchStrategy[list[Content]]
| None = None,
*,
max_fields: int = 5,
allow_tuple: bool = True,
max_length: int | None = None,
) -> RecordArray
Strategy for RecordArray Content from a list of child Contents.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
contents
|
list[Content] | SearchStrategy[list[Content]] | None
|
Child contents. Can be a strategy for a list of Content, a concrete list, or
|
None
|
max_fields
|
int
|
Maximum number of fields when |
5
|
allow_tuple
|
bool
|
Allow tuple records (no field names) if |
True
|
max_length
|
int | None
|
Upper bound on the record length, i.e., |
None
|
Examples:
Limit the number of fields:
Limit the record length:
option_contents ¶
option_contents(
content: SearchStrategy[Content]
| Content
| None = None,
*,
max_size: int | None = None,
allow_indexed_option: bool = True,
allow_byte_masked: bool = True,
allow_bit_masked: bool = True,
allow_unmasked: bool = True,
) -> st.SearchStrategy[Content]
Strategy for option-type content, selected by st.one_of.
Picks among IndexedOptionArray, ByteMaskedArray,
BitMaskedArray, and UnmaskedArray.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Forwarded to each per-type strategy. |
None
|
max_size
|
int | None
|
Forwarded to |
None
|
allow_indexed_option
|
bool
|
Include |
True
|
allow_byte_masked
|
bool
|
Include |
True
|
allow_bit_masked
|
bool
|
Include |
True
|
allow_unmasked
|
bool
|
Include |
True
|
Examples:
indexed_option_array_contents ¶
indexed_option_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
*,
max_size: int | None = None,
) -> IndexedOptionArray
Strategy for IndexedOptionArray Content wrapping child Content.
The index length is drawn independently of the content length. Valid
entries can reference any content position (duplicates allowed).
Missing entries have index[i] = -1.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
max_size
|
int | None
|
Upper bound on the index length, i.e., |
None
|
Examples:
byte_masked_array_contents ¶
byte_masked_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
) -> ByteMaskedArray
Strategy for ByteMaskedArray Content wrapping child Content.
The mask length always equals len(content).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
Examples:
bit_masked_array_contents ¶
bit_masked_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
) -> BitMaskedArray
Strategy for BitMaskedArray Content wrapping child Content.
The logical length always equals len(content). The mask is
bit-packed into uint8 bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
Examples:
unmasked_array_contents ¶
unmasked_array_contents(
draw: DrawFn,
content: SearchStrategy[Content]
| Content
| None = None,
) -> UnmaskedArray
Strategy for UnmaskedArray Content wrapping child Content.
UnmaskedArray is an option type with no actual nulls. It simply
wraps content, adding option-type semantics without a mask buffer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
SearchStrategy[Content] | Content | None
|
Child content. Can be a strategy for Content, a concrete Content instance, or
|
None
|
Examples:
union_array_contents ¶
union_array_contents(
draw: DrawFn,
contents: list[Content]
| SearchStrategy[list[Content]]
| None = None,
*,
max_contents: int = 4,
max_length: int | None = None,
) -> UnionArray
Strategy for UnionArray Content from a list of child Contents.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
contents
|
list[Content] | SearchStrategy[list[Content]] | None
|
Child contents. Can be a strategy for a list of Content, a concrete list, or
|
None
|
max_contents
|
int
|
Maximum number of child contents when |
4
|
max_length
|
int | None
|
Upper bound on the union length, i.e., |
None
|
Examples:
Limit the union length: