Ejemplo n.º 1
0
def migrate_country(entry):
    """
    Migration of a JSON-represented country.
    """
    try:
        corresp_map = {
            'code': entry['fields']['code'],
            'wikiname': entry['fields']['wikiname'],
            'currency': entry['fields']['currency'],
            'slug': entry['fields']['slug'],
            'name': entry['fields']['name'],
        }
        additional_corresp_map = {
            'old_pk': entry['pk'],
            'old_capitalcity_pk': entry['fields']['capital_city'],
        }

    except KeyError:
        raise RuntimeError(u"Invalid JSON configuration: %s" % str(entry))

    country = Country.find_one({'code': entry['fields']['code']})
    if not country:
        country = Country()

    country.set_lang("en")
    for k, v in corresp_map.iteritems():
        setattr(country, k, v)

    for k, v in additional_corresp_map.iteritems():
        country[k] = v

    country.save()
    return country
Ejemplo n.º 2
0
def migrate_country(entry):
    """
    Migration of a JSON-represented country.
    """
    try:
        corresp_map = {
            'code': entry['fields']['code'],
            'wikiname': entry['fields']['wikiname'],
            'currency': entry['fields']['currency'],
            'slug': entry['fields']['slug'],
            'name': entry['fields']['name'],
        }
        additional_corresp_map = {
            'old_pk': entry['pk'],
            'old_capitalcity_pk': entry['fields']['capital_city'],
        }

    except KeyError:
        raise RuntimeError(u"Invalid JSON configuration: %s" % str(entry))

    country = Country.find_one({'code': entry['fields']['code']})
    if not country:
        country = Country()

    country.set_lang("en")
    for k, v in corresp_map.iteritems():
        setattr(country, k, v)

    for k, v in additional_corresp_map.iteritems():
        country[k] = v

    country.save()
    return country
Ejemplo n.º 3
0
def migrate_city(entry):
    """
    Migration of a JSON-represented city.
    """
    corresp_map = {
        'wikiname':
        entry['fields']['wikiname'],
        'slug':
        entry['fields']['slug'],
        'name':
        entry['fields']['name'],
        'rankings': [
            float(entry['fields']['rating_factor_%d' % idx])
            for idx in xrange(1, 4)
        ],
        'timezone':
        u'UTC%s%d' % (u'' if entry['fields']['timezone'] < 0 else u'+',
                      entry['fields']['timezone']),
        'total_ranking':
        float(entry['fields']['total_rating']),
        'coordinates': [
            float(entry['fields']['latitude']),
            float(entry['fields']['longitude'])
        ],
        'country':
        Country.find_one({
            'old_pk': entry['fields']['country']
        })._id,
    }
    additional_corresp_map = {
        'old_pk': entry['pk'],
    }
    city = City.find_one({'old_pk': entry['pk']})
    if not city:
        city = City()

    city.set_lang("en")
    for k, v in corresp_map.iteritems():
        setattr(city, k, v)

    for k, v in additional_corresp_map.iteritems():
        city[k] = v

    city.save()

    return city
Ejemplo n.º 4
0
def migrate_city(entry):
    """
    Migration of a JSON-represented city.
    """
    corresp_map = {
        'wikiname': entry['fields']['wikiname'],
        'slug': entry['fields']['slug'],
        'name': entry['fields']['name'],
        'rankings': [float(entry['fields']['rating_factor_%d' % idx])
                     for idx in xrange(1, 4)],
        'timezone': u'UTC%s%d' % (
                         u'' if entry['fields']['timezone'] < 0 else u'+',
                         entry['fields']['timezone']),
        'total_ranking': float(entry['fields']['total_rating']),
        'coordinates': [float(entry['fields']['latitude']),
                        float(entry['fields']['longitude'])],
        'country': Country.find_one({
                         'old_pk': entry['fields']['country']})._id,
    }
    additional_corresp_map = {
        'old_pk': entry['pk'],
    }
    city = City.find_one({'old_pk': entry['pk']})
    if not city:
        city = City()

    city.set_lang("en")
    for k, v in corresp_map.iteritems():
        setattr(city, k, v)

    for k, v in additional_corresp_map.iteritems():
        city[k] = v

    city.save()

    return city