22
22
23
23
24
24
class OsmApi (a_osm_api .OsmApi ):
25
- base_url = 'https://master.apis.dev.openstreetmap.org/api/0.6'
25
+ BASE_URL = 'https://master.apis.dev.openstreetmap.org/api/0.6'
26
26
27
27
def get_permissions (self ) -> set :
28
28
"""
29
29
current permissions
30
30
GET /api/0.6/permissions
31
31
"""
32
- data = requests .get (self .base_url + '/permissions' , auth = (NAME , PASS ))
32
+ data = requests .get (self .BASE_URL + '/permissions' , auth = (NAME , PASS ))
33
33
if data .ok :
34
34
tree = ElemTree .fromstring (data .text )
35
35
permissions = set ()
@@ -51,7 +51,7 @@ def create_changeset(self, tags: dict) -> int:
51
51
xml = ElemTree .tostring (root )
52
52
53
53
logger .debug (xml )
54
- data = requests .put (self .base_url + '/changeset/create' , data = xml , auth = (NAME , PASS ))
54
+ data = requests .put (self .BASE_URL + '/changeset/create' , data = xml , auth = (NAME , PASS ))
55
55
if data .ok :
56
56
return int (data .text )
57
57
elif data .status_code == HTTPStatus .BAD_REQUEST :
@@ -66,7 +66,7 @@ def get_changeset(self, cid: int, discussion: bool = False) -> ChangeSet:
66
66
GET /api/0.6/changeset/#id?include_discussion=
67
67
exclude discussion by <empty> or omitting
68
68
"""
69
- url = self .base_url + '/changeset/{}' .format (cid )
69
+ url = self .BASE_URL + '/changeset/{}' .format (cid )
70
70
if discussion :
71
71
url += '?include_discussion=True'
72
72
data = requests .get (url , auth = (NAME , PASS ))
@@ -82,7 +82,7 @@ def close_changeset(self, cid: int):
82
82
closes a changeset
83
83
PUT /api/0.6/changeset/#id/close
84
84
"""
85
- data = requests .get (self .base_url + '/changeset/{}/close' .format (cid ), auth = (NAME , PASS ))
85
+ data = requests .get (self .BASE_URL + '/changeset/{}/close' .format (cid ), auth = (NAME , PASS ))
86
86
if data .ok :
87
87
return None
88
88
elif data .status_code == HTTPStatus .NOT_FOUND :
@@ -95,7 +95,7 @@ def download_changeset(self, cid: int) -> str:
95
95
"""
96
96
GET /api/0.6/changeset/#id/download
97
97
"""
98
- data = requests .get (self .base_url + '/changeset/close' , auth = (NAME , PASS ))
98
+ data = requests .get (self .BASE_URL + '/changeset/close' , auth = (NAME , PASS ))
99
99
if data .ok :
100
100
return data .text
101
101
elif data .status_code == HTTPStatus .NOT_FOUND :
@@ -127,7 +127,7 @@ def comm_changeset(self, cid: int, text: str) -> ChangeSet:
127
127
Add a comment to a changeset. The changeset must be closed.
128
128
POST /api/0.6/changeset/#id/comment
129
129
"""
130
- data = requests .post (self .base_url + '/changeset/{}/comment' .format (str (cid )),
130
+ data = requests .post (self .BASE_URL + '/changeset/{}/comment' .format (str (cid )),
131
131
data = {'text' : text }, auth = (NAME , PASS ))
132
132
logger .debug (data .text )
133
133
if data .ok :
@@ -142,7 +142,7 @@ def sub_changeset(self, cid: int) -> ChangeSet:
142
142
Subscribes the current authenticated user to changeset discussion
143
143
POST /api/0.6/changeset/#id/subscribe
144
144
"""
145
- data = requests .post (self .base_url + '/changeset/{}/subscribe' .format (cid ), auth = (NAME , PASS ))
145
+ data = requests .post (self .BASE_URL + '/changeset/{}/subscribe' .format (cid ), auth = (NAME , PASS ))
146
146
if data .ok :
147
147
return self .__changeset_parser (data .text )
148
148
elif data .status_code == HTTPStatus .CONFLICT :
@@ -154,7 +154,7 @@ def unsub_changeset(self, cid: int) -> ChangeSet:
154
154
Unsubscribe the current authenticated user from changeset discussion
155
155
POST /api/0.6/changeset/#id/subscribe
156
156
"""
157
- data = requests .post (self .base_url + '/changeset/{}/unsubscribe' .format (cid ), auth = (NAME , PASS ))
157
+ data = requests .post (self .BASE_URL + '/changeset/{}/unsubscribe' .format (cid ), auth = (NAME , PASS ))
158
158
if data .ok :
159
159
return self .__changeset_parser (data .text )
160
160
elif data .status_code == HTTPStatus .NOT_FOUND :
@@ -171,7 +171,7 @@ def create_element(self, elem: Element, cid: int) -> int:
171
171
"""
172
172
elem .changeset = cid
173
173
xml = self .__serial_elem (elem , True )
174
- data = requests .get (self .base_url + '/{}/create' .format (elem .e_type ), data = xml , auth = (NAME , PASS ))
174
+ data = requests .get (self .BASE_URL + '/{}/create' .format (elem .e_type ), data = xml , auth = (NAME , PASS ))
175
175
if data .ok :
176
176
return int (data .text )
177
177
elif data .status_code == HTTPStatus .BAD_REQUEST :
@@ -185,7 +185,7 @@ def get_element(self, etype: str, eid: int) -> Element:
185
185
"""
186
186
GET /api/0.6/[node|way|relation]/#id
187
187
"""
188
- data = requests .get (self .base_url + '/{}/{}' .format (etype , eid ), auth = (NAME , PASS ))
188
+ data = requests .get (self .BASE_URL + '/{}/{}' .format (etype , eid ), auth = (NAME , PASS ))
189
189
if data .ok :
190
190
tree = ElemTree .fromstring (data .text )
191
191
logger .debug (data .text )
@@ -259,7 +259,7 @@ def edit_element(self, elem: Element, cid: int) -> int:
259
259
:returns: New version Number
260
260
"""
261
261
elem .changeset = cid
262
- data = requests .put (self .base_url + '/{}/{}' .format (elem .e_type , elem .id ),
262
+ data = requests .put (self .BASE_URL + '/{}/{}' .format (elem .e_type , elem .id ),
263
263
data = self .__serial_elem (elem ), auth = (NAME , PASS ))
264
264
if data .ok :
265
265
return int (data .text )
@@ -280,7 +280,7 @@ def delete_element(self, elem: Element, cid: int) -> int:
280
280
:returns: new version number
281
281
"""
282
282
elem .changeset = cid
283
- data = requests .delete (self .base_url + '/{}/{}' .format (elem .e_type , elem .id ),
283
+ data = requests .delete (self .BASE_URL + '/{}/{}' .format (elem .e_type , elem .id ),
284
284
data = self .__serial_elem (elem ), auth = (NAME , PASS ))
285
285
if data .ok :
286
286
return int (data .text )
@@ -300,7 +300,7 @@ def get_elements(self, etype: str, lst_eid: list) -> list:
300
300
"""
301
301
GET /api/0.6/[nodes|ways|relations]?#parameters
302
302
"""
303
- data = requests .get (self .base_url + '/{}s?{}s={}' .format (etype , etype , ',' .join (map (str , lst_eid ))),
303
+ data = requests .get (self .BASE_URL + '/{}s?{}s={}' .format (etype , etype , ',' .join (map (str , lst_eid ))),
304
304
auth = (NAME , PASS ))
305
305
if data .ok :
306
306
tree = ElemTree .fromstring (data .text )
@@ -322,7 +322,7 @@ def get_relation_of_element(self, etype: str, eid: int) -> list:
322
322
"""
323
323
GET /api/0.6/[node|way|relation]/#id/relations
324
324
"""
325
- data = requests .get (self .base_url + '/{}/{}/relations' .format (etype , eid ), auth = (NAME , PASS ))
325
+ data = requests .get (self .BASE_URL + '/{}/{}/relations' .format (etype , eid ), auth = (NAME , PASS ))
326
326
if data .ok :
327
327
tree = ElemTree .fromstring (data .text )
328
328
logger .debug (data .text )
@@ -338,7 +338,7 @@ def get_ways_of_node(self, eid: int) -> list:
338
338
"""
339
339
GET /api/0.6/node/#id/ways
340
340
"""
341
- data = requests .get (self .base_url + '/node/{}/ways' .format (eid ), auth = (NAME , PASS ))
341
+ data = requests .get (self .BASE_URL + '/node/{}/ways' .format (eid ), auth = (NAME , PASS ))
342
342
if data .ok :
343
343
tree = ElemTree .fromstring (data .text )
344
344
logger .debug (data .text )
@@ -356,7 +356,7 @@ def get_element_bbox(self, bbox: tuple) -> list:
356
356
GET /api/0.6/map?bbox=left,bottom,right,top
357
357
358
358
"""
359
- data = requests .get (self .base_url + '/map?bbox={}' .format (',' .join (map (str , bbox ))), auth = (NAME , PASS ))
359
+ data = requests .get (self .BASE_URL + '/map?bbox={}' .format (',' .join (map (str , bbox ))), auth = (NAME , PASS ))
360
360
if data .ok :
361
361
tree = ElemTree .fromstring (data .text )
362
362
logger .debug (data .text )
@@ -375,7 +375,7 @@ def get_bbox_gpx(self, bbox: tuple, page: int = 0) -> list:
375
375
returns 5000GPS trackpoints max, increase page for any additional 5000
376
376
GET /api/0.6/trackpoints?bbox=left,bottom,right,top&page=pageNumber
377
377
"""
378
- data = requests .get (self .base_url + '/trackpoints?bbox={}' + ',' .join (map (str , bbox )), auth = (NAME , PASS ))
378
+ data = requests .get (self .BASE_URL + '/trackpoints?bbox={}' + ',' .join (map (str , bbox )), auth = (NAME , PASS ))
379
379
if data .ok :
380
380
return self .__parse_gpx_info (data .text )
381
381
raise Exception (data .text )
@@ -388,7 +388,7 @@ def upload_gpx(self, trace: str, name: str, description: str, tags: set,
388
388
"""
389
389
content = {'description' : description , 'tags' : ',' .join (tags ), 'visibility' : visibility }
390
390
req_file = {'file' : (name , trace )}
391
- data = requests .post (self .base_url + '/gpx/create' , auth = (NAME , PASS ), files = req_file , data = content )
391
+ data = requests .post (self .BASE_URL + '/gpx/create' , auth = (NAME , PASS ), files = req_file , data = content )
392
392
if data .ok :
393
393
return int (data .text )
394
394
raise Exception (data .text )
@@ -401,7 +401,7 @@ def update_gpx(self, tid: int, trace: str, description: str, tags: list,
401
401
"""
402
402
content = {'description' : description , 'tags' : ',' .join (tags ), 'public' : public , 'visibility' : visibility }
403
403
req_file = {'file' : ('test-trace.gpx' , trace )}
404
- data = requests .put (self .base_url + '/gpx/' + str (tid ), auth = (NAME , PASS ), files = req_file , data = content )
404
+ data = requests .put (self .BASE_URL + '/gpx/' + str (tid ), auth = (NAME , PASS ), files = req_file , data = content )
405
405
if data .ok :
406
406
logger .debug ('updated' )
407
407
else :
@@ -412,7 +412,7 @@ def delete_gpx(self, tid: int):
412
412
"""
413
413
DELETE /api/0.6/gpx/#id
414
414
"""
415
- data = requests .delete (self .base_url + '/gpx/' + str (tid ), auth = (NAME , PASS ))
415
+ data = requests .delete (self .BASE_URL + '/gpx/' + str (tid ), auth = (NAME , PASS ))
416
416
if data .ok :
417
417
logger .debug ('deleted' )
418
418
else :
@@ -423,7 +423,7 @@ def get_gpx(self, tid: int) -> str:
423
423
"""
424
424
GET /api/0.6/gpx/#id/data
425
425
"""
426
- data = requests .get (self .base_url + '/gpx/{}/data' .format (tid ), auth = (NAME , PASS ))
426
+ data = requests .get (self .BASE_URL + '/gpx/{}/data' .format (tid ), auth = (NAME , PASS ))
427
427
if data .ok :
428
428
return data .text
429
429
raise Exception (data .text )
@@ -432,7 +432,7 @@ def get_own_gpx(self) -> list:
432
432
"""
433
433
GET /api/0.6/user/gpx_files
434
434
"""
435
- data = requests .get (self .base_url + '/user/gpx_files' , auth = (NAME , PASS ))
435
+ data = requests .get (self .BASE_URL + '/user/gpx_files' , auth = (NAME , PASS ))
436
436
if data .ok :
437
437
return self .__parse_gpx_info (data .text )
438
438
raise Exception (data .text )
@@ -456,7 +456,7 @@ def get_user(self, uid: int) -> dict:
456
456
:param uid: user id
457
457
:returns: dictionary with user detail
458
458
"""
459
- data = requests .get (self .base_url + '/user/' + str (uid ), auth = (NAME , PASS ))
459
+ data = requests .get (self .BASE_URL + '/user/' + str (uid ), auth = (NAME , PASS ))
460
460
if data .ok :
461
461
return self .__parse_user (data .text )[0 ]
462
462
raise Exception (data .text )
@@ -468,7 +468,7 @@ def get_users(self, uids: list) -> list:
468
468
:param uids: uid in a list
469
469
:returns: list of dictionary with user detail
470
470
"""
471
- data = requests .get (self .base_url + '/users?users=' + ',' .join (map (str , uids )), auth = (NAME , PASS ))
471
+ data = requests .get (self .BASE_URL + '/users?users=' + ',' .join (map (str , uids )), auth = (NAME , PASS ))
472
472
if data .ok :
473
473
logger .debug (data .text )
474
474
return self .__parse_user (data .text )
@@ -524,7 +524,7 @@ def get_notes_bbox(self, bbox: tuple, limit: int = 100, closed: int = 7) -> list
524
524
"""
525
525
GET /api/0.6/notes?bbox=left,bottom,right,top
526
526
"""
527
- data = requests .get (self .base_url + '/notes?bbox=' + ',' .join (map (str , bbox )), auth = (NAME , PASS ))
527
+ data = requests .get (self .BASE_URL + '/notes?bbox=' + ',' .join (map (str , bbox )), auth = (NAME , PASS ))
528
528
logger .debug (data .text )
529
529
if data .ok :
530
530
tree = ElemTree .fromstring (data .text )
@@ -537,7 +537,7 @@ def get_note(self, nid: int) -> Note:
537
537
"""
538
538
GET /api/0.6/notes/#id
539
539
"""
540
- data = requests .get (self .base_url + '/notes/{}' .format (str (nid )), auth = (NAME , PASS ))
540
+ data = requests .get (self .BASE_URL + '/notes/{}' .format (str (nid )), auth = (NAME , PASS ))
541
541
logger .debug (data .text )
542
542
if data .ok :
543
543
tree = ElemTree .fromstring (data .text )
@@ -550,7 +550,7 @@ def create_note(self, text: str, lat: float, lon: float) -> Note:
550
550
"""
551
551
POST /api/0.6/notes?lat=<lat>&lon=<lon>&text=<ANote>
552
552
"""
553
- data = requests .post (self .base_url + '/notes' , params = {'lat' : lat , 'lon' : lon , 'text' : text }, auth = (NAME , PASS ))
553
+ data = requests .post (self .BASE_URL + '/notes' , params = {'lat' : lat , 'lon' : lon , 'text' : text }, auth = (NAME , PASS ))
554
554
logger .debug (data .text )
555
555
if data .ok :
556
556
tree = ElemTree .fromstring (data .text )
@@ -563,7 +563,7 @@ def comment_note(self, nid: int, text: str) -> Note:
563
563
"""
564
564
POST /api/0.6/notes/#id/comment?text=<ANoteComment>
565
565
"""
566
- data = requests .post (self .base_url + '/notes/{}/comment' .format (str (nid )),
566
+ data = requests .post (self .BASE_URL + '/notes/{}/comment' .format (str (nid )),
567
567
params = {'text' : text }, auth = (NAME , PASS ))
568
568
logger .debug (data .text )
569
569
if data .ok :
@@ -581,7 +581,7 @@ def close_note(self, nid: int, text: str) -> Note:
581
581
"""
582
582
POST /api/0.6/notes/#id/close?text=<Comment>
583
583
"""
584
- data = requests .post (self .base_url + '/notes/{}/close' .format (str (nid )),
584
+ data = requests .post (self .BASE_URL + '/notes/{}/close' .format (str (nid )),
585
585
params = {'text' : text }, auth = (NAME , PASS ))
586
586
logger .debug (data .text )
587
587
if data .ok :
@@ -599,7 +599,7 @@ def reopen_note(self, nid: int, text: str):
599
599
"""
600
600
POST /api/0.6/notes/#id/reopen?text=<ANoteComment>
601
601
"""
602
- data = requests .post (self .base_url + '/notes/{}/close' .format (str (nid )),
602
+ data = requests .post (self .BASE_URL + '/notes/{}/close' .format (str (nid )),
603
603
params = {'text' : text }, auth = (NAME , PASS ))
604
604
logger .debug (data .text )
605
605
if data .ok :
0 commit comments