def rebuild(self): memory = TranslationMemory() data = list(memory.searcher.documents()) memory.empty() with memory.writer() as writer: for entry in data: writer.add_document(**entry)
def handle(self, *args, **options): """Translation memory import.""" langmap = None if options['language_map']: langmap = { x: y for (x, y) in ( z.split(':', 1) for z in options['language_map'].split(',') ) } memory = TranslationMemory() if options['file'].name.lower().endswith('.tmx'): memory.import_tmx(options['file'], langmap) elif options['file'].name.lower().endswith('.json'): try: data = json.load(options['file']) except ValueError: raise CommandError('Failed to parse JSON file!') finally: options['file'].close() with memory.writer() as writer: for entry in data: writer.add_document(**entry) else: raise CommandError( 'Unsupported file, needs .json or .tmx extension' )
def update_memory_task(self, *args, **kwargs): def fixup_strings(data): result = {} for key, value in data.items(): if isinstance(value, int): result[key] = value else: result[key] = force_text(value) return result data = extract_batch_kwargs(*args, **kwargs) memory = TranslationMemory() try: with memory.writer() as writer: for item in data: writer.add_document(**fixup_strings(item)) except LockError as exc: raise self.retry(exc=exc)
def update_memory_task(self, *args, **kwargs): def fixup_strings(data): result = {} for key, value in data.items(): if isinstance(value, int): result[key] = value else: result[key] = force_text(value) return result data = extract_batch_kwargs(*args, **kwargs) memory = TranslationMemory() try: with memory.writer() as writer: for item in data: writer.add_document(**fixup_strings(item)) except LockError: # Manually handle retries, it doesn't work # with celery-batches sleep(10) for unit in data: update_memory_task.delay(**unit)
def add_document(self): memory = TranslationMemory() with memory.writer() as writer: writer.add_document(**TEST_DOCUMENT)