def link_code(pname, bname, release, linker_name, source, source_release=None): project = Project.objects.get(dir_name=pname) prelease = ProjectRelease.objects.filter(project=project).\ filter(release=release)[0] if source_release is not None: srelease = ProjectRelease.objects.filter(project=project).\ filter(release=source_release)[0] else: srelease = None codebase = CodeBase.objects.filter(project_release=prelease).\ filter(name=bname)[0] linker_cls_name = LINKERS[linker_name] linker_cls = import_clazz(linker_cls_name) linker = linker_cls(project, prelease, codebase, source, srelease) progress_monitor = CLIProgressMonitor(min_step=1.0) progress_monitor.info('Cache Count {0} miss of {1}'.format( cache_util.cache_miss, cache_util.cache_total)) start = time.clock() linker.link_references(progress_monitor) stop = time.clock() progress_monitor.info('Cache Count {0} miss of {1}'.format( cache_util.cache_miss, cache_util.cache_total)) progress_monitor.info('Time: {0}'.format(stop - start))
def link_code(pname, bname, release, linker_name, source, source_release=None): project = Project.objects.get(dir_name=pname) prelease = ProjectRelease.objects.filter(project=project).\ filter(release=release)[0] if source_release is not None: srelease = ProjectRelease.objects.filter(project=project).\ filter(release=source_release)[0] else: srelease = None codebase = CodeBase.objects.filter(project_release=prelease).\ filter(name=bname)[0] linker_cls_name = LINKERS[linker_name] linker_cls = import_clazz(linker_cls_name) linker = linker_cls(project, prelease, codebase, source, srelease) progress_monitor = CLIProgressMonitor(min_step=1.0) progress_monitor.info('Cache Count {0} miss of {1}' .format(cache_util.cache_miss, cache_util.cache_total)) start = time.clock() linker.link_references(progress_monitor) stop = time.clock() progress_monitor.info('Cache Count {0} miss of {1}' .format(cache_util.cache_miss, cache_util.cache_total)) progress_monitor.info('Time: {0}'.format(stop - start))
def debug_channel(pname, cname, parse_refs=True, entry_url=None): model = load_model(pname, STHREAD_PATH, cname) channel = SupportChannel.objects.filter(project__dir_name=pname).\ get(dir_name=cname) pm = CLIProgressMonitor() generic_parser.debug_channel(channel, model, progress_monitor=pm, parse_refs=parse_refs, entry_url=entry_url) return channel
def parse_channel(pname, cname, parse_refs=True): model = load_model(pname, STHREAD_PATH, cname) channel = SupportChannel.objects.filter(project__dir_name=pname).\ get(dir_name=cname) pm = CLIProgressMonitor() generic_parser.parse_channel(channel, model, progress_monitor=pm, parse_refs=parse_refs) dump_model(model, pname, STHREAD_PATH, cname) return channel
def parse_doc(pname, dname, release, parse_refs=True): prelease = ProjectRelease.objects.filter(project__dir_name=pname).\ filter(release=release)[0] document = Document.objects.filter(project_release=prelease).\ filter(title=dname)[0] doc_key = dname + release model = load_model(pname, DOC_PATH, doc_key) progress_monitor = CLIProgressMonitor() parse(document, model.pages, parse_refs, progress_monitor) return document
def post_process_channel(pname, cname): channel = SupportChannel.objects.filter(project__dir_name=pname).\ get(dir_name=cname) progress_monitor = CLIProgressMonitor() query = Message.objects.filter(sthread__isnull=True) progress_monitor.start('Post Processing', query.count()) for message in query.all(): post_process_message(channel, message) progress_monitor.work('Post processed a message', 1) progress_monitor.done() progress_monitor.start('Post Porcessing Threads', channel.threads.count()) for thread in channel.threads.iterator(): post_process_thread(channel, thread) progress_monitor.work('Post processed a thread', 1) progress_monitor.done() query = Message.objects.filter(sthread__channel=channel) progress_monitor.start('Post Processing References', query.count()) for message in query.all(): post_process_message_refs(message) progress_monitor.work('Processed references', 1) progress_monitor.done() return channel