Release history

Unreleased (main branch on GitHub)

  • PR #1475: update awkward-1.0 to awkward.

  • PR #1447: This PR attempts to add autodifferentiation support for Awkward Arrays using JAX pytrees.

  • PR #1470: Rename fillna -> fill_none.

  • PR #1469: _getitem_* functions must consistently set the slicer in handle_error.

  • PR #1468: Rename low-level methods to match high-level function names.

  • PR #1467: Flatten directory structure under src/awkward/_v2/operations.

  • PR #1465: [pre-commit.ci] pre-commit autoupdate.

  • PR #1462: Build(deps): bump docker/setup-qemu-action from 1.2.0 to 2.0.0.

  • PR #1464: Ignore a NumPy 1.22 warning in Numba and fix the flake8-print T001 –> T201 change.

Release 1.9.0rc4

(pip)

(no pull requests)

Release 1.9.0rc3

(pip)

  • PR #1449: Revamping the to_json/from_json interface.

  • PR #1458: Streamline recursively_apply for small slices of big arrays.

  • PR #1457: Fix RDataFrame GetColumnNames order in test.

  • PR #1446: awkward rdataframe source tests.

  • PR #1456: Fixes to_layout with allow_records=False and allows single-record writing to Arrow and Parquet. (also: #1453)

  • PR #1455: Build(deps): bump pypa/cibuildwheel from 2.4.0 to 2.5.0.

  • PR #1445: Pass on skipped v2 tests.

  • PR #1429: Fix: is_unique() for IndexedArray.

  • PR #1444: Enable ak.singletons.

  • PR #1443: Enable ak.firsts.

  • PR #1374: awkward to rdataframe.

  • PR #1440: Implementing ak._v2.to_parquet.

  • PR #1437: Enable mixins behavior.

  • PR #1435: Remove duplicated import of to/from-parquet.

  • PR #1434: Enable categorical behavior - testing.

Release 1.9.0rc2

(pip)

  • PR #1433: Add Array and Record.__delitem__. And fix show(type=True).

  • PR #1432: Register both v1 and v2 Arrays in Numba entry_points.

  • PR #1431: Fixed miscellaneous optiontype-in-Parquet bugs. (also: #1397)

  • PR #1397: split up functions.

  • PR #1430: Pretty-printing types.

  • PR #1428: Implements ak.nan_to_none and all of the ak.nan* functions to override NumPy’s.

  • PR #1421: Enabled string/categorical behavior.

  • PR #1427: Enable broadcasting of string equality.

  • PR #1426: ListOffsetArray._reduce_next is not implemented for 32-bit (it could be, but this PR just fixes the error).

  • PR #1425: Fix ak._v2.to_arrow for sliced ListOffsetArray.

Release 1.9.0rc1

(pip)

  • PR #1422: Update AwkwardForth documentation and move it from the wiki to the standard docs.

  • PR #1410: Removed bytemask() in favour of mask_as_bool()

  • PR #1415: Passing behaviour in ak._v2 functions.

  • PR #1419: Fix iteration over NumpyArray type.

  • PR #1418: Fix performance issue in v2 tolist.

  • PR #1416: docs: add Ahmad-AlSubaie as a contributor for code.

  • PR #1413: replace llvmlite.ir instead of llvmlite.llvmpy.core.

  • PR #1412: fix: pypy 3.9.

  • PR #1399: This PR adds JAX as a new nplike.

  • PR #1409: [pre-commit.ci] pre-commit autoupdate.

  • PR #1407: Windows builds stopped working; be looser about directory name.

  • PR #1404: Fix: from_numpy references ListArray64 (also: #1403)

  • PR #1401: Implement recursively_apply for Record

  • PR #1398: ROOT doesn’t recognize for-each iterators without operator==

  • PR #1390: This PR adds all the remaining kernels in the studies directory.

  • PR #1395: [pre-commit.ci] pre-commit autoupdate.

  • PR #1394: Build(deps): bump pypa/cibuildwheel from 2.3.1 to 2.4.0.

  • PR #1393: ErrorContexts should only contain strings.

  • PR #1392: High-level ak._v2.Array clean-ups.

  • PR #1387: No zero-length shortcuts for ak.argsort (v1 & v2). (also: psf/black#2964)

  • PR #1385: fix: bump black to 22.3.0 due to click 8.1 releasennSee https://github.com/psf/black/issues/2964 for details.

  • PR #1381: This PR adds the generated kernels and simplifies the template specialization generation process.

  • PR #1384: Fix _prettyprint after ‘for i in range’ changed to ‘for i, val in enumerate’.

  • PR #1383: Protect test 1300 from ROOT without C++17 (or, at least, without std::optional).

  • PR #1380: Reducers with axis=None and typetracers.

  • PR #1378: Fixes nonlocal reducers in which the first list is empty.

  • PR #1355: This PR sets up the architecture to call CuPy Raw Kernels from Awkward.

  • PR #1376: Allow NumPy arrays in CppStatements; fix row_groups in single-file from_parquet.

  • PR #1373: Feat: add depth_limit to ak.broadcast_arrays

  • PR #1365: Refactor: cleanup reducer.

  • PR #1360: C++ refactoring: ak.unflatten.

  • PR #1372: Allow NumPy arrays in CppStatements; fix row_groups in single-file from_parquet.

  • PR #1369: C++ refactoring: ak.to_pandas.

  • PR #1367: C++ refactoring: ak.copy.

  • PR #1338: First version of ak._v2.from_parquet.

  • PR #1368: C++ refactoring: ak.broadcast_arrays.

  • PR #1359: Pure Cling demo and improvements to C++ JIT infrastructure. (also: #1295)

  • PR #1370: [pre-commit.ci] pre-commit autoupdate.

  • PR #1364: Fixes #1363 by ensuring that arguments documented as ‘iterable of X’ aren’t used in ‘len(X)’.

  • PR #1354: C++ refactoring: ak.unzip.

  • PR #1356: Fix: fix docstring line.

  • PR #1351: Feat: add is_tuple describe operation.

  • PR #1347: C++ refactoring: ak.run_lengths.

  • PR #1352: C++ refactoring: ak.nan_to_num.

  • PR #1346: Fix PR #788: avoid materializing VirtualArrays in ak.with_name.

  • PR #1327: Straighten out error handling via a thread-local (but otherwise global) context.

  • PR #1340: ak.flatten and ak.ravel should test for nplike.ndarray, not np.ndarray.

  • PR #1329: Fixed ak.num with axis=0 in typetracer.

Release 1.8.0

(pip)

(no pull requests)

Release 1.8.0rc7

(pip)

  • PR #1326: Docs: fix typo in documentation.

  • PR #1314: chore: remove extra files from the wheels.

  • PR #1313: ci: avoid PyPI cuda wheel upload.

  • PR #1316: chore: bump pybind11 to 2.9.1.

  • PR #1312: Keep as much length knowledge as possible in typetracers.

  • PR #1322: chore: wheel not required for setuptools PEP 517 (all-repos)

  • PR #1317: C++ refactoring: ak.cartesian, ak.argcartesian.

  • PR #1301: C++ refactoring: ak.strings_astype.

  • PR #1308: Feat: add optiontype_outside_record argument to ak.zip

  • PR #1307: C++ refactoring: ak.argcombinations, ak.combinations.

  • PR #1309: C++ refactoring: ak.sort.

Release 1.8.0rc6

(pip)

  • PR #1310: Fix lost ‘behavior’ in ‘ak.unzip’.

  • PR #1300: Implement Awkward –> C++ with Cling.

  • PR #1306: Version of awkward_cuda should be tied with awkward.

  • PR #1304: C++ refactoring: ak.argsort.

  • PR #1303: Fix: do not increment field index for nested lists.

Release 1.8.0rc5

(pip)

(no pull requests)

Release 1.8.0rc4

(pip)

  • PR #1299: Remove unnecessary line blank from the tops of almost all files .

  • PR #1298: Allow ak.nan_to_num arguments to be arrays.

  • PR #1296: ak.fields.

  • PR #1297: ak.without_parameters.

  • PR #1293: C++ refactoring: ak.full_like, ak.zeros_like, ak.ones_like.

  • PR #1275: style: pylint 1.

  • PR #1274: Fixing #1266 (in v1 and v2), possibly by reordering nextparents.

  • PR #1294: C++ refactoring: ak._v2.from_arrow_schema function.

  • PR #1289: C++ refactoring: ak.with_parameter.

  • PR #1292: C++ refactoring: ak.with_field.

  • PR #1290: typo.

  • PR #1276: This PR adds support to call kernels in CUDA from v2 Awkward Arrays.

  • PR #1249: Fix: support nested option types in ak.is_none (also: #1193, #1193)

  • PR #1279: Fix: simplify output in {Byte,Bit}MaskedArray.

  • PR #1277: [pre-commit.ci] pre-commit autoupdate.

  • PR #1240: Getting Numba to work for v2 arrays.

  • PR #1207: json de-/serialisation from/to string or file.

  • PR #1270: Add GHA to build CUDA Wheels and update the cuda build script.

  • PR #1262: chore: initial nox and pylint support.

  • PR #1267: style: update to first non-pre-release black!

  • PR #1265: Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0.

  • PR #1257: Add a .zenodo.json file to specify a set of authors.

  • PR #1264: Bump pypa/cibuildwheel from 1.12.0 to 2.3.1.

  • PR #1263: chore: add dependabot for actions.

  • PR #1259: Fix: fix ByteMaskedArray.simplify_optiontype()

  • PR #1258: Remove distutils reference in test (now an error).

  • PR #1255: chore: update pytest config, 6.0+

  • PR #1242: C++ refactoring: ak.parameters.

  • PR #1243: style: add shellcheck.

  • PR #1254: fix: building twice was broken.

  • PR #1248: Fix: support mixed array types in NumpyLike.to_rectilinear

  • PR #1246: style: further cleanup for Python 3.6+

  • PR #1244: style: pyupgrade to 3.6.

  • PR #1245: layout.completely_flatten should not concatenate (performance issue).

  • PR #1234: C++ refactoring: ak.type and ak.values_astype.

  • PR #1214: Fix: drop parameters for flattened RecordArray.

Release 1.8.0rc3

(pip)

  • PR #1239: Revert “Build wheels for ppc64le (#1224)”

Release 1.8.0rc2

  • PR #1233: C++ refactoring: ak.with_name.

  • PR #1231: Updated the generate-cuda script. Works for py >= 3.8.

  • PR #1224: Build wheels for ppc64le.

  • PR #1237: Remove Windows 32-bit from the Python 3.10 build.

  • PR #1229: C++ refactoring: ak.pad_none.

  • PR #1232: macos segfault bugfix.

  • PR #1225: C++ refactoring: ak.zip.

  • PR #1228: Redo PR #1227: fixing ‘emptyArray’ typo.

  • PR #1226: C++ refactoring: ak.num.

  • PR #1217: C++ refactoring: ak.flatten.

  • PR #1220: C++ refactoring: ak.where.

  • PR #1223: Restore pybind11 2.9.0.

  • PR #1218: Make highlevel __repr__ safe for typetracers.

  • PR #1219: C++ refactoring: ak.mask.

  • PR #1221: C++ refactoring: ak.local_index.

  • PR #1222: C++ refactoring: ak.ravel.

  • PR #1211: Removed v1_to_v2 from all v2 tests. (also: #962)

  • PR #1215: Fixed handling of list-nested boolean slices.

  • PR #1212: Drop Win32 Py3.10 test and musllinux in deployment.

  • PR #1213: [pre-commit.ci] pre-commit autoupdate.

Release 1.8.0rc1

  • PR #1188: ci: try Numba RC on 3.10.

  • PR #1199: chore: bump to pybind11 2.9.0.

  • PR #1210: docs: add BioGeek as a contributor for doc.

  • PR #1208: ak._v2 namespace is now filled with the right symbols.

  • PR #1206: Highlevel non-reducers and improved testing/fixes for reducers.

  • PR #1204: ak._v2.operations.convert.to_numpy is done.

  • PR #1203: Don’t let ak.to_list act on v2 arrays (finishing #1201).

  • PR #1202: Better error message for Content::axis_wrap_if_negative.

  • PR #1201: Implemented v2 ak.to_list and switched all v2 tests to use it.

  • PR #1198: Allow non-array iterables in __array_function__.

  • PR #1197: Fix ak.singletons for non-optional data.

  • PR #1196: Remove distutils dependence.

  • PR #1195: Fix: _pack_layout should also pack projected index arrays.

  • PR #1194: [pre-commit.ci] pre-commit autoupdate.

  • PR #948: pictures for a tutorial.

  • PR #1155: ArrayBuilder: replace shared with unique.

  • PR #1011: chore: bump pybind11 to 2.8.0.

  • PR #1186: feat: bump cibuildwheel, add Python 3.10.

  • PR #1187: Remove duplicated text.

  • PR #1184: Drop all length information from TypeTracer, get all tests working again.

  • PR #1183: Bugs found by the Dask project: broaden type-tracers’ applicability.

  • PR #1172: First bug found by @martindurant.

  • PR #1182: Remove Python 2.7 and 3.5 support.

  • PR #1181: Fixed zeros in RegularArray shape.

  • PR #1175: NumpyArray::numbers_to_type must use flattened_length, not length.

  • PR #1180: ak.to_numpy with RegularArray of size zero and non-zero length.

  • PR #1179: Raise ValueError for incompatible union types in ak.unzip.

  • PR #1178: Fix leading zeros in ak.unflatten.

  • PR #1174: [pre-commit.ci] pre-commit autoupdate.

Release 1.7.0

(pip)

  • PR #1170: Parquet files with zero record batches.

  • PR #1169: remove debug printout.

  • PR #1161: C++ refactoring: ak.concatenate.

  • PR #1164: C++ refactoring: to and from json.

  • PR #1168: avoid division by zero.

  • PR #1166: Preserve order in v1 RecordForm.contents.

  • PR #1165: Second try at specialized JSON: RapidJSON + custom assembly.

  • PR #1162: ak.from_json_schema as a demonstration of generating AwkwardForth from a type-schema.

  • PR #1163: [pre-commit.ci] pre-commit autoupdate.

  • PR #1148: C++ refactoring: flatten()

  • PR #1160: Better decompiled print-outs for ‘case’ and ‘enum’.

  • PR #1159: Add JSON commands to AwkwardForth.

  • PR #1147: C++ refactoring: fillna() operation.

  • PR #1145: C++ refactoring: numbers_to_type()

  • PR #1150: C++ refactoring: to_numpy()

  • PR #1156: Replace leaf Nones with +-inf for argmin/argmax axis=None.

  • PR #1153: ‘behaviorof’ should take Array, not layouts, and setting ‘behavior’ should set the ‘__class__’.

  • PR #1154: Arrow Tables should preserve parameters.

  • PR #1149: C++ refactoring: handle datetime and timedelta.

  • PR #1142: C++ refactoring: prepared high-level ArrayBuilder and reducer functions, though still untested.

  • PR #1146: primitive_to_dtype and dtype_to_primitive as functions.

  • PR #1138: C++ refactoring: nbytes.

  • PR #1143: C++ refactoring: NumPy ufuncs for v2.

  • PR #1137: C++ refactoring: num()

  • PR #1134: C++ refactoring: to_buffers and from_buffers.

  • PR #1140: remove workaround, use merge.

  • PR #1141: fix unionarray sort and enable tests.

  • PR #1135: C++ Refactoring: Implement rpad and rpad_and_clip.

  • PR #1111: C++ refactoring: unique and is_unique.

  • PR #1128: [pre-commit.ci] pre-commit autoupdate.

  • PR #1132: C++ refactoring: utility methods for high-level functions in v2.

  • PR #1130: Removed ‘simplify_uniontype’ from content – already in unionarray.

  • PR #1131: High-level to/from_arrow functions for v2.

  • PR #1129: Update Azure Pipeline’s Windows VM image and adapt to Arrow and Numba updates.

  • PR #1125: C++ refactoring: to_arrow and from_arrow in v2.

  • PR #1124: Make the commented-out code in v2 a better guide.

  • PR #1123: Renamed record ‘key’ -> ‘field’ to be consistent with high-level.

  • PR #1122: Working on the high-level ak.Array for v2. (also: #838)

  • PR #1121: Stubs for high-level interface in the src/awkward/_v2 directory.

  • PR #1120: Enable codecov.

  • PR #1116: C++ refactoring: project - bit/byte/unmaskedarray.

  • PR #1119: Remove v2 VirtualArray (to try using Dask only).

  • PR #1118: Prepare the 1.7.0 deprecation (ak.fill_none default axis).

  • PR #1117: Move v2 tests into their own directory.

  • PR #1082: C++ refactoring: Merge and Simplify Types.

Release 1.5.1

(pip)

  • PR #1114: Fixes copyjson casting bug.

  • PR #1110: Implemented the type tracer for Awkward-Dask. (also: #959, #1031)

  • PR #1112: [pre-commit.ci] pre-commit autoupdate.

  • PR #1092: C++ refactoring: argsort.

  • PR #1099: C++ refactoring: reducers.

  • PR #1109: “The Good Parts” of #1095, which I’m closing.

  • PR #1085: Fix: add utility to check whether a string is a filepath. (also: #1084)

  • PR #1108: Fixed #1071: mask_identity=False should not return option type.

  • PR #1102: [pre-commit.ci] pre-commit autoupdate.

  • PR #1101: C++ Refactoring: Implement validityerror for all array types.

  • PR #1094: Little fixes from meeting with @ianna.

  • PR #1072: C++ refactoring: sort.

  • PR #1091: Respect CMAKE_ARGS if set by the environment.

Release 1.5.0

(pip)

(no pull requests)

Release 1.5.0rc2

  • PR #1089: Revert ‘NumPy’ spelling to ‘Numpy’ in code only.

  • PR #1087: docs: add bmwiedemann as a contributor for code.

  • PR #1088: docs: add SantamRC as a contributor for test.

Release 1.5.0rc1

  • PR #1086: docs: add matthewfeickert as a contributor for maintenance.

  • PR #1081: Data for Remaining Kernel Functions.

  • PR #1003: chore: fix spelling and check in pre-commit.

  • PR #1070: Try fixing the search box by upgrading sphinx-rtd-theme.

  • PR #1079: Implementing VirtualArray in Awkward v2.

  • PR #1073: C++ refactoring: handling ListOffsetArray and IndexedOptionArray in _getitem_next.

  • PR #1074: C++ refactoring: Implementing combinations.

  • PR #1065: Unit Tests.

  • PR #1078: [pre-commit.ci] pre-commit autoupdate.

  • PR #1063: LayoutBuilder template using either ForthMachine32 or ForthMachine64 and a tutorial.

  • PR #1036: C++ refactoring: testing_starting _getitem_next.

  • PR #1059: C++ refactoring: Implementing _localindex.

  • PR #1067: Fixes #1066, ak.to_numpy can return masked-structured arrays.

  • PR #1045: LayoutBuilder refactoring.

  • PR #1062: Optimizing common take operations.

  • PR #1061: Explicit ak.Record.__iter__ (iterates over fields, like dict) and better ak.from_iter handling of nested ak.Record and ak.Array.

  • PR #1050: Allow to override build date with SOURCE_DATE_EPOCH.

  • PR #1058: Fix deprecation warning stack level.

  • PR #1056: Fix ak.fill_none fill value’s handling of NumPy dimension.

  • PR #1054: Remove debugging printout (2).

  • PR #1030: Feat: add name parameter to mixin_class

  • PR #1051: Remove debugging printout.

  • PR #977: ArrayBuilder refactoring.

  • PR #1031: C++ refactoring: starting _getitem_next.

  • PR #1035: docs: add ioanaif as a contributor for code, test.

  • PR #1029: Fixed #1026; jagged slicing of multidim NumpyArray.

  • PR #1028: Reverting #694: SliceVarNewAxis.

  • PR #1025: Rename _getitem_array as _carry and have it take Index.

  • PR #1024: Chore: correct spelling of “operation”

  • PR #1023: Docs: make link to layout.

  • PR #1021: Feat: pack Record``s in ``ak.packed

  • PR #1019: Fix: set numpy_to_regular=True in broadcast_arrays (also: #1017)

  • PR #959: C++ refactoring: _getitem_array implementation.

  • PR #1018: [pre-commit.ci] pre-commit autoupdate.

  • PR #1016: Documentation: clarify left & right broadcasting.

  • PR #1013: Bugfix: do not use regular_to_jagged in ak.zip (also: #1012)

  • PR #1008: Bugfix: fix ak.packed for RegularArray``s with ``.size=0 (also: #1006)

  • PR #1004: docs: touch up contributing.

  • PR #1009: Bugfix: support empty buffers in from_buffers (also: #1007)

  • PR #1005: Fixes #595 and #630; adds a default for NEP-18.

  • PR #985: Feature: add np.ravel

  • PR #1001: Fixes #998 and #1000; argmax for ListOffsetArray with nonzero start. Also optimizes toListOffsetArray64(true).

  • PR #997: Fixes #982 by accounting for an additional kind of ‘gap’ in nonlocal reducers.

  • PR #993: Fix high-level ak.Array.__dir__ to include methods and properties of overridden classes.

  • PR #994: Fixes two bugs in #992: double-masking of reducers and unmasking of ak.ptp.

  • PR #995: Fixes #546, ak.fill_none losing the replacement value’s dtype.

  • PR #917: Feature: add axis parameter to ak.fill_none (also: #920)

  • PR #991: Fixed bug #770, #930: not a policy issue; UnionForm::purelist_parameter was incorrectly comparing its contents’ direct parameters, rather than their purelist_parameters.

  • PR #987: Feature: add GitHub Issue Forms.

  • PR #980: Bugfix: support n-dim NumpyArray``s in ``ak.where

  • PR #988: fix: Unrestrict jaxlib upper bound and exclude jaxlib v0.1.68. (also: #963)

Release 1.4.0

(pip)

(no pull requests)

Release 1.4.0rc6

  • PR #976: Bugfix: support multidimensional NumPy mask arrays in ak.mask (also: #975, #975)

Release 1.4.0rc5

  • PR #946: sorting an indexed option array in axis0 bug fix; argsort to account ``None``s.

  • PR #974: Bugfix: fix #973.

Release 1.4.0rc4

  • PR #972: Feature: add layout transformer & simplify unpacked.

  • PR #970: Fix #968, missing ‘import awkward._io’.

Release 1.4.0rc3

(no pull requests)

Release 1.4.0rc2

  • PR #966: Make dev/generate-kernel-signatures.py part of the build process and add Python ctypes signatures as well.

  • PR #961: ci: move to cibw on GHA.

Release 1.4.0rc1

  • PR #963: Test jaxlib<0.1.68 for segfault.

  • PR #962: C++ refactoring: convert and compare v1 and v2 arrays; renamed v2 recordarray -> keys.

  • PR #958: C++ refactoring: new Forms must accept old Form JSON.

  • PR #957: C++ refactoring: Type and Form classes - touchups.

  • PR #954: fix(setup): sync with cmake_example.

  • PR #953: tests: fix loading from any directory.

  • PR #914: C++ refactoring: Type and Form classes.

  • PR #955: fix: manylinux1 couldn’t take None/newaxis.

  • PR #951: Writing documentation on 2021-06-23.

  • PR #952: Refactor: use maybe_wrap in source.

  • PR #950: Appropriate FileNotFoundError for ak.from_json.

  • PR #947: How much documentation can I get done today?

  • PR #935: Separate from_parquet into different routines.

  • PR #943: Tutorial documentation on 2021-06-18. (also: #704)

  • PR #942: Bugfix: fix with_cache implementation.

  • PR #937: Bugfix: truncate ListOffsetArray contents.

  • PR #931: Writing tutorial documentation 2021-06-16.

  • PR #924: rename TypedArrayBuilder to LayoutBuilder.

  • PR #896: C++ refactoring: Content classes.

  • PR #929: Refactor: remove ak.deprecations_as_errors

  • PR #874: Should strings from __getitem__ be Python str? (and bytes?)

  • PR #922: Bugfix: use ak.packed in ak.unflatten (also: #910, #910)

  • PR #928: Bugfix: return correct nbytes value for multidimensional NumPy arrays. (also: #927, #927)

  • PR #923: Bugfix: check for file-like objects in from_parquet

  • PR #925: Added ‘[todo]’ to unwritten documentation, added a few nodes, and added description of ak.packed to how-to-convert-buffers.md.

  • PR #916: ak.values_astype support dtype specifier np.datetime64 to convert ?int or ?float typed unix timestamps to datetime64

  • PR #912: Feature: add ak.packed

  • PR #919: [pre-commit.ci] pre-commit autoupdate.

  • PR #918: Feature: add pass_apply argument to util.

  • PR #915: revert to datetime64 and timedelta64.

  • PR #835: support ‘datetime64’ and ‘timedelta64’ types.

  • PR #907: WIP: initial support for reading pyarrow.lib.FixedSizeListType

  • PR #904: ArrayView expects contiguous NumpyArrays, so make sure they’re contiguous.

  • PR #901: Distinguish cache keys for non-leaf nodes.

  • PR #897: More precise Content documentation.

  • PR #895: Fixes #894.

  • PR #884: C++ refactoring: Index and Identities (Identifier)

  • PR #890: Feature: add ak.ptp

  • PR #891: Documentation: fix typo in reducers.

Release 1.3.0

(pip)

  • PR #868: Matrix multiplication of a non-array vector. (also: #881)

  • PR #885: [pre-commit.ci] pre-commit autoupdate.

  • PR #880: Fix #879.

  • PR #878: Fix some issues with null-typed Arrow/Parquet columns.

  • PR #877: Buffer pointers should come from data(), not ptr().get(). (also: #876)

  • PR #871: Fixes for Parquet, Numba, Dask test.

  • PR #870: Simplify UnionArray::getitem_field(s) and ak.flatten axis=None.

  • PR #869: [pre-commit.ci] pre-commit autoupdate.

  • PR #867: Fix #865, only build forms for columns that are requested in lazy mode (ak.from_parquet)

  • PR #864: Bugfix: possible fix for #863.

  • PR #860: corrected the class names in documentation.

  • PR #862: [pre-commit.ci] pre-commit autoupdate.

Release 1.2.3

(pip)

(no pull requests)

Release 1.3.0rc4

  • PR #858: arrays of complex types concatenate.

  • PR #856: [pre-commit.ci] pre-commit autoupdate.

  • PR #833: chore: cmake cleanup.

  • PR #834: style: setup.cfg formatting.

  • PR #855: This PR adds documentation for differentiation using JAX.

  • PR #850: masked array sort and argsort bug fix.

  • PR #847: Bugfix: fix #846 - matrix multiplication with numpy array.

  • PR #851: [pre-commit.ci] pre-commit autoupdate.

  • PR #848: docs: add agoose77 as a contributor.

  • PR #844: Removed “ignore” from some Flake8 complaints.

  • PR #793: This PR integrates JAX element wise differentiation into the main codebase.

  • PR #842: [pre-commit.ci] pre-commit autoupdate.

  • PR #839: Allow scalars in ak.zip and make an ak.Record if they’re all scalars.

  • PR #837: Handle ndim != 1 bool arrays in to_arrow (and hence, Parquet).

  • PR #831: chore: cleanup setup.py.

  • PR #814: Added dtype argument to ones/zeros/full_like functions.

  • PR #829: Handle Arrow’s DataType(null).

  • PR #827: docs: add HenryDayHall as a contributor.

  • PR #826: fixed string inequality comparison.

  • PR #769: Typed Array Builder from Form.

  • PR #825: Fix ak.Record’s promote to behavior.

Release 1.2.2

(pip)

  • PR #820: Fixes issue #819: unflattening at axis>0 with a scalar.

Release 1.3.0rc3

  • PR #816: Broadcast union types to all possibilities, even ones with no instances in the array.

Release 1.3.0rc2

  • PR #812: argsort bugfix for empty arrays.

Release 1.3.0rc1

  • PR #808: Issue #805: fix an empty case when broadcasting UnionArrays.

Release 1.2.1

(pip)

  • PR #800: [pre-commit.ci] pre-commit autoupdate.

  • PR #803: argsort to return an index-type in the case that the input list array is empty.

Release 1.2.0

(pip)

(no pull requests)

Release 1.2.0rc6

  • PR #799: Forbid ‘pyarrow.lib.Tensor’ in ‘ak.to_parquet’.

Release 1.2.0rc5

  • PR #796: Add mechanism to cast objects before __array_ufunc__.

  • PR #795: Fixed #794, ak.cartesian on an empty array.

Release 1.2.0rc4

  • PR #790: Implement ‘np.nan_to_num’ and ‘np.isclose’ for Vector.

  • PR #789: When RecordArrays are lazily carried as IndexedArrays, the IndexedArrays shouldn’t copy the RecordArray parameters. Also, ‘with_name’ may be able to simplify some UnionArrays after homogenizing names.

Release 1.2.0rc3

  • PR #787: Don’t prevent other Numba extensions from using operators.

  • PR #779: Adapt getitem of DifferentiableArray for JAX.

  • PR #785: [pre-commit.ci] pre-commit autoupdate.

  • PR #786: ci: cleanup and remove 3.9 restrictions.

  • PR #784: Disambiguate offsets-index cache keys when lazily reading Parquet.

  • PR #781: AwkwardForth: add an s” core word to define strings.

  • PR #773: Add type parser to main codebase.

  • PR #776: Fix bug raised on StackOverflow.

  • PR #767: Conceptual test of TypedArrayBuilder through AwkwardForth.

  • PR #772: Fixes #771; constructing Array with different length columns should raise error.

  • PR #668: Study writing a type parser for TypedArrayBuilder.

  • PR #766: Prevent combinations of characters (from a bug on Mattermost).

  • PR #690: array builder time profiler study.

  • PR #765: Consider this implementation of a DifferentiableArray for JAX.

  • PR #764: Fixes #763 by assigning a better type to EmptyArray::argsort_next.

  • PR #762: More documentation, starting with “how to build”.

Release 1.2.0rc2

  • PR #760: Simplify ‘ak.to_arrow’ list handling.

  • PR #757: Fixes #756; ak.num on PartitionedArrays.

  • PR #755: Print ak.layout.RecordArray’s ‘length’ unequivocally to aid debugging.

  • PR #754: Minor tweak so that ak.unflatten works for CuPy arrays. This doesn’t count as support yet.

  • PR #752: Fixes #722; better error message for bad concatenation.

  • PR #751: Fixes #740; NumPy scalars should be iterated over as numbers.

  • PR #750: Added ‘ak.Array.to_list’, ‘ak.Array.to_numpy’, and ‘ak.Record.to_list’, and simplified the documentation to point to the functions they call.

  • PR #748: I had somehow forgotten to handle ‘row_groups’ in ‘ak.from_parquet’. Fixed now.

  • PR #743: ak.unflatten should include trailing zero-length counts in the array.

Release 1.2.0rc1

  • PR #738: docs: add drahnreb as a contributor.

  • PR #736: Implement argsort for strings.

  • PR #737: Define the depth of an array of strings to be 1.

  • PR #735: Allow ak.run_lengths to recognize strings as distinguishable values.

  • PR #734: Implemented ‘ak.strings_astype’ to convert strings into numbers.

  • PR #733: Implemented ‘ak.run_lengths’ to enable group-by operations.

  • PR #732: Allow ‘ak.unflatten’ to be used on PartitionedArrays.

  • PR #731: Add an ‘axis’ parameter to ‘ak.unflatten’.

  • PR #727: fix some issues of categorical arrays. (also: #674)

Release 1.1.2

(pip)

  • PR #729: Only ‘simplify’ed option-type and union-type arrays are now considered valid.

  • PR #726: Fixed #724, a segfault in ak.flatten.

  • PR #725: Ensure that a jagged slice fits the array’s length.

  • PR #720: fix: add missing files to the manifest, include a check.

Release 1.1.1

(pip)

  • PR #719: Prevent nullptr in PyArrayGenerator::caches.

  • PR #717: Every function with ‘highlevel=True’ gets ‘behavior=None’, which overrides behaviors from the input arrays. Also dropped ‘ak.is_unique’ because it isn’t a well-designed high-level function.

Release 1.1.0

(pip)

(no pull requests)

Release 1.1.0rc5

  • PR #714: getitem_field should simplify_optiontype (for option-type arrays).

  • PR #709: ARROW-10930 has been fixed, and we depend on it in the new Parquet-handling code, so the minimum Arrow is now 3.0.

Release 1.1.0rc4

  • PR #707: Python 2 can use ellipsis now.

  • PR #706: Read and write Parquet datasets (sets of files).

Release 1.1.0rc3

  • PR #699: Fixing more bugs revealed by prepping for SciPy.

  • PR #703: Fixed #702, ‘ak.to_arrow’ with PartitionedArrays.

Release 1.1.0rc2

  • PR #698: Remove ak.*_arrayset functions in preparation for 1.1.0.

  • PR #693: Fixes for SciPy 2021 prep. (also: #694)

  • PR #697: add a check in a tuple builder for an out of bounds index.

  • PR #691: Fixes #689, the dimension of arrays returned by empty slices.

Release 1.1.0rc1

  • PR #688: Give lazy Parquet files information about their Forms.

  • PR #687: check content length before arg/sorting.

  • PR #683: refactor: pulling static info into setup.cfg.

  • PR #685: chore: flake8.

  • PR #676: chore: update pybind11 2.6.2.

  • PR #672: Put RNTuple measurements on the performance plot.

  • PR #677: docs: include GitHub button in GitHub dropdown.

  • PR #682: tests: fix B015.

  • PR #684: UnknownType documentation had a copy-paste error; fixed now.

  • PR #681: fix: flake8 F811.

  • PR #680: Remove right-broadcasting from most uses of ‘broadcast_and_apply’. It’s almost never what people want, and we’re only obliged to maintain it in functions that generalize NumPy (like ufuncs and ‘ak.where’).

  • PR #652: complex numbers support.

  • PR #675: style: pre-commit.

  • PR #669: Avoid specifying target CUDA architecture.

  • PR #673: Fixes #671 by allowing buffers in ak.from_buffers to be larger than strictly necessary (following the rules that define lengths of array nodes; https://awkward-array.readthedocs.io/en/latest/ak.layout.Content.html).

  • PR #670: fix warnings and run static analyser.

  • PR #667: Update CONTRIBUTING.md documentation.

  • PR #666: Remove unused variable from dev/generate-cuda.py.

  • PR #665: Fix generated file cleanup script.

  • PR #664: Actually remember to release the GIL before doing some multithreading tests.

  • PR #661: AwkwardForth additions to make Avro and Parquet parsing possible.

  • PR #662: Cleanups after PR #648.

  • PR #645: This PR adds the from_cuda_array_interface, to form CUDA arrays in a more general fashion.

  • PR #657: With the new lazy slices, it’s now possible to get into ‘VirtualArray::getitem_next_jagged’.

  • PR #653: Bugfixes in ForthMachine (discovered by writing documentation).

  • PR #656: scikit-hep/uproot4#244 revealed surprising semantics of ak.zip with regular arrays. Regular array case has been changed to act the same as jagged arrays.

  • PR #648: Add a ForthMachine to the codebase, copying from ‘studies’.

  • PR #650: Fixes #649, wording in documentation.

  • PR #647: Fix JupyterBook formatting and add the executable notebooks to CI tests.

  • PR #646: Black and flake8.

  • PR #639: add quick sort and argsort without recursion.

  • PR #638: Prototype Forth virtual machine in C++ (close to what will be added to Awkward Array).

  • PR #644: Querying array depth should never materialize if anything has a Form.

  • PR #643: Prevent trivial carrying, which can also prevent materialization of some VirtualArrays.

Release 1.0.2

(pip)

  • PR #642: Materialize virtual arrays in to_arrow.

Release 1.0.2rc5

  • PR #620: Prototype Forth VM for filling Awkward Arrays from Uproot.

  • PR #636: Accept NumPy integers in slices.

Release 1.0.2rc4

  • PR #635: Fixes #634.

  • PR #631: Fixes #629.

  • PR #627: A dict of arrays requires ‘behaviorof(*arrays.values())’.

  • PR #626: Homogenize and streamline pass-through of Array behavior.

  • PR #625: Fixes #624: unhandled ‘offsets’ in pyarrow arrays.

  • PR #619: Implemented column selection within multiple records.

  • PR #617: Created a roadmap.

Release 1.0.2rc3

  • PR #571: validity checking based on known parameters.

  • PR #613: ak.concatenate should minimally touch lazy arrays. (also: #603)

  • PR #612: Added ‘axis_wrap_if_negative’ to PartitionedArray.

  • PR #611: Add setuptools to requirements for pkg_resources.

  • PR #610: Revise concatenate with axis != 0.

Release 1.0.2rc2

(no pull requests)

Release 1.0.2rc1

  • PR #606: More complicated example revealed bugs in Arrow conversion.

  • PR #605: fix: avoid hardcoded threads and macOS target.

  • PR #604: Make tests work in 32-bit.

  • PR #602: Use pyarrow.field to preserve nullability in Arrow conversion.

  • PR #599: Preemtively avoid warnings in NumPy 1.20 (untested).

Release 1.0.1

(pip)

  • PR #598: Fixes ak.from_buffers failure for ListArray.

Release 1.0.1rc3

(no pull requests)

Release 1.0.1rc2

  • PR #592: Replace to_arrayset/from_arrayset with to_buffers/from_buffers and deprecate the original.

  • PR #590: Change the definition of RegularArray to accept size == 0.

  • PR #583: Implement unflatten function.

  • PR #591: Now ‘ak.to_numpy(ak.layout.NumpyArray(cupy.array([1, 2, 3]))’ works.

Release 1.0.1rc1

  • PR #587: Modernize ak.is_none and add an ‘axis’ parameter.

  • PR #586: Fix corner-case revealed by issue #585, but distinct from that issue.

  • PR #582: Propagate ‘posaxis’ through broadcast_and_apply and recursively_apply, then implement ‘axis < 0’ for some functions.

  • PR #578: Implement ak.Array.ndim in the Numba context.

  • PR #577: Fix the setup.py –record argument, which is needed for bdist_rpm.

  • PR #576: Actually remove deprecated features.

Release 1.0.0

(pip)

  • PR #573: Fix ak.from_awkward0’s Table (missing _view).

  • PR #570: Fix ArrayBuilder memory leak.

Release 1.0.0rc2

  • PR #569: Rename ‘master’ branch to ‘main’.

  • PR #568: Options for “NaN” strings as NaN floats.

  • PR #454: Add some more Loop Dependent Kernels.

  • PR #565: Tool to check if kernel is implemented in all places.

  • PR #566: Added the ‘initial’ argument to ak.min/ak.max.

Release 1.0.0rc1

(no pull requests)

Release 0.4.5

(pip)

  • PR #553: ak.with_field should not right-broadcast (by default).

  • PR #551: Also implemented ak.to_regular and ak.from_regular.

  • PR #548: concatenate bug-fix. (also: #545)

  • PR #550: Implemented ‘np.array(ak.Array)’ in Numba.

  • PR #547: Implemented ‘__contains__’ in and out of Numba.

  • PR #524: argsort and sort for indexed option arrays bug fix.

  • PR #544: Simplified and generalized ak.where using broadcast_and_apply.

  • PR #542: Pickle-able mixin classes from decorator.

Release 0.4.4

(pip)

  • PR #539: concatenate for a nonzero axis operation.

  • PR #540: Fix issue #538’s performance issues.

  • PR #537: Fix matrix multiplication.

  • PR #536: Enforce minimum Arrow version 2.0.0 and fix issues due to ARROW-9556.

  • PR #535: Implemented zeros_like, ones_like, and full_like, and fixed from_numpy for NumPy string arrays.

  • PR #527: Fix UnionArray ufuncs and parameters in merging. (also: #459, #522, #459, #522)

  • PR #495: Add a developer tool to check if kernel specification file is sorted.

  • PR #526: Fix (infinite) recursion bug in Arrow translation.

  • PR #525: Fix #402: Form::getitem_field must return the Form of what Content::getitem_field would return.

  • PR #520: Actually remove expired deprecations (they were supposed to go in 0.4.0).

  • PR #519: Provide ak.local_index.

  • PR #518: to_pandas with IndexedArrays (and other types)

  • PR #517: Masked take on an empty array should behave in a way that is consistent with non-empty arrays.

Release 0.4.3

(pip)

  • PR #515: Fix fall-through that happened with the deprecation message.

  • PR #514: Provides high-level access to copy and deepcopy operations.

  • PR #513: Blocked ufuncs on custom types, reopened them for categoricals using a new apply_ufunc interface, updated documentation.

Release 0.4.2

(pip)

  • PR #512: Always keep references to all caches in a ak.Array.

Release 0.4.1

(pip)

  • PR #510: Remove broadcasting over the fields of records.

  • PR #508: Fixes #499 by removing gaps from ListArray::content.

  • PR #507: Fixes #501 and generalizes from_numpy/to_layout to accept NumPy arrays of strings.

  • PR #505: Superflous line.

Release 0.4.0

(pip)

  • PR #482: Add Python 3.9 to tests and deployment.

  • PR #488: Add conda install instructions.

  • PR #409: Fill out the ‘creating arrays’ section.

  • PR #485: Update to pybind11 2.5.0. (also: #483)

  • PR #478: Fix broken CUDA tests.

  • PR #473: Properly broadcast over empty ListArray.

  • PR #477: CPU kernel source files will have 1 file per kernel.

  • PR #474: Fix broken links.

  • PR #471: We do not need blacklists for kernel/test generation anymore.

  • PR #468: Generate kernel header files from specification.

Release 0.3.1

(pip)

  • PR #470: Put the ‘cmake’ PyPI package back into pyproject.toml.

  • PR #469: awkward1 must use THE SAME VERSION of awkward1-cuda-kernels when it uses any.

Release 0.3.0

(pip)

  • PR #467: Try to solve Windows installation issue by always compiling in ‘Release’ mode.

  • PR #455: Check kernel specification into git.

  • PR #464: Deprecate ‘keys’ -> ‘fields’ and add properties to ak.Array and ak.Record.

  • PR #465: Attempt to make check for -A x64 flag more robust.

  • PR #463: Generalize NumPy ufunc behavioral matching.

  • PR #461: Apply conda-forge/awkward1-feedstock#2 here to test it in our CI.

  • PR #462: Remove ak.Array.tojson for 0.3.0 (use ak.to_json).

  • PR #460: Remove Awkward-as-a-Pandas-column feature, as discussed in #350.

Release 0.2.38

(pip)

  • PR #458: Change the Windows build following @chrisburr’s suggestion.

  • PR #456: Add numpy boolean type to ak describe.

  • PR #453: Add more kernel test cases.

  • PR #452: Add description field to specification.

  • PR #436: Working on the Loop Dependent Kernels.

  • PR #451: Change kernel specification format.

  • PR #450: Explicitly cast list to CuPy array in cumsum test.

Release 0.2.37

(pip)

  • PR #448: Set up interface between Uproot and Awkward so that Awkward can be used to optimize object-reading. (also: #449)

  • PR #449: Upgrade Content::merge from a single ‘other’ argument to a std::vector of ‘others’.

  • PR #433: Auto generate more CUDA kernels.

  • PR #447: Fix reducer dimension regularity. (also: #434)

  • PR #446: Fix ak.flatten for arrays that have been sliced.

  • PR #435: intermittent error bugfix.

  • PR #444: Always assuming ListArrays/ListOffsetArrays have incompatible structure is too conservative. Check for consistency and shortcut if possible.

  • PR #441: Fix typo in documentation.

  • PR #440: Fix cuda shared object retrieval.

  • PR #438: Restructure test generation - store only roles in specification.

Release 0.2.36

(pip)

  • PR #439: Libraries and includes should only go into the Python directory, not multiple places.

  • PR #429: Generate more CUDA kernels.

  • PR #431: Allow ArrayCache(None) construction.

  • PR #428: Fix a bug in repr due to weak cache refs.

  • PR #427: Implement weak reference to virtual array caches.

  • PR #426: Generate tests for CUDA kernels.

  • PR #425: Fixes #186; proper string-escape sequences in util::quote.

  • PR #373: Generate CUDA kernels from kernel specification.

  • PR #424: Change const representation in kernel spec.

  • PR #422: Forward purelist_parameter “__doc__” in lazy slices.

  • PR #423: docs: add sjperkins as a contributor.

  • PR #420: NumpyArray::bytelength and NumpyArray::carry were wrong for non-contiguous; fixed. (also: #418)

Release 0.2.35

(pip)

(no pull requests)

Release 0.2.34

(pip)

  • PR #417: Fix nesting structure of arrays passed to ArrayBuilder.append.

  • PR #416: Fix references to np.object (where ‘np’ is a NumpyMetadata singleton).

  • PR #372: Add to and from_cupy for Numpy Array and Identities.

  • PR #414: Restructure test locations.

  • PR #413: Better error message if unable to find cpu-kernel shared object.

  • PR #412: Add const info to kernel spec.

Release 0.2.33

(pip)

  • PR #410: Fix argmin/max positions for missing values.

  • PR #407: Fix warnings reported by MacOS/Cling and try PIP_ONLY_BINARY instead of restricting cmake version.

  • PR #406: Handle cases where C for loop was translated to Python while loop.

  • PR #403: Introduce a ‘categorical’ type (behavioral, just as ‘string’ is) that is the only thing that passes to Arrow as DictionaryArray.

  • PR #316: libawkward export tuning.

Release 0.2.32

(pip)

  • PR #401: Missed some validity error URL reporting in #399, finished them here (because they were discovered as part of the Arrow bug-hunt).

  • PR #390: VirtualArray has correct __record__ parameter.

  • PR #399: All exceptions should report their version, file, and line number as GitHub links.

  • PR #397: Awkward data should be registered as Numba constants so that they can be passed as closures to Numba-compiled functions. (also: #175)

  • PR #398: Truncate generated outparams only to required length.

  • PR #396: Fixes #395: IndexedArray was updating both the ArrayView viewport and ‘nextat’; only one is allowed.

  • PR #388: Abstract all uses of NumPy, so that GPU arrays will use CuPy instead.

  • PR #394: Fixed #393 (BitMaskedArray::bytemask output should be equivalent to valid_when=False).

Release 0.2.31

(pip)

  • PR #389: Fix that cuda-kernels build!

Release 0.2.30

(pip)

  • PR #381: Writing more awkward-array.org documentation. (also: #387)

  • PR #384: Make from_arrayset even more lazy.

  • PR #385: Fixed #383, prevented conversion of characters in strings, and renamed ak.numbers_to_type -> ak.values_astype.

  • PR #382: Fixed broken kernel page in sphinx docs.

Release 0.2.29

(pip)

  • PR #379: Fill in a lot of stubs on awkward-array.org.

  • PR #378: Update the what-is-awkward to align with (and include) the video.

Release 0.2.28

(pip)

  • PR #377: Rename ‘astype’ to ‘numbers_to_type’, for use as a high-level function. Also removed ‘can_cast’, since it’s exactly the same as the NumPy version(users should use NumPy).

  • PR #374: Pandas deprecation version is 0.3.0 and ak.to_pandas is documented.

  • PR #371: Removing the last offset parameters (missed them before because they’re in an array).

  • PR #346: Operation to change the number type.

  • PR #366: Remove ‘offset’ arguments from all kernels, only passing in pointers that have already been offset.

  • PR #369: Improve C++ to C generator.

  • PR #365: Do not iterate over lists while comparing in pytest.

  • PR #307: Create specification and generate tests for kernels based on hand written labels.

  • PR #364: Add Pandas deprecation warnings and other clean-ups.

  • PR #363: jupyter-books 0.7.3 no longer supports ‘headers’. (also: #350)

  • PR #357: Cleanup the Docker Residues like .test files and .dockerignore.

  • PR #360: Ensure that Matplotlib raises ValueError on non-flat arrays and keep test_0341 from leaking Parquet files.

  • PR #358: Fixed typo.

  • PR #354: Mixin class decorators.

  • PR #356: Adapt to pyarrow/Arrow 1.0.

  • PR #353: Add docstring also to Record.

Release 0.2.27

(pip)

  • PR #352: Replace metadata containing cache with just cache (no premature generalization).

  • PR #351: Put the Awkward-in-Pandas feature up for a vote, citing #350.

  • PR #349: Fix Python SyntaxWarning.

  • PR #345: Prepare the Python Layer for the CUDA Kernels, and add Docker Images for CI.

Release 0.2.26

(pip)

  • PR #348: Added form_key (optional string) to all Forms.

  • PR #347: Remove redundant line from reducers kernel.

  • PR #314: Implement axis_wrap_if_negative.

  • PR #344: The ak.Array/ak.Record/ak.ArrayBuilder repr quotes keys that are not good identifiers.

  • PR #343: Convert Arrow <–> Parquet, and hence Awkward <–> Parquet.

  • PR #340: Convert 64-bit unsigned 32-bit Awkward arrays into 32-bit Arrow arrays if their indexes are small enough.

  • PR #339: Adds a high-level interface to sorting (ak.sort) (also: #304)

  • PR #338: Renamed keeplayout → keep_layout in ak.{from,to}_awkward0.

  • PR #337: Try to fully resolve the NumPy format string issues. (also: #333)

  • PR #330: Attach docstrings to newly created highlevel arrays.

Release 0.2.25

(pip)

  • PR #327: Lookahead assignment Python code generation.

  • PR #326: Fix a lot of warnings that have recently been introduced.

  • PR #322: Revised getitem operation for masked jagged indexers.

  • PR #325: These tests pass if you’ve pip installed awkward1, but sometimes you need to work from the localbuild directory.

  • PR #293: Separation of cuda-kernels and memory_trackers implementation.

  • PR #324: Fix an error in partitionedarray: array[‘field’, 10].

  • PR #323: Fixed Python generation.

  • PR #319: Update doctest dummy yaml to test documentation.

  • PR #317: Remove redundant cpu kernels from operations.h.

  • PR #261: replace carry with indexedarray.

  • PR #306: Document interfaces of functions in sorting.cpp.

  • PR #299: This PR moves all the template kernels from utils to kernels.

  • PR #168: sort and argsort operations applied in axis.

  • PR #295: Update contributing.md.

  • PR #298: Touch up the kernels documentation.

Release 0.2.24

(pip)

  • PR #270: Update the minimum Numba version to 0.50 when that becomes available. (also: numba/numba#5717)

  • PR #296: Do not allow dynamic sized arrays in cpu-kernels.

  • PR #269: Generate Python code for CPU kernels.

  • PR #294: Fix some typos in cpu-kernels.

  • PR #292: Fix some typos in cpu-kernels.

Release 0.2.23

(pip)

  • PR #290: Bug-fixes for HATS.

  • PR #288: fixes #286 broadcast single value with field.

  • PR #287: docs: add nikoladze as a contributor.

  • PR #283: Replace std::vector with C style code.

  • PR #282: Remove redundant includes from cpu-kernels.

Release 0.2.22

(pip)

  • PR #281: Revert to static linking libawkward.so because it broke the wheel-deployment.

Release 0.2.21

(pip)

  • PR #280: Fix ak.pandas.dfs function for simple rows.

  • PR #279: Fix ArrayBuilder’s access to type in __repr__.

  • PR #266: Running black and flake8 on the Python codebase.

  • PR #265: Fixes #264, reductions at axis=N inside empty lists at axis=N-1.

Release 0.2.20

(pip)

  • PR #263: Continue from #224: fromarrow and toarrow.

  • PR #260: docs: add gordonwatts as a contributor.

  • PR #258: docs: add jpata as a contributor.

  • PR #259: docs: add martindurant as a contributor.

  • PR #257: docs: add douglasdavis as a contributor.

  • PR #256: docs: add bfis as a contributor.

  • PR #255: docs: add benkrikler as a contributor.

  • PR #254: docs: add Jayd-1234 as a contributor.

  • PR #253: docs: add guitargeek as a contributor.

  • PR #252: docs: add mhedges as a contributor.

  • PR #251: docs: add masonproffitt as a contributor.

  • PR #250: docs: add EscottC as a contributor.

  • PR #249: docs: add glass-ships as a contributor.

  • PR #248: docs: add veprbl as a contributor.

  • PR #247: docs: add Ellipse0934 as a contributor.

  • PR #246: docs: add trickarcher as a contributor.

  • PR #245: docs: add reikdas as a contributor.

  • PR #244: docs: add henryiii as a contributor.

  • PR #242: docs: add lgray as a contributor.

  • PR #241: docs: add ianna as a contributor.

  • PR #240: docs: add nsmith as a contributor.

  • PR #239: docs: add jpivarski as a contributor.

Release 0.2.19

(pip)

  • PR #237: Keep writing those tutorials.

  • PR #236: Writing tutorials 2.

  • PR #229: Update to JupyterBook’s new Sphinx-based build system.

  • PR #234: Working on #230 segfault. (also: #233)

  • PR #232: Fix bug in IndexForm possible types. (also: #231)

Release 0.2.18

  • PR #228: Prepare the second Coffea demo.

  • PR #227: Write CONTRIBUTING.md. (also: #219)

Release 0.2.17

  • PR #216: VirtualArray, which loads its data on demand and interacts with a cache.

  • PR #217: libawkward: pin vtables to the library.

  • PR #223: Fixed #222. It failed to initialize starts and stops at the end of its output array, leaving uninitialized junk.

  • PR #220: Fixed localbuild.py, args now correctly parse.

Release 0.2.16

  • PR #218: Fix a segfault I suspected but couldn’t reproduce. (also: #212)

Release 0.2.15

  • PR #212: PartitionedArray, which only applies to the root of a structure.

Release 0.2.14

  • PR #189: Update to Numba 0.49 and make that the minimal version.

Release 0.2.13

  • PR #209: Try again on visibility and also ensure -frtti. (also: #211)

Release 0.2.12

  • PR #208: Fixes #207 (missing files in tarball)

Release 0.2.11

Release 0.2.10

(pip)

  • PR #198: Wrote draft of tutorial for EIC.

  • PR #201: Rename ak.choose and ak.cross.

  • PR #197: All reference documentation is done.

  • PR #196: Keep writing those Python docs.

  • PR #195: Keep writing those Python docs.

  • PR #194: Changed some names to add underscores.

  • PR #190: Keep writing those Python docs.

  • PR #188: Really write those Python docstrings this time.

Release 0.2.9

  • PR #187: Set up for Python documentation (including front page)

Release 0.2.7

  • PR #185: Start writing doxygen comments in C++.

  • PR #183: Enforce a 79 character maximum on all lines, 72 on docstrings/comments.

  • PR #180: Configure documentation (not content, just how the workflow will work).

  • PR #171: Issues #166, #167, #170 in one PR.

  • PR #155: fillna operation.

  • PR #164: Fixes #162. Replaces all Raw Pointer Access with wrappers.

  • PR #165: Implement argmin and argmax.

Release 0.2.6

  • PR #143: ByteMaskedArray, BitMaskedArray, and tomask operation.

  • PR #160: argchoose and choose.

Release 0.2.5

  • PR #159: Implement ‘argcross’ and ‘cross’.

  • PR #157: ak.Array and ak.Record constructors. Maybe the ak.zip function.

Release 0.2.4

  • PR #154: Add the ak.pandas.multiindex(array) function.

Release 0.2.3

  • PR #152: Finish the count/sizes/num operation and the flatten operation.

Release 0.2.2

  • PR #132: Merge all the rpad work (#114) into new environment.

  • PR #151: Issues #149 and #150: AttributeErrors and merging ak.behavior.

  • PR #148: isvalid as an operation.

Release 0.2.1

Release 0.2.0

(pip)

  • PR #140: Make __typestr__ a behavior, not a data property.

Release 0.1.141

  • PR #142: Fix Windows wheel and add auditwheel.

Release 0.1.139

  • PR #144: Strings in Numba.

Release 0.1.138

(no pull requests)

Release 0.1.137

  • PR #137: Fix deployment.

  • PR #139: EmptyArrays have float64 type (like NumPy), but are integer arrays when used as a slice (fixing scikit-hep/awkward-array#236).

  • PR #135: Convert between Awkward0 and Awkward1.

Release 0.1.133

  • PR #133: Fix the tests that are currently skipped due to setidentity segfaults.

Release 0.1.131

  • PR #131: Reintroduce Numba “cpointers” test.

Release 0.1.129

  • PR #129: Improved build procedure building from setup.py.

  • PR #130: Rename ‘FillableArray’ to ‘ArrayBuilder’ and all ‘fillable’ to ‘builder’. (also: #129)

Release 0.1.128

(pip)

  • PR #128: Any tweaks that are necessary for Henry’s demo.

Release 0.1.122

  • PR #118: Replace Numba StructModels with CPointers and check all reference counts.

Release 0.1.121

  • PR #121: Better distribution: drop case-sensitive name and ensure that RapidJSON is in the source distribution.

Release 0.1.120

  • PR #120: Support the Autograd library in much the same way as NumExpr.

Release 0.1.119

  • PR #119: Support NumExpr and add a ‘broadcast_arrays’ function.

Release 0.1.117

  • PR #115: Add reducer operations (with an ‘axis’ parameter).

Release 0.1.116

  • PR #116: Refactor pyawkward.cpp both for compilation speed and so that arrays can be dynamically loaded by dependent Python modules.

Release 0.1.111

  • PR #111: Allow Awkward Arrays to be used as slices, including list-type and option-type.

Release 0.1.110

Release 0.1.107

  • PR #107: Assign fields to records (deeply, through all structure).

  • PR #96: Implemented *::count for axis != 0.

Release 0.1.106

  • PR #106: Record should hold a pointer to RecordArray, not an instance.

Release 0.1.94

  • PR #93: UnionArray::simplify and IndexedOptionArray::simplify, to be used by functions that would naively return uniontypes and optiontypes. (also: #62)

  • PR #105: Turn study/flatten.py into array documentation.

  • PR #98: Bugfix for NumpyArray 32-bit vs 64-bit errors.

  • PR #97: Guard against inspecting __main__ module.

  • PR #83: *::flatten for axis != 0.

  • PR #94: ak.Array.__getattr__ for record fields. (also: #62)

Release 0.1.92

(pip)

  • PR #92: Make ak.Array a Pandas DType extension.

Release 0.1.89

  • PR #89: Address issues #88 and #61 with more complete tests.

Release 0.1.87

  • PR #87: Wrote a demo for Numba.

Release 0.1.86

  • PR #86: For issue #60, NEP 13: allow NumPy ufuncs to be called on ak.Array. (also: #66)

  • PR #30: Starting cpp version of PR026 test.

Release 0.1.84

  • PR #84: UnionArray: only the basics so that any JSON can be ingested.

Release 0.1.82

Release 0.1.81

  • PR #81: Issue #50: IndexedArray::flatten for axis=0. (also: #51)

  • PR #45: Start flatten implementation and add tests.

Release 0.1.49

  • PR #49: Use ak.Array vs ak.Record to distinguish RecordArray from Record.

Release 0.1.47

  • PR #48: Reproduce and fix issue #47.

Release 0.1.46

  • PR #46: Start IndexedArray (with and without OptionType).

Release 0.1.43

  • PR #44: Reproduce and fix issue #43.

  • PR #42: Create stubs for the flatten operation.

Release 0.1.40

  • PR #40: Rename Identity/id -> Identities/identities and location -> identity.

  • PR #41: Bring FillableArray::index to regular python interface.

Release 0.1.39

  • PR #39: Replacing hanging types with Parameters on each Content.

Release 0.1.38

(pip)

  • PR #38: Static methods to make empty arrays of a given type.

Release 0.1.37

  • PR #37: Replace ‘lookup’ and ‘reverselookup’ with a single property (that acts like ‘reverselookup’).

Release 0.1.36

  • PR #36: Continue working on the Coffea demo.

Release 0.1.33

  • PR #33: Creating a demo for Coffea will motivate improvements.

Release 0.1.32

  • PR #32: Replace DressedType with parameters on all the Types.

Release 0.1.31

  • PR #31: Now the types need to pass through Numba.

Release 0.1.28

  • PR #28: Start the high-level layer: awkward.Array.

Release 0.1.26

  • PR #26: Add RecordArray (and Record) to Numba.

Release 0.1.25

(pip)

  • PR #25: Start writing RecordArray (C++ and Fillable, but not Numba).

Release 0.1.24

  • PR #24: Start using RegularArray everywhere it needs to be used.

Release 0.1.23

  • PR #23: Introduce RegularArray for rectilinear blocks of any type of awkward array.

Release 0.1.22

  • PR #22: FillableArrays must be usable in Numba.

Release 0.1.21

  • PR #21: Create EmptyArray with unknown type.

Release 0.1.20

  • PR #20: Support unsigned index type for 32-bit.

Release 0.1.19

(no pull requests)

Release 0.1.18

  • PR #19: Use a JSON library to feed FillableArray.

Release 0.1.17

(pip)

(no pull requests)

Release 0.1.16

(no pull requests)

Release 0.1.15

  • PR #18: Implement Fillable, which are append-only, non-readable arrays.

Release 0.1.14

  • PR #17: Put all array classes in an ‘array’ directory (‘include’, ‘src’, and ‘_numba’).

Release 0.1.13

  • PR #16: Finish getitem for RawArray.

Release 0.1.12

  • PR #15: Implement all of the getitem cases for NumpyArray/ListArray in Numba.

Release 0.1.11

  • PR #14: Finish up getitem: handle all slice types but newaxis.

Release 0.1.10

  • PR #13: Error-handling as a struct, rather than just a string.

Release 0.1.9

(no pull requests)

Release 0.1.8

  • PR #12: Access ListArray::getitem in Numba.

Release 0.1.7

(pip)

(no pull requests)

Release 0.1.6

(no pull requests)

Release 0.1.5

(no pull requests)

Release 0.1.4

  • PR #11: Implemented ListArray and ListOffsetArray’s __getitem__.

  • PR #9: Propagate identity through NumpyArray::getitem.

Release 0.1.3

(no pull requests)

Release 0.1.2

(no pull requests)

Release 0.1.1

  • PR #8: Deep __getitem__ in C++.

  • PR #7: 32-bit and 64-bit versions of Index, Identifer, and ListOffsetArray (and all future Arrays).

  • PR #6: Iterators, deep iteration, iteration in Python and Numba.

  • PR #5: Numba version of the Identity class.

Release 0.1.0

(pip)

  • PR #4: Design an “identity” system, like the surrogate key in PartiQL.

  • PR #3: Develop Numba extensions for NumpyArray and ListOffsetArray.