def _validate_file(pathname): return ( pathname in paths or ( get_reader_for(pathname) and _support(get_reader_for(pathname)) and all(not fnmatch(pathname, p) for p in exclude_patterns) and _not_duplicate(pathname)))
def analyze_source_code(self, filename, code): context = FileInfoBuilder(filename) reader = (get_reader_for(filename) or CLikeReader)(context) tokens = reader.generate_tokens(code) for processor in self.processors: tokens = processor(tokens, reader) for _ in reader(tokens, reader): pass return context.fileinfo
def language_supported(self) -> bool: """ Return whether the language used in the modification can be analyzed by Pydriller. Languages are derived from the file extension. Supported languages are those supported by Lizard. :return: True iff language of this Modification can be analyzed. """ return lizard_languages.get_reader_for(self.filename) is not None
def analyze_source_code(self, filename, code): context = FileInfoBuilder(filename) reader = (get_reader_for(filename) or CLikeReader)(context) tokens = reader.generate_tokens(code) try: for processor in self.processors: tokens = processor(tokens, reader) for _ in reader(tokens, reader): pass except RecursionError as e: sys.stderr.write( "[skip] fail to process '%s' with RecursionError - %s\n" % (filename, e)) return context.fileinfo
def test_unknown_extension(self): self.assertEqual(None, get_reader_for("a.unknown"))
def test_GDScript(self): self.assertEqual(GDScriptReader, get_reader_for("a.gd"))
def test_scala(self): self.assertEqual(ScalaReader, get_reader_for("a.scala"))
def test_JavaScript(self): self.assertEqual(JavaScriptReader, get_reader_for("a.js"))
def test_c_cpp(self): for name in ("a.cpp", ".cxx", ".h", ".hpp"): self.assertEqual(CLikeReader, get_reader_for(name), "File name '%s' is not recognized as c/c++ file" % name)
def test_c_cpp(self): for name in ("a.cpp", ".cxx", ".h", ".hpp"): self.assertEqual( CLikeReader, get_reader_for(name), "File name '%s' is not recognized as c/c++ file" % name)
def _get_reader(file_): return lizard_languages.get_reader_for(file_) # pylint: disable=E1101
def test_java(self): self.assertEqual(JavaReader, get_reader_for("a.java"))
def test_not_case_sensitive(self): self.assertEqual(CLikeReader, get_reader_for("a.Cpp"))
def test_objectiveC(self): self.assertEqual(ObjCReader, get_reader_for("a.m"))
def language_supported(self) -> bool: return lizard_languages.get_reader_for(self.filename) is not None