diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-09-19 01:00:52 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-09-19 01:00:52 +0200 |
commit | 3b3b0de496dd568b7ca2a234dc0280c9b933a9ee (patch) | |
tree | dba3f9938b99cc849e312e4a6df649a3e1d2a0e9 /chimere/utils.py | |
parent | 3b6930b25c0d77e1e15c5a79becc5a523e661013 (diff) | |
download | Chimère-3b3b0de496dd568b7ca2a234dc0280c9b933a9ee.tar.bz2 Chimère-3b3b0de496dd568b7ca2a234dc0280c9b933a9ee.zip |
Remove a duplicate portion of code (probably an old mistake)
Diffstat (limited to 'chimere/utils.py')
-rw-r--r-- | chimere/utils.py | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/chimere/utils.py b/chimere/utils.py index 556b51b..2e6f777 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -434,123 +434,6 @@ class ShapefileManager(ImportManager): buff.close() return filename, zip_stream -class ImportManager: - u""" - Generic class for specific importers - """ - default_source = None - def __init__(self, importer_instance): - self.importer_instance = importer_instance - self.default_name = " - ".join([cat.name - for cat in self.importer_instance.categories.order_by('name').all()]) - - def get(self): - pass - - def put(self): - pass - - def create_or_update_item(self, cls, values, import_key, version=None): - updated, created, item = False, False, None - if import_key: - dct_import = { - 'import_key__icontains':'%s:%s;' % ( - self.importer_instance.importer_type, - import_key), - 'import_source':self.importer_instance.source} - try: - item = cls.objects.get(**dct_import) - if version and item.import_version == int(version): - # no update since the last import - return item, None, None - for k in values: - setattr(item, k, values[k]) - try: - item.save() - except TypeError: - # error on data source - return None, False, False - updated = True - except ObjectDoesNotExist: - pass - if not item: - values.update({ - 'import_source':self.importer_instance.source}) - values['status'] = 'I' - try: - item = cls.objects.create(**values) - except TypeError: - # error on data source - return None, False, False - created = True - if import_key: - item.set_key(self.importer_instance.importer_type, - import_key) - item.categories.clear() - for cat in self.importer_instance.categories.all(): - item.categories.add(cat) - return item, updated, created - - @classmethod - def get_files_inside_zip(cls, zippedfile, suffixes, dest_dir=None): - try: - flz = zipfile.ZipFile(zippedfile) - except zipfile.BadZipfile: - return [], _(u"Bad zip file") - namelist = flz.namelist() - filenames = [] - for suffix in suffixes: - current_file_name = None - for name in namelist: - if name.endswith(suffix) \ - or name.endswith(suffix.lower()) \ - or name.endswith(suffix.upper()): - current_file_name = name - filenames.append(current_file_name) - files = [] - for filename in filenames: - if filename: - if dest_dir: - files.append(filename) - flz.extract(filename, dest_dir) - else: - files.append(flz.open(filename)) - else: - files.append(None) - return files - - def get_source_file(self, source, suffixes, dest_dir=None, - extra_url=None): - if not hasattr(source, 'read'): - if not source: - source = self.importer_instance.source \ - if self.importer_instance.source else self.default_source - try: - url = source - if extra_url: - url += extra_url - remotehandle = urllib2.urlopen(url) - source = StringIO.StringIO(remotehandle.read()) - remotehandle.close() - except ValueError: - # assume it is a local file - try: - source = open(source) - except IOError, msg: - return (None, msg) - except urllib2.URLError as error: - return (None, error.message) - if self.importer_instance.zipped: - try: - files = self.get_files_inside_zip(source, suffixes, dest_dir) - except zipfile.BadZipfile: - return (None, _(u"Bad zip file")) - if not files or None in files: - return (None, - _(u"Missing file(s) inside the zip file")) - source = files[0] if len(suffixes) == 1 else files - return (source, None) - class CSVManager(ImportManager): u""" CSV importer |