fromdjango.contrib.gis.geos.geometryimportGEOSGeometry,hex_regex,wkt_regexdeffromfile(file_h):""" Given a string file name, returns a GEOSGeometry. The file may contain WKB, WKT, or HEX. """# If given a file name, get a real handle.ifisinstance(file_h,str):withopen(file_h,"rb")asfile_h:buf=file_h.read()else:buf=file_h.read()# If we get WKB need to wrap in memoryview(), so run through regexes.ifisinstance(buf,bytes):try:decoded=buf.decode()exceptUnicodeDecodeError:passelse:ifwkt_regex.match(decoded)orhex_regex.match(decoded):returnGEOSGeometry(decoded)else:returnGEOSGeometry(buf)returnGEOSGeometry(memoryview(buf))deffromstr(string,**kwargs):"Given a string value, return a GEOSGeometry object."returnGEOSGeometry(string,**kwargs)