From f30d0b919784c39d13788f572fc01a405c03c405 Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Mon, 16 Dec 2019 12:04:33 -0800 Subject: [PATCH] Fix KeyError for bitell types. --- compiler/modules/module_type.py | 4 ++++ compiler/sram_factory.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/compiler/modules/module_type.py b/compiler/modules/module_type.py index 624a62c8..90e1fdbe 100644 --- a/compiler/modules/module_type.py +++ b/compiler/modules/module_type.py @@ -67,4 +67,8 @@ class ModuleType(): self.names[b] = c def __getitem__(self, b): + if b not in self.names.keys(): + raise KeyError + return self.names[b] + diff --git a/compiler/sram_factory.py b/compiler/sram_factory.py index 4b9b13d9..f5e19d87 100644 --- a/compiler/sram_factory.py +++ b/compiler/sram_factory.py @@ -36,6 +36,8 @@ class sram_factory: A generic function to create a module with a given module_type. The args are passed directly to the module constructor. """ + real_module_type = module_type + try: from tech import tech_modules real_module_type = tech_modules[module_type] @@ -43,6 +45,9 @@ class sram_factory: # If they didn't define these, then don't use the option types. # Primarily for backward compatibility and simplicity of tech files. pass + except KeyError: + # If it wasn't a tech module type, we can ignore that too. + pass if hasattr(OPTS, module_type): # Retrieve the name from OPTS if it exists,