code: def get(code):
      
      instance = _cache.get(code)
      if instance is None:
          url = '{prefix}{code}.gml?download'.format(prefix=EPSG_IO_URL,
                                                     code=code)
          xml = requests.get(url).content
          root = ET.fromstring(xml)
          class_for_tag = {
              GML_NS + 'CartesianCS': CartesianCS,
              GML_NS + 'GeodeticCRS': GeodeticCRS,
              GML_NS + 'ProjectedCRS': ProjectedCRS,
              GML_NS + 'CompoundCRS': CompoundCRS,
              GML_NS + 'BaseUnit': UOM,
          }
          if root.tag in class_for_tag:
              instance = class_for_tag[root.tag](root)
          else:
              raise ValueError('Unsupported code type: {}'.format(root.tag))
          _cache[code] = instance
      return instance
docs: Return an object that corresponds to the given EPSG code.
  
      Currently supported object types are:
          - :class:`GeodeticCRS`
          - :class:`ProjectedCRS`
          - :class:`CartesianCS`
          - :class:`UOM`
  
      For example::
  
          >>> print(get(27700))
          <ProjectedCRS: 27700, OSGB 1936 / British National Grid>
          >>> print(get('4400-cs'))
          <CartesianCS: Cartesian 2D CS. Axes: easting, northi..>
          >>> print(get(5973))
          <CompoundCRS: 5973, ETRS89 / UTM zone 33 + NN2000 height>