1
- import os
2
1
import json
2
+ import os
3
3
import uuid
4
4
5
- from bravado .requests_client import RequestsClient
6
5
from bravado .client import SwaggerClient
7
- from bravado .swagger_model import load_file
6
+ from bravado .requests_client import RequestsClient
7
+ from bravado .swagger_model import load_file , load_url
8
8
from simplejson import JSONDecodeError
9
9
10
- from .models import Project , MapToken , Analysis
11
- from .exceptions import RefreshTokenException
12
10
from .aws .s3 import str_to_file
11
+ from .exceptions import RefreshTokenException
12
+ from .models import Analysis , MapToken , Project
13
13
from .settings import RV_TEMP_URI
14
14
15
- SPEC_PATH = os .path .join (os .path .dirname (os .path .realpath (__file__ )),
16
- 'spec.yml' )
15
+ try :
16
+ from urllib .parse import urlparse
17
+ except ImportError :
18
+ from urlparse import urlparse
19
+
20
+
21
+ SPEC_PATH = os .getenv (
22
+ 'RF_API_SPEC_PATH' ,
23
+ 'https://raw.githubusercontent.com/raster-foundry/raster-foundry-api-spec/master/spec.yml'
24
+ )
17
25
18
26
19
27
class API (object ):
@@ -34,7 +42,10 @@ def __init__(self, refresh_token=None, api_token=None,
34
42
self .http = RequestsClient ()
35
43
self .scheme = scheme
36
44
37
- spec = load_file (SPEC_PATH )
45
+ if urlparse (SPEC_PATH ).netloc :
46
+ spec = load_url (SPEC_PATH )
47
+ else :
48
+ spec = load_file (SPEC_PATH )
38
49
39
50
spec ['host' ] = host
40
51
spec ['schemes' ] = [scheme ]
0 commit comments