diff -r b7d19cd87fcf -r 09e00f38d177 src/hdalab/management/commands/import_hda_insee_csv.py --- a/src/hdalab/management/commands/import_hda_insee_csv.py Thu Apr 12 01:27:16 2018 +0200 +++ b/src/hdalab/management/commands/import_hda_insee_csv.py Wed Apr 11 12:19:47 2018 +0200 @@ -1,6 +1,11 @@ # -*- coding: utf-8 -*- ''' -@author: raphv +Importe les code INSEE dans les fiches HDA (objets :class:`hdabo.models.datasheet`). + +**Usage**: ``django-admin import_hda_insee_csv [options] [args [args ...]]`` + +**Arguments**: + ''' import csv import re @@ -18,21 +23,21 @@ args = '' options = '' help = """Imports HDA Lab INSEE codes from a csv file""" - + def handle(self, *args, **options): if len(args) == 0 or not args[0]: raise CommandError("Give a CSV File to import") - + filename = args[0] - + csvfile = open(filename, "rb") dialect = csv.Sniffer().sniff(csvfile.read(1024)) csvfile.seek(0) reader = csv.reader(csvfile, dialect) fieldstoget = [ 'id', 'insee' ] - - + + for i,line in enumerate(reader): if i == 0: fields = {} @@ -47,9 +52,9 @@ rawdata = dict([(k,line[v].strip()) for k,v in fields.iteritems()]) # Traitement special pour la Corse insee = int(re.sub('^2(A|B)','20',rawdata['insee'])) - + hda_id = int(rawdata['id']) - + try: datasheet = Datasheet.objects.get(hda_id=hda_id) except Datasheet.DoesNotExist: @@ -60,11 +65,11 @@ except InseeCoords.DoesNotExist: print "INSEE entry for Insee Code %d does not exist" % insee inseecoord = None - + if datasheet is not None and inseecoord is not None: dsextra, created = DatasheetExtras.objects.get_or_create(datasheet=datasheet, defaults={'insee':inseecoord}) if not created: dsextra.insee = inseecoord dsextra.save() - - csvfile.close() \ No newline at end of file + + csvfile.close()