How scikit-hep/awkward works
Awkward Array is a Python library for dynamically typed, nested and variable-sized data, providing NumPy-like operations and compiled performance. The principal workflow is to construct or import an Awkward array, represent it with nested content layouts, apply operations such as slicing or reductions, and obtain a new array or convert it to another ecosystem. The README documents broad interoperability and backend support; the graph includes those branches by their tree paths. Only limited implementation excerpts were supplied, so some subsystem wiring is intentionally left unspecified.
Main entry points: operations Array operations · contents Content layouts · __init__.py Public API · ak_from_iter.py Array construction
Components 22
Array API
- Public API
src/awkward/__init__.py - Array construction
src/awkward/operations/ak_from_iter.py - Array operations
src/awkward/operations
Data model
- High-level arrays
src/awkward/highlevel.py - Content layouts
src/awkward/contents - Layout indices
src/awkward/index.py - Type forms
src/awkward/forms
Compute runtime
- Backend dispatch
src/awkward/_backends - Kernel interface
src/awkward/_kernels.py
Interoperability
- External connectors
src/awkward/_connect - Arrow conversion
src/awkward/_connect/pyarrow - RaggedTensor import
src/awkward/operations/ak_from_raggedtensor.py - RaggedTensor export
src/awkward/operations/ak_to_raggedtensor.py
Native components
- CPU kernels
awkward-cpp/src/cpu-kernels - C++ runtime
awkward-cpp/src/libawkward - C++ builders
awkward-cpp/src/libawkward/builder - Forth execution
awkward-cpp/src/libawkward/forth - JSON I/O
awkward-cpp/src/libawkward/io/json.cpp
Other components
- Python user
- TensorFlow
- External data sources
- Array result
Connections 23
- Python user → Public API: calls
- Public API → Array construction: exposes
- Public API → Array operations: exposes
- Array construction → High-level arrays: constructs
- Array operations → Content layouts: operates on
- Array operations → Backend dispatch: dispatches by
- High-level arrays → Content layouts: wraps
- Content layouts → Layout indices: uses
- Content layouts → Type forms: describes
- Content layouts → Kernel interface: invokes
- Kernel interface → CPU kernels: dispatches
- CPU kernels → C++ runtime: uses
- Array construction → C++ builders: builds
- Array operations → Forth execution: executes via
- Array operations → JSON I/O: uses
- Array operations → External connectors: integrates
- External connectors → Arrow conversion: includes
- External data sources → External connectors: provides data
- TensorFlow → RaggedTensor import: provides tensor
- RaggedTensor import → Content layouts: builds layout
- Content layouts → RaggedTensor export: supplies layout
- RaggedTensor export → TensorFlow: creates tensor
- Array operations → Array result: returns array