code: def register_calendar_alias(self, alias, real_name, force=False):
          
          if force:
              self.deregister_calendar(alias)
  
          if self.has_calendar(alias):
              raise CalendarNameCollision(calendar_name=alias)
  
          self._aliases[alias] = real_name
  
          # Ensure that the new alias doesn't create a cycle, and back it out if
          # we did.
          try:
              self.resolve_alias(alias)
          except CyclicCalendarAlias:
              del self._aliases[alias]
              raise
docs: Register an alias for a calendar.
  
          This is useful when multiple exchanges should share a calendar, or when
          there are multiple ways to refer to the same exchange.
  
          After calling ``register_alias('alias', 'real_name')``, subsequent
          calls to ``get_calendar('alias')`` will return the same result as
          ``get_calendar('real_name')``.
  
          Parameters
          ----------
          alias : str
              The name to be used to refer to a calendar.
          real_name : str
              The canonical name of the registered calendar.
          force : bool, optional
              If True, old calendars will be overwritten on a name collision.
              If False, name collisions will raise an exception.
              Default is False.