code: def load_module_from_definition(
          definition: dict, parent: Location) -> \
              Union[ModuleGeometry, ThermocyclerGeometry]:
      
      mod_name = definition['loadName']
      if mod_name == 'thermocycler' or mod_name == 'semithermocycler':
          mod: Union[ModuleGeometry, ThermocyclerGeometry] = \
                  ThermocyclerGeometry(definition, parent)
      else:
          mod = ModuleGeometry(definition, parent)
      # TODO: calibration
      return mod
docs: Return a :py:class:`ModuleGeometry` object from a specified definition
  
      :param definition: A dict representing all required data for a module's
                         geometry.
      :param parent: A :py:class:`.Location` representing the location where
                     the front and left most point of the outside of the module
                     is (often the front-left corner of a slot on the deck).