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. |
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 = 10,
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,
max_depth: int = 5,
max_length: int | None = None,
) -> Content
Strategy for Awkward Array content layouts.
Builds content layouts by recursively constructing a tree of content nodes. At each level, a coin flip decides whether to go deeper or produce a leaf. Leaf types include NumpyArray, EmptyArray, string, and bytestring. Wrapper types include RegularArray, ListOffsetArray, ListArray, RecordArray, and UnionArray.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dtypes
|
SearchStrategy[dtype] | None
|
A strategy for NumPy scalar dtypes used in |
None
|
max_size
|
int
|
Maximum total number of 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. |
10
|
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
|
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_total_size: int = 10,
min_size: int = 0,
max_size: int | 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_total_size
|
int
|
Maximum total number of leaf elements across all contents in the list. |
10
|
min_size
|
int
|
Minimum number of contents in the list. |
0
|
max_size
|
int | None
|
Maximum number of contents in the list. By default there is no upper bound. |
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,
) -> Content
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 = 5,
) -> Content
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
|
Upper bound on the number of lists, i.e., |
5
|
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 = 5,
) -> Content
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
|
Upper bound on the number of lists, i.e., |
5
|
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,
) -> Content
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:
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,
) -> Content
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: