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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions