Skip to content

test_air fails with KeyError #41

@seliayeu

Description

@seliayeu

I followed the installation instructions in an Ubuntu Docker container and I'm getting a KeyError when I run the tests:

(.venv) devuser@0a78ada4686c:~/timeloop-python$ python run_timeloopfe_tests.py
/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/ert.py:20: SyntaxWarning: invalid escape sequence '\['
  full_name = re.sub('\[\d+\.\.\d+\]', '', full_name)
/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/ert.py:32: SyntaxWarning: invalid escape sequence '\['
  name = re.sub('\[\d+\.\.\d+\]', '', t.name).split('.')[-1]
test_art (tests.test_timeloopfe.test_art.TestArt.test_art) ... ERROR

======================================================================
ERROR: test_art (tests.test_timeloopfe.test_art.TestArt.test_art)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 134, in cast_check_type
    casted = self.cast(value)
             ^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 182, in cast
    value = self.callfunc(value)
            ^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 96, in callfunc
    return rt(x, __node_skip_parse=__node_skip_parse)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 560, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 467, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 1221, in __init__
    self._parse_elems()
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 549, in _parse_elems
    self._parse_elem(k, check)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 502, in _parse_elem
    raise KeyError(
KeyError: 'Missing required key "width" in StorageAttributes={\'depth\': REQUIRED, \'entries\': REQUIRED, \'sizeKB\':.... Required keys not found: width. Found keys: datawidth, technology, has_power_gating, power_gated_at, n_banks, block_size, cluster_size.'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 134, in cast_check_type
    casted = self.cast(value)
             ^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 182, in cast
    value = self.callfunc(value)
            ^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 661, in component_factory
    return target(**kwargs)
           ^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 384, in __init__
    super().__init__(self, *args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 335, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 270, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 33, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 1221, in __init__
    self._parse_elems()
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 549, in _parse_elems
    self._parse_elem(k, check)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 526, in _parse_elem
    v = check.cast_check_type(v, self, key)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 171, in cast_check_type
    raise new_exc from exc
pytimeloop.timeloopfe.common.nodes.ParseError: Error calling cast function "StorageAttributes" for value "{'datawidth': 1, 'technology': -1}" in Storage(A)[attributes].

'Missing required key "width" in StorageAttributes={\'depth\': REQUIRED, \'entries\': REQUIRED, \'sizeKB\':.... Required keys not found: width. Found keys: datawidth, technology, has_power_gating, power_gated_at, n_banks, block_size, cluster_size.'. 'Missing required key "width" in StorageAttributes={\'depth\': REQUIRED, \'entries\': REQUIRED, \'sizeKB\':.... Required keys not found: width. Found keys: datawidth, technology, has_power_gating, power_gated_at, n_banks, block_size, cluster_size.'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 134, in cast_check_type
    casted = self.cast(value)
             ^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 182, in cast
    value = self.callfunc(value)
            ^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 96, in callfunc
    return rt(x, __node_skip_parse=__node_skip_parse)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 116, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/v4/arch.py", line 33, in __init__
    super().__init__(*args, **kwargs)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 1159, in __init__
    self._parse_elems()
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 549, in _parse_elems
    self._parse_elem(k, check)
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 526, in _parse_elem
    v = check.cast_check_type(v, self, key)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/devuser/timeloop-python/pytimeloop/timeloopfe/common/nodes.py", line 171, in cast_check_type
    raise new_exc from exc
pytimeloop.timeloopfe.common.nodes.ParseError: Error calling cast function "component_factory" for value "{'name': 'A', 'class': 'storage', 'attributes': {'datawidth': 1, 'technology': -1}}" in ArchNodes[0].

'Missing required key "width" in StorageAttributes={\'depth\': REQUIRED, \'entries\': REQUIRED, \'sizeKB\':.... Required keys not found: width. Found keys: datawidth, technology, has_power_gating, power_gated_at, n_banks, block_size, cluster_size.'. Error calling cast function "StorageAttributes" for value "{'datawidth': 1, 'technology': -1}" in Storage(A)[attributes].

'Missing required key "width" in StorageAttributes={\'depth\': REQUIRED, \'entries\': REQUIRED, \'sizeKB\':.... Required keys not found: width. Found keys: datawidth, technology, has_power_gating, power_gated_at, n_banks, block_size, cluster_size.'. 'Missing required key "width" in StorageAttributes={\'depth\': REQUIRED, \'entries\': REQUIRED, \'sizeKB\':.... Required keys not found: width. Found keys: datawidth, technology, has_power_gating, power_gated_at, n_banks, block_size, cluster_size.'

The above exception was the direct cause of the following exception:

...

I get a similar error when trying to use LoopTree.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions