mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Handle multiple answers correctly when dersializing
This commit is contained in:
@@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \
|
||||
|
||||
from logging import getLogger
|
||||
from itertools import chain
|
||||
from collections import OrderedDict
|
||||
from nsone import NSONE
|
||||
from nsone.rest.errors import RateLimitException, ResourceException
|
||||
from incf.countryutils import transformations
|
||||
@@ -60,16 +61,34 @@ class Ns1Provider(BaseProvider):
|
||||
for cntry in country:
|
||||
cn = transformations.cc_to_cn(cntry)
|
||||
con = transformations.cn_to_ctca2(cn)
|
||||
geo['{}-{}'.format(con, cntry)] = answer['answer']
|
||||
key = '{}-{}'.format(con, cntry)
|
||||
if key not in geo:
|
||||
geo[key] = answer['answer']
|
||||
else:
|
||||
geo[key].extend(answer['answer'])
|
||||
for state in us_state:
|
||||
geo['NA-US-{}'.format(state)] = answer['answer']
|
||||
key = 'NA-US-{}'.format(state)
|
||||
if key not in geo:
|
||||
geo[key] = answer['answer']
|
||||
else:
|
||||
geo[key].extend(answer['answer'])
|
||||
for province in ca_province:
|
||||
geo['NA-CA-{}'.format(province)] = answer['answer']
|
||||
key = 'NA-CA-{}'.format(province)
|
||||
if key not in geo:
|
||||
geo[key] = answer['answer']
|
||||
else:
|
||||
geo[key].extend(answer['answer'])
|
||||
for code in meta.get('iso_region_code', []):
|
||||
geo[code] = answer['answer']
|
||||
key = code
|
||||
if key not in geo:
|
||||
geo[key] = answer['answer']
|
||||
else:
|
||||
geo[key].extend(answer['answer'])
|
||||
else:
|
||||
values.extend(answer['answer'])
|
||||
codes.append([])
|
||||
values = [str(x) for x in values]
|
||||
geo = OrderedDict({str(k): [str(x) for x in v] for k, v in sorted(geo.items())})
|
||||
data['values'] = values
|
||||
data['geo'] = geo
|
||||
return data
|
||||
|
Reference in New Issue
Block a user