code: def get_namespace(self, uri):
          
          key = (self, uri)
          if key in self.context.namespaces:
              return self.context.namespaces[key]
          else:
              ns = TemplateNamespace(uri, self.context._copy(),
                                  templateuri=uri,
                                  calling_uri=self._templateuri)
              self.context.namespaces[key] = ns
              return ns
docs: Return a :class:`.Namespace` corresponding to the given ``uri``.
  
          If the given ``uri`` is a relative URI (i.e. it does not
          contain a leading slash ``/``), the ``uri`` is adjusted to
          be relative to the ``uri`` of the namespace itself. This
          method is therefore mostly useful off of the built-in
          ``local`` namespace, described in :ref:`namespace_local`.
  
          In
          most cases, a template wouldn't need this function, and
          should instead use the ``<%namespace>`` tag to load
          namespaces. However, since all ``<%namespace>`` tags are
          evaluated before the body of a template ever runs,
          this method can be used to locate namespaces using
          expressions that were generated within the body code of
          the template, or to conditionally use a particular
          namespace.