def get(code):
instance = _cache.get(code)<EOL>if instance is None:<EOL><INDENT>url = '<STR_LIT>'.format(prefix=EPSG_IO_URL,<EOL>code=code)<EOL>xml = requests.get(url).content<EOL>root = ET.fromstring(xml)<EOL>class_for_tag = {<EOL>GML_NS + '<STR_LIT>': CartesianCS,<EOL>GML_NS + '<STR_LIT>': GeodeticCRS,<EOL>GML_NS + '<STR_LIT>': ProjectedCRS,<EOL>GML_NS + '<STR_LIT>': CompoundCRS,<EOL>GML_NS + '<STR_LIT>': UOM,<EOL>}<EOL>if root.tag in class_for_tag:<EOL><INDENT>instance = class_for_tag[root.tag](root)<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(root.tag))<EOL><DEDENT>_cache[code] = instance<EOL><DEDENT>return instance<EOL>
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>