scc_access/scc_access.py

changeset 17
9d25bd3e15c4
parent 16
ddaea4327bd5
child 19
2a6a9e95bd16
equal deleted inserted replaced
16:ddaea4327bd5 17:9d25bd3e15c4
1 import requests 1 import requests
2 requests.packages.urllib3.disable_warnings() 2 requests.packages.urllib3.disable_warnings()
3 3
4 import sys 4 import sys
5 import urlparse 5
6 try:
7 import urllib.parse as urlparse # Python 3
8 except ImportError:
9 import urlparse # Python 2
10
6 import argparse 11 import argparse
7 import os 12 import os
8 import re 13 import re
9 import time 14 import time
10 import StringIO 15 from io import StringIO
11 from zipfile import ZipFile 16 from zipfile import ZipFile
12 import datetime 17 import datetime
13 import logging 18 import logging
14 import yaml 19 import yaml
15 20
126 local_dir = os.path.join(self.output_dir, measurement_id, subdir) 131 local_dir = os.path.join(self.output_dir, measurement_id, subdir)
127 if not os.path.exists(local_dir): 132 if not os.path.exists(local_dir):
128 os.makedirs(local_dir) 133 os.makedirs(local_dir)
129 134
130 # Save the file by chunk, needed if the file is big. 135 # Save the file by chunk, needed if the file is big.
131 memory_file = StringIO.StringIO() 136 memory_file = StringIO()
132 137
133 for chunk in request.iter_content(chunk_size=1024): 138 for chunk in request.iter_content(chunk_size=1024):
134 if chunk: # filter out keep-alive new chunks 139 if chunk: # filter out keep-alive new chunks
135 memory_file.write(chunk) 140 memory_file.write(chunk)
136 memory_file.flush() 141 memory_file.flush()
364 raise ValueError('No available measurement id found.') 369 raise ValueError('No available measurement id found.')
365 370
366 return measurement_id 371 return measurement_id
367 372
368 373
369 class ApiObject: 374 class ApiObject(object):
370 """ A generic class object. """ 375 """ A generic class object. """
371 376
372 def __init__(self, base_url, dict_response): 377 def __init__(self, base_url, dict_response):
373 self.base_url = base_url 378 self.base_url = base_url
374 379
375 if dict_response: 380 if dict_response:
376 # Add the dictionary key value pairs as object properties 381 # Add the dictionary key value pairs as object properties
377 for key, value in dict_response.items(): 382 for key, value in dict_response.items():
378 setattr(self, key, value) 383 # logger.debug('Setting key {0} to value {1}'.format(key, value))
384 try:
385 setattr(self, key, value)
386 except:
387 logger.warning('Could not set attribute {0} to value {1}'.format(key, value))
379 self.exists = True 388 self.exists = True
380 else: 389 else:
381 self.exists = False 390 self.exists = False
382 391
383 392

mercurial