def handle(self, *args, **options): VisnykDocument.init() for arg in args: for root, _, files in os.walk(arg, topdown=True): for fl in files: fname, ext = os.path.splitext(fl) if ext.lower() in [".xml", ""]: continue basename = os.path.join(root, fname) if not os.path.exists(basename + ".xml"): self.stderr.write( 'Cannot find "{0}.xml", skipping'.format(basename)) continue try: doc = None if not os.path.exists(basename + ".json"): # continue doc = self.convert_to_json_doc(basename, ext) if doc: with open(basename + ".json", "w") as fp: json.dump(doc, fp) else: with open(basename + ".json", "r") as fp: doc = json.load(fp) if doc: doc["_id"] = fname doc["filename"] = basename.replace( arg, "", 1).lstrip("/") + ext el_doc = VisnykDocument(**doc) el_doc.save() except ConvertException: self.stderr.write("Cannot convert {0}".format(fl))