code: def add_component(self, component, temporary=False):
          
  
          tile = IOTile(component)
          value = os.path.normpath(os.path.abspath(component))
  
          if temporary is True:
              self._component_overlays[tile.name] = value
          else:
              self.kvstore.set(tile.name, value)
docs: Register a component with ComponentRegistry.
  
          Component must be a buildable object with a module_settings.json file
          that describes its name and the domain that it is part of.  By
          default, this component is saved in the permanent registry associated
          with this environment and will remain registered for future CoreTools
          invocations.
  
          If you only want this component to be temporarily registered during
          this program's session, you can pass temporary=True and the component
          will be stored in RAM only, not persisted to the underlying key-value
          store.
  
          Args:
              component (str): The path to a component that should be registered.
              temporary (bool): Optional flag to only temporarily register the
                  component for the duration of this program invocation.