code: def get_bundle_by_name(self, bundle_name):
          # type: (str) -> Optional[Bundle]
          
          if bundle_name is None:
              # Nothing to do
              return None
  
          if bundle_name is self.get_symbolic_name():
              # System bundle requested
              return self
  
          with self.__bundles_lock:
              for bundle in self.__bundles.values():
                  if bundle_name == bundle.get_symbolic_name():
                      # Found !
                      return bundle
  
              # Not found...
              return None
docs: Retrieves the bundle with the given name
  
          :param bundle_name: Name of the bundle to look for
          :return: The requested bundle, None if not found