fix: jerry rig support for old python

pull/271/head
Raphaël Vinot 2018-08-28 16:30:34 -04:00
parent 7e0d91af2b
commit f4c0b92305
3 changed files with 17 additions and 7 deletions

View File

@ -36,6 +36,10 @@ try:
except ImportError: except ImportError:
HAVE_REQUESTS = False HAVE_REQUESTS = False
if (3, 0) <= sys.version_info < (3, 6):
OLD_PY3 = True
else:
OLD_PY3 = False
try: try:
from requests_futures.sessions import FuturesSession from requests_futures.sessions import FuturesSession
@ -127,7 +131,10 @@ class PyMISP(object):
def get_local_describe_types(self): def get_local_describe_types(self):
with open(os.path.join(self.resources_path, 'describeTypes.json'), 'rb') as f: with open(os.path.join(self.resources_path, 'describeTypes.json'), 'rb') as f:
describe_types = json.load(f) if OLD_PY3:
describe_types = json.loads(f.read().decode())
else:
describe_types = json.load(f)
return describe_types['result'] return describe_types['result']
def get_live_describe_types(self): def get_live_describe_types(self):

View File

@ -189,12 +189,10 @@ class ExpandedPyMISP(PyMISP):
me.load(e) me.load(e)
to_return.append(me) to_return.append(me)
elif controller == 'attributes': elif controller == 'attributes':
# FIXME: if the query doesn't match, the request returns an empty list, and not a dictionary; for a in normalized_response.get('Attribute'):
if normalized_response: ma = MISPAttribute()
for a in normalized_response.get('Attribute'): ma.from_dict(**a)
ma = MISPAttribute() to_return.append(ma)
ma.from_dict(**a)
to_return.append(ma)
elif controller == 'objects': elif controller == 'objects':
raise Exception('Not implemented yet') raise Exception('Not implemented yet')
return to_return return to_return

View File

@ -1011,6 +1011,11 @@ class MISPObject(AbstractMISP):
else: else:
self._known_template = False self._known_template = False
if kwargs.get('timestamp'):
if sys.version_info >= (3, 3):
self.timestamp = datetime.datetime.fromtimestamp(int(kwargs.pop('timestamp')), datetime.timezone.utc)
else:
self.timestamp = datetime.datetime.fromtimestamp(int(kwargs.pop('timestamp')), UTC())
if kwargs.get('Attribute'): if kwargs.get('Attribute'):
for a in kwargs.pop('Attribute'): for a in kwargs.pop('Attribute'):
self.add_attribute(**a) self.add_attribute(**a)