def classify_code_snippet(text, filters): code = None try: if is_xml_snippet(text)[0]: language = XML_LANGUAGE elif is_java_snippet(text, filters[JAVA_LANGUAGE])[0]: language = JAVA_LANGUAGE else: language = OTHER_LANGUAGE code = CodeSnippet( language=language, snippet_text=text, ) code.save() except Exception: logger.exception('Error while classifying snippet.') return code
def load_snippets(self): from_path = os.path.join(settings.TESTDATA, 'snippets') snippets = [] for i, path in enumerate(sorted(os.listdir(from_path))): if path.endswith('.java'): with open(os.path.join(from_path, path)) as f: text = f.read() encoding = get_encoding(text) content = unicode(text, encoding) snippet = CodeSnippet( index = i, project = self.project, snippet_text = content, language = 'j', source = 'd', ) snippet.save() snippets.append(snippet) return snippets
def load_snippets(self): from_path = os.path.join(settings.TESTDATA, 'snippets') snippets = [] for i, path in enumerate(sorted(os.listdir(from_path))): if path.endswith('.java'): with open(os.path.join(from_path, path)) as f: text = f.read() encoding = get_encoding(text) content = unicode(text, encoding) snippet = CodeSnippet( index=i, project=self.project, snippet_text=content, language='j', source='d', ) snippet.save() snippets.append(snippet) return snippets
def _save_snippets(self, message, load, snippets): for index, (snippet, language) in enumerate(snippets): if language == REPLY_LANGUAGE: continue text = merge_lines(snippet) code = CodeSnippet(file_path=message.file_path, url=message.url, language=language, source=CHANNEL_SOURCE, snippet_text=text, index=index) code.local_context = message if load.entry is not None: code.global_context = load.entry code.project = self.channel.project code.save()
def _save_snippets(self, message, load, snippets): for index, (snippet, language) in enumerate(snippets): if language == REPLY_LANGUAGE: continue text = merge_lines(snippet) code = CodeSnippet( file_path=message.file_path, url=message.url, language=language, source=CHANNEL_SOURCE, snippet_text=text, index=index) code.local_context = message if load.entry is not None: code.global_context = load.entry code.project = self.channel.project code.save()
def create_documentation(self): create_doc_local(self.pname, 'manual', self.release, 'foo', 'url') doc = create_doc_db(self.pname, 'manual', self.release, 'url', 'foo', 'foo') page1 = Page(document=doc, title='HTTP Server') page1.save() page2 = Page(document=doc, title='HTTP Client') page2.save() section1 = Section(page=page1, number='1.', title='Implementing foo bar') section1.save() section11 = Section(page=page1, number='1.1', title='Reference', parent=section1) section11.save() section2 = Section(page=page2, number='2.', title='Implementing the Client') section2.save() section21 = Section(page=page2, number='2.1', title='Implementing the Client Again') section21.save() coderef1 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='@p1.Annotation1', source='d', kind_hint=self.ann_kind, local_context=section1, mid_context=section1, global_context=page1 ) coderef1.save() self.code_refs.append(coderef1) coderef2 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='@Annotation2', source='d', kind_hint=self.ann_kind, local_context=section1, mid_context=section1, global_context=page1 ) coderef2.save() self.code_refs.append(coderef2) snippet_content = r''' @Annotation1(foobarbaz=2) public class FooBar { public void main(String arg) { System.out.println(); RecodocClient rc = new RecodocClient(); } } ''' snippet1 = CodeSnippet( project=self.project, project_release=self.releasedb, language='j', source='d', snippet_text=snippet_content, local_context=section2, mid_context=section2, global_context=page2 ) snippet1.save() self.code_snippets.append(snippet1)
def create_channel(self): create_channel_local(self.pname, 'usermail', 'foo', 'url') channel = create_channel_db(self.pname, 'user mail', 'usermail', 'foo', 'foo', 'url') thread1 = SupportThread( title='HTTP Server Question', channel=channel) thread1.save() thread2 = SupportThread( title='Http client question', channel=channel) thread2.save() thread3 = SupportThread( title='Random Question', channel=channel) thread3.save() message1 = Message( title='HTTP Server Question', index=0, sthread=thread1 ) message1.save() message2 = Message( title='RE: HTTP Server Question', index=1, sthread=thread1 ) message2.save() message3 = Message( title='Http client question', index=0, sthread=thread2 ) message3.save() message4 = Message( title='RE: Http client question', index=1, sthread=thread2 ) message4.save() message5 = Message( title='Random Question', index=0, sthread=thread3 ) message5.save() message6 = Message( title='RE: RE: HTTP Server Question', index=0, sthread=thread1 ) message6.save() coderef1 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='clazz1', source='s', kind_hint=self.class_kind, local_context=message1, global_context=thread1 ) coderef1.save() self.code_refs.append(coderef1) coderef2 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='Enum1', source='s', kind_hint=self.class_kind, local_context=message2, global_context=thread1, ) coderef2.save() self.code_refs.append(coderef2) coderef3 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='Disco', source='s', kind_hint=self.class_kind, local_context=message2, global_context=thread1, ) coderef3.save() self.code_refs.append(coderef3) coderef4 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='RecodocClient', source='s', kind_hint=self.class_kind, local_context=message2, global_context=thread1, ) coderef4.save() self.code_refs.append(coderef4) coderef5 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='foo.RecodocClient', source='s', kind_hint=self.class_kind, local_context=message2, global_context=thread1, ) coderef5.save() self.code_refs.append(coderef5) coderef6 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='callMethod1("hello")', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef6.save() self.code_refs.append(coderef6) coderef7 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='callMethod1("hello", 2)', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef7.save() self.code_refs.append(coderef7) coderef8 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='callMethod1(p3.Foo, p3.Bar)', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef8.save() self.code_refs.append(coderef8) coderef9 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='equals()', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef9.save() self.code_refs.append(coderef9) coderef10 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='list.add(foo)', source='s', kind_hint=self.class_kind, local_context=message2, global_context=thread1, ) coderef10.save() self.code_refs.append(coderef10) coderef11 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='list.add(foo)', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, parent_reference=coderef10, ) coderef11.save() self.code_refs.append(coderef11) coderef12 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='nonexistentmethod', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, parent_reference=coderef10, ) coderef12.save() self.code_refs.append(coderef12) # Index = 14 coderef13 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='recodoc.callMethod10(foo)', source='s', kind_hint=self.class_kind, local_context=message5, global_context=thread3, ) coderef13.save() self.code_refs.append(coderef13) # Index = 15 coderef14 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='recodoc.callMethod10(foo)', source='s', kind_hint=self.method_kind, local_context=message5, global_context=thread3, parent_reference=coderef13, ) coderef14.save() self.code_refs.append(coderef14) coderef15 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='getClient2()', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef15.save() self.code_refs.append(coderef15) # Index = 17 coderef16 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='method100()', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef16.save() self.code_refs.append(coderef16) coderef17 = SingleCodeReference( project=self.project, project_release=self.releasedb, content='method200()', source='s', kind_hint=self.method_kind, local_context=message2, global_context=thread1, ) coderef17.save() self.code_refs.append(coderef17) snippet_content = r''' @Annotation1 public class FooBar extends FooBarSuper { public void main(String arg) { System.out.println(); RecodocClient obj = new RecodocClient(); List list = null; aFoo.callMethod10(); } ''' snippet1 = CodeSnippet( project=self.project, project_release=self.releasedb, language='j', source='s', snippet_text=snippet_content, local_context=message3, global_context=thread2 ) snippet1.save() self.code_snippets.append(snippet1)