Skip to content

ak.Record rejects nested dicts with scalar leaves #3723

@T90REAL

Description

@T90REAL

Version of Awkward Array

2.8.10

Description and code to reproduce

Creating an ak.Record directly from a Python dict that contains a nested dict with scalar leaf value fails.

import awkward as ak

ak.Record({"0": {"0": 0}, "1": 0})
Traceback (most recent call last):
  File "/data/src/test.py", line 3, in <module>
    ak.Record({"0": {"0": 0}, "1": 0})
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/highlevel.py", line 1859, in __init__
    contents.append(Array(v).layout[np.newaxis])
                    ^^^^^^^^
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/highlevel.py", line 308, in __init__
    _arrays.append(Array(v))
                   ^^^^^^^^
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/highlevel.py", line 325, in __init__
    layout = ak.operations.to_layout(
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/_dispatch.py", line 41, in dispatch
    with OperationErrorContext(name, args, kwargs):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/_errors.py", line 80, in __exit__
    raise self.decorate_exception(exception_type, exception_value)
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/_dispatch.py", line 67, in dispatch
    next(gen_or_result)
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/operations/ak_to_layout.py", line 80, in to_layout
    return _impl(
           ^^^^^^
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/operations/ak_to_layout.py", line 266, in _impl
    return _handle_as_primitive(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/hdd/miniconda3/envs/py312/lib/python3.12/site-packages/awkward/operations/ak_to_layout.py", line 111, in _handle_as_primitive
    raise TypeError(
TypeError: Encountered a scalar (int), but scalar conversion/promotion is disabled

This error occurred while calling

    ak.to_layout(
        0
        allow_record = False
        regulararray = False
        primitive_policy = 'error'
    )

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug (unverified)The problem described would be a bug, but needs to be triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions