44from xml .sax import handler , make_parser
55import json
66import re
7- import sys
87import time
98
109from overpy import exception
1312 __uri__ , __version__
1413)
1514
16- PY2 = sys .version_info [0 ] == 2
17- PY3 = sys .version_info [0 ] == 3
18-
1915XML_PARSER_DOM = 1
2016XML_PARSER_SAX = 2
2117
2925 "visible" : lambda v : v .lower () == "true"
3026}
3127
32- if PY2 :
33- from urllib2 import urlopen
34- from urllib2 import HTTPError
35- elif PY3 :
36- from urllib .request import urlopen
37- from urllib .error import HTTPError
28+ from urllib .request import urlopen
29+ from urllib .error import HTTPError
3830
3931
4032def is_valid_type (element , cls ):
@@ -49,7 +41,7 @@ def is_valid_type(element, cls):
4941 return isinstance (element , cls ) and element .id is not None
5042
5143
52- class Overpass ( object ) :
44+ class Overpass :
5345 """
5446 Class to access the Overpass API
5547
@@ -78,7 +70,7 @@ def __init__(self, read_chunk_size=None, url=None, xml_parser=XML_PARSER_SAX, ma
7870 if url is not None :
7971 self .url = url
8072
81- self ._regex_extract_error_msg = re .compile (b "\<p\>(?P<msg>\<strong\s.*?)\</p\>" )
73+ self ._regex_extract_error_msg = re .compile (br "\<p\>(?P<msg>\<strong\s.*?)\</p\>" )
8274 self ._regex_remove_tag = re .compile (b"<[^>]*?>" )
8375 if read_chunk_size is None :
8476 read_chunk_size = self .default_read_chunk_size
@@ -142,11 +134,7 @@ def query(self, query):
142134 f .close ()
143135
144136 if f .code == 200 :
145- if PY2 :
146- http_info = f .info ()
147- content_type = http_info .getheader ("content-type" )
148- else :
149- content_type = f .getheader ("Content-Type" )
137+ content_type = f .getheader ("Content-Type" )
150138
151139 if content_type == "application/json" :
152140 return self .parse_json (response )
@@ -234,9 +222,6 @@ def parse_xml(self, data, encoding="utf-8", parser=None):
234222
235223 if isinstance (data , bytes ):
236224 data = data .decode (encoding )
237- if PY2 and not isinstance (data , str ):
238- # Python 2.x: Convert unicode strings
239- data = data .encode (encoding )
240225
241226 m = re .compile ("<remark>(?P<msg>[^<>]*)</remark>" ).search (data )
242227 if m :
@@ -245,7 +230,7 @@ def parse_xml(self, data, encoding="utf-8", parser=None):
245230 return Result .from_xml (data , api = self , parser = parser )
246231
247232
248- class Result ( object ) :
233+ class Result :
249234 """
250235 Class to handle the result.
251236 """
@@ -399,10 +384,7 @@ def from_xml(cls, data, api=None, parser=None):
399384 result .append (elem_cls .from_xml (child , result = result ))
400385
401386 elif parser == XML_PARSER_SAX :
402- if PY2 :
403- from StringIO import StringIO
404- else :
405- from io import StringIO
387+ from io import StringIO
406388 source = StringIO (data )
407389 sax_handler = OSMSAXHandler (result )
408390 parser = make_parser ()
@@ -603,7 +585,7 @@ def get_ways(self, way_id=None, **kwargs):
603585 ways = property (get_ways )
604586
605587
606- class Element ( object ) :
588+ class Element :
607589 """
608590 Base element
609591 """
@@ -679,7 +661,7 @@ def __init__(self, area_id=None, **kwargs):
679661 self .id = area_id
680662
681663 def __repr__ (self ):
682- return "<overpy.Area id={}>" . format ( self .id )
664+ return f "<overpy.Area id={ self .id } >"
683665
684666 @classmethod
685667 def from_json (cls , data , result = None ):
@@ -782,7 +764,7 @@ def __init__(self, node_id=None, lat=None, lon=None, **kwargs):
782764 self .lon = lon
783765
784766 def __repr__ (self ):
785- return "<overpy.Node id={} lat={} lon={}>" . format ( self .id , self . lat , self . lon )
767+ return f "<overpy.Node id={ self . id } lat={ self . lat } lon={ self .lon } >"
786768
787769 @classmethod
788770 def from_json (cls , data , result = None ):
@@ -897,7 +879,7 @@ def __init__(self, way_id=None, center_lat=None, center_lon=None, node_ids=None,
897879 self .center_lon = center_lon
898880
899881 def __repr__ (self ):
900- return "<overpy.Way id={} nodes={}>" . format ( self .id , self . _node_ids )
882+ return f "<overpy.Way id={ self . id } nodes={ self ._node_ids } >"
901883
902884 @property
903885 def nodes (self ):
@@ -1086,7 +1068,7 @@ def __init__(self, rel_id=None, center_lat=None, center_lon=None, members=None,
10861068 self .center_lon = center_lon
10871069
10881070 def __repr__ (self ):
1089- return "<overpy.Relation id={}>" . format ( self .id )
1071+ return f "<overpy.Relation id={ self .id } >"
10901072
10911073 @classmethod
10921074 def from_json (cls , data , result = None ):
@@ -1211,7 +1193,7 @@ def from_xml(cls, child, result=None):
12111193 )
12121194
12131195
1214- class RelationMember ( object ) :
1196+ class RelationMember :
12151197 """
12161198 Base class to represent a member of a relation.
12171199 """
@@ -1340,7 +1322,7 @@ def resolve(self, resolve_missing=False):
13401322 return self ._result .get_node (self .ref , resolve_missing = resolve_missing )
13411323
13421324 def __repr__ (self ):
1343- return "<overpy.RelationNode ref={} role={}>" . format ( self .ref , self . role )
1325+ return f "<overpy.RelationNode ref={ self . ref } role={ self .role } >"
13441326
13451327
13461328class RelationWay (RelationMember ):
@@ -1350,16 +1332,16 @@ def resolve(self, resolve_missing=False):
13501332 return self ._result .get_way (self .ref , resolve_missing = resolve_missing )
13511333
13521334 def __repr__ (self ):
1353- return "<overpy.RelationWay ref={} role={}>" . format ( self .ref , self . role )
1335+ return f "<overpy.RelationWay ref={ self . ref } role={ self .role } >"
13541336
13551337
1356- class RelationWayGeometryValue ( object ) :
1338+ class RelationWayGeometryValue :
13571339 def __init__ (self , lat , lon ):
13581340 self .lat = lat
13591341 self .lon = lon
13601342
13611343 def __repr__ (self ):
1362- return "<overpy.RelationWayGeometryValue lat={} lon={}>" . format ( self .lat , self . lon )
1344+ return f "<overpy.RelationWayGeometryValue lat={ self . lat } lon={ self .lon } >"
13631345
13641346
13651347class RelationRelation (RelationMember ):
@@ -1369,7 +1351,7 @@ def resolve(self, resolve_missing=False):
13691351 return self ._result .get_relation (self .ref , resolve_missing = resolve_missing )
13701352
13711353 def __repr__ (self ):
1372- return "<overpy.RelationRelation ref={} role={}>" . format ( self .ref , self . role )
1354+ return f "<overpy.RelationRelation ref={ self . ref } role={ self .role } >"
13731355
13741356
13751357class RelationArea (RelationMember ):
@@ -1379,7 +1361,7 @@ def resolve(self, resolve_missing=False):
13791361 return self ._result .get_area (self .ref , resolve_missing = resolve_missing )
13801362
13811363 def __repr__ (self ):
1382- return "<overpy.RelationArea ref={} role={}>" . format ( self .ref , self . role )
1364+ return f "<overpy.RelationArea ref={ self . ref } role={ self .role } >"
13831365
13841366
13851367class OSMSAXHandler (handler .ContentHandler ):
0 commit comments