.. toctree::
    :caption: High-level data types

    generated/ak.Array
    generated/ak.Record

.. toctree::
    :caption: Converting untyped data

    generated/ak.from_iter
    generated/ak.to_list
    generated/ak.from_json
    generated/ak.to_json

.. toctree::
    :caption: Converting rectangular arrays

    generated/ak.from_numpy
    generated/ak.to_numpy
    generated/ak.from_cupy
    generated/ak.to_cupy
    generated/ak.from_dlpack
    generated/ak.from_jax
    generated/ak.to_jax

.. toctree::
    :caption: Reading and writing files

    generated/ak.from_parquet
    generated/ak.metadata_from_parquet
    generated/ak.to_parquet
    generated/ak.to_parquet_dataset
    generated/ak.to_parquet_row_groups
    generated/ak.from_arrow
    generated/ak.from_arrow_schema
    generated/ak.to_arrow
    generated/ak.to_arrow_table
    generated/ak.from_feather
    generated/ak.to_feather
    generated/ak.from_avro_file

.. toctree::
    :caption: Converting to Pandas DataFrames

    generated/ak.to_dataframe

.. toctree::
    :caption: Converting ROOT RDataFrames

    generated/ak.from_rdataframe
    generated/ak.to_rdataframe

.. toctree::
    :caption: Append-only builder

    generated/ak.ArrayBuilder

.. toctree::
    :caption: Low-level conversion primitives

    generated/ak.from_buffers
    generated/ak.to_buffers
    generated/ak.to_packed
    generated/ak.copy

.. toctree::
    :caption: Validity checking

    generated/ak.is_valid
    generated/ak.validity_error

.. toctree::
    :caption: Restructuring records (columns)

    generated/ak.zip
    generated/ak.unzip
    generated/ak.merge_union_of_records
    generated/ak.merge_option_of_records

.. toctree::
    :caption: Merging arrays (rows)

    generated/ak.concatenate
    generated/ak.where

.. toctree::
    :caption: Flattening lists and missing values

    generated/ak.flatten
    generated/ak.unflatten
    generated/ak.ravel

.. toctree::
    :caption: Lengths of lists

    generated/ak.num
    generated/ak.count

.. toctree::
    :caption: Reducers

    generated/ak.count_nonzero
    generated/ak.sum
    generated/ak.nansum
    generated/ak.prod
    generated/ak.nanprod
    generated/ak.any
    generated/ak.all

.. toctree::
    :caption: Minimum and maximum

    generated/ak.min
    generated/ak.nanmin
    generated/ak.max
    generated/ak.nanmax
    generated/ak.argmin
    generated/ak.nanargmin
    generated/ak.argmax
    generated/ak.nanargmax

.. toctree::
    :caption: Descriptive statistics

    generated/ak.moment
    generated/ak.mean
    generated/ak.nanmean
    generated/ak.var
    generated/ak.nanvar
    generated/ak.std
    generated/ak.nanstd
    generated/ak.covar
    generated/ak.corr
    generated/ak.linear_fit
    generated/ak.ptp
    generated/ak.softmax

.. toctree::
    :caption: Sorting

    generated/ak.sort
    generated/ak.argsort

.. toctree::
    :caption: Missing value handling

    generated/ak.mask
    generated/ak.is_none
    generated/ak.drop_none
    generated/ak.pad_none
    generated/ak.fill_none
    generated/ak.firsts
    generated/ak.singletons

.. toctree::
    :caption: Ragged and regular dimensions

    generated/ak.from_regular
    generated/ak.to_regular

.. toctree::
    :caption: Broadcasting

    generated/ak.broadcast_arrays
    generated/ak.broadcast_fields

.. toctree::
    :caption: Combinatorics ("for loop" replacements)

    generated/ak.cartesian
    generated/ak.argcartesian
    generated/ak.combinations
    generated/ak.argcombinations

.. toctree::
    :caption: String predicates

    generated/ak.str.is_alnum
    generated/ak.str.is_alpha
    generated/ak.str.is_ascii
    generated/ak.str.is_decimal
    generated/ak.str.is_digit
    generated/ak.str.is_lower
    generated/ak.str.is_numeric
    generated/ak.str.is_printable
    generated/ak.str.is_space
    generated/ak.str.is_title
    generated/ak.str.is_upper

.. toctree::
    :caption: String transforms

    generated/ak.str.capitalize
    generated/ak.str.length
    generated/ak.str.lower
    generated/ak.str.repeat
    generated/ak.str.replace_slice
    generated/ak.str.replace_substring
    generated/ak.str.replace_substring_regex
    generated/ak.str.reverse
    generated/ak.str.swapcase
    generated/ak.str.title
    generated/ak.str.upper

.. toctree::
    :caption: String padding and trimming

    generated/ak.str.center
    generated/ak.str.lpad
    generated/ak.str.rpad
    generated/ak.str.ltrim
    generated/ak.str.ltrim_whitespace
    generated/ak.str.rtrim
    generated/ak.str.rtrim_whitespace
    generated/ak.str.trim
    generated/ak.str.trim_whitespace

.. toctree::
    :caption: String splitting and joining

    generated/ak.str.split_pattern
    generated/ak.str.split_pattern_regex
    generated/ak.str.split_whitespace
    generated/ak.str.join
    generated/ak.str.join_element_wise

.. toctree::
    :caption: String slicing and decomposition

    generated/ak.str.slice
    generated/ak.str.extract_regex

.. toctree::
    :caption: String containment tests

    generated/ak.str.count_substring
    generated/ak.str.count_substring_regex
    generated/ak.str.ends_with
    generated/ak.str.find_substring
    generated/ak.str.find_substring_regex
    generated/ak.str.index_in
    generated/ak.str.is_in
    generated/ak.str.match_like
    generated/ak.str.match_substring
    generated/ak.str.match_substring_regex
    generated/ak.str.starts_with

.. toctree::
    :caption: Value and type conversions

    generated/ak.enforce_type
    generated/ak.nan_to_none
    generated/ak.nan_to_num
    generated/ak.values_astype
    generated/ak.strings_astype

.. toctree::
    :caption: Arrays of categorical data

    generated/ak.from_categorical
    generated/ak.is_categorical
    generated/ak.categories
    generated/ak.str.to_categorical

.. toctree::
    :caption: Indexing and grouping

    generated/ak.local_index
    generated/ak.run_lengths

.. toctree::
    :caption: Extracting type metadata

    generated/ak.type
    generated/ak.parameters
    generated/ak.fields
    generated/ak.is_tuple

.. toctree::
    :caption: Manipulating type metadata

    generated/ak.with_name
    generated/ak.with_field
    generated/ak.without_field
    generated/ak.with_parameter
    generated/ak.without_parameters

.. toctree::
    :caption: Overriding behavior

    ak.behavior
    generated/ak.mixin_class
    generated/ak.mixin_class_method

.. toctree::
    :caption: Computational backends

    generated/ak.to_backend
    generated/ak.backend

.. toctree::
    :caption: Approximation

    generated/ak.round
    generated/ak.isclose
    generated/ak.almost_equal

.. toctree::
    :caption: NumPy compatibility

    generated/ak.real
    generated/ak.imag
    generated/ak.angle
    generated/ak.zeros_like
    generated/ak.ones_like
    generated/ak.full_like
    
.. toctree::
    :caption: Third-party integration

    generated/ak.numba.register_and_check
    generated/ak.jax.assert_registered
    generated/ak.jax.import_jax
    generated/ak.jax.register_and_check
    generated/ak.jax.register_behavior_class

.. toctree::
    :caption: High-level data types

    generated/ak.types.Type
    generated/ak.types.ArrayType
    generated/ak.types.ScalarType
    generated/ak.types.ListType
    generated/ak.types.NumpyType
    generated/ak.types.OptionType
    generated/ak.types.RecordType
    generated/ak.types.RegularType
    generated/ak.types.UnionType
    generated/ak.types.UnknownType
    generated/ak.types.from_datashape
    generated/ak.types.is_primitive
    generated/ak.types.primitive_to_dtype
    generated/ak.types.dtype_to_primitive

.. toctree::
    :caption: Low-level array layouts

    generated/ak.contents.Content
    generated/ak.contents.BitMaskedArray
    generated/ak.contents.ByteMaskedArray
    generated/ak.contents.EmptyArray
    generated/ak.contents.IndexedArray
    generated/ak.contents.IndexedOptionArray
    generated/ak.contents.ListArray
    generated/ak.contents.ListOffsetArray
    generated/ak.contents.NumpyArray
    generated/ak.contents.RecordArray
    generated/ak.contents.RegularArray
    generated/ak.contents.UnionArray
    generated/ak.contents.UnmaskedArray
    generated/ak.record.Record
    generated/ak.to_layout
    generated/ak.transform

.. toctree::
    :caption: Index for layout nodes

    generated/ak.index.Index
    generated/ak.index.Index8
    generated/ak.index.IndexU8
    generated/ak.index.Index32
    generated/ak.index.IndexU32
    generated/ak.index.Index64

.. toctree::
    :caption: Low-level types: "forms"
    
    generated/ak.forms.Form
    generated/ak.forms.BitMaskedForm
    generated/ak.forms.ByteMaskedForm
    generated/ak.forms.EmptyForm
    generated/ak.forms.IndexedForm
    generated/ak.forms.IndexedOptionForm
    generated/ak.forms.ListForm
    generated/ak.forms.ListOffsetForm
    generated/ak.forms.NumpyForm
    generated/ak.forms.RecordForm
    generated/ak.forms.RegularForm
    generated/ak.forms.UnionForm
    generated/ak.forms.UnmaskedForm
    generated/ak.forms.from_dict
    generated/ak.forms.from_json
    generated/ak.forms.from_type

.. toctree::
    :caption: Low-level data ingest
    :maxdepth: 1

    awkwardforth

.. toctree::
    :caption: Low-level kernels
    :maxdepth: 1

    generated/kernels
