test_class.file: lang-python/src/test/java/org/eclipse/steady/python/PythonFileAnalyzerTest.java
test_class.identifier: PythonFileAnalyzerTest
test_case.body: @Test
    public void testPython2() throws FileAnalysisException {
      final FileAnalyzer fa =
          PythonFileAnalyzer.createAnalyzer(new File("src/test/resources/python2_syntax.py"));
      assertTrue(fa instanceof org.eclipse.steady.python.Python335FileAnalyzer);
    }
test_case.class_method_signature: PythonFileAnalyzerTest.testPython2()
test_case.full_signature: @Test public void testPython2()
test_case.identifier: testPython2
test_case.invocations: createAnalyzer assertTrue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPython2()
focal_class.declarator: log = org.apache.logging.log4j.LogManager.getLogger()
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: analyzer = null
focal_class.modifier: private
focal_class.original_string: private FileAnalyzer analyzer = null;
focal_class.type: FileAnalyzer
focal_class.var_name: analyzer
focal_class.declarator: file = null
focal_class.modifier: private
focal_class.original_string: private File file = null;
focal_class.type: File
focal_class.var_name: file
focal_class.declarator: constructs = null
focal_class.modifier: private
focal_class.original_string: private Map<ConstructId, Construct> constructs = null;
focal_class.type: Map<ConstructId, Construct>
focal_class.var_name: constructs
focal_class.declarator: PY2_PATTERNS =
        new Pattern[] {Pattern.compile("^\\s*print\\s+\".*$"), Pattern.compile("^.*raw_input\\(.*$")}
focal_class.modifier: static final
focal_class.original_string: static final Pattern[] PY2_PATTERNS =
        new Pattern[] {Pattern.compile("^\\s*print\\s+\".*$"), Pattern.compile("^.*raw_input\\(.*$")};
focal_class.type: Pattern[]
focal_class.var_name: PY2_PATTERNS
focal_class.declarator: PY35_ASYNC_PATTERNS =
        new Pattern[] {Pattern.compile("^.*async\\s*def.*$")}
focal_class.modifier: static final
focal_class.original_string: static final Pattern[] PY35_ASYNC_PATTERNS =
        new Pattern[] {Pattern.compile("^.*async\\s*def.*$")};
focal_class.type: Pattern[]
focal_class.var_name: PY35_ASYNC_PATTERNS
focal_class.declarator: COMMENT_PATTERNS = new Pattern[] {Pattern.compile("^\\s*#.*$")}
focal_class.modifier: static final
focal_class.original_string: static final Pattern[] COMMENT_PATTERNS = new Pattern[] {Pattern.compile("^\\s*#.*$")};
focal_class.type: Pattern[]
focal_class.var_name: COMMENT_PATTERNS
focal_class.file: lang-python/src/main/java/org/eclipse/steady/python/PythonFileAnalyzer.java
focal_class.identifier: PythonFileAnalyzer
focal_class.interfaces: implements FileAnalyzer
focal_class.class_method_signature: PythonFileAnalyzer.getSupportedFileExtensions()
focal_class.full_signature: @Override public String[] getSupportedFileExtensions()
focal_class.identifier: getSupportedFileExtensions
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String[]
focal_class.signature: String[] getSupportedFileExtensions()
focal_class.class_method_signature: PythonFileAnalyzer.canAnalyze(File _file)
focal_class.full_signature: @Override public boolean canAnalyze(File _file)
focal_class.identifier: canAnalyze
focal_class.modifiers: @Override public
focal_class.parameters: (File _file)
focal_class.return: boolean
focal_class.signature: boolean canAnalyze(File _file)
focal_class.class_method_signature: PythonFileAnalyzer.analyze(final File _file)
focal_class.full_signature: @Override public void analyze(final File _file)
focal_class.identifier: analyze
focal_class.modifiers: @Override public
focal_class.parameters: (final File _file)
focal_class.return: void
focal_class.signature: void analyze(final File _file)
focal_class.class_method_signature: PythonFileAnalyzer.isTopOfType(Stack<PythonId> _context, PythonId.Type _type)
focal_class.full_signature: static boolean isTopOfType(Stack<PythonId> _context, PythonId.Type _type)
focal_class.identifier: isTopOfType
focal_class.modifiers: static
focal_class.parameters: (Stack<PythonId> _context, PythonId.Type _type)
focal_class.return: boolean
focal_class.signature: boolean isTopOfType(Stack<PythonId> _context, PythonId.Type _type)
focal_class.class_method_signature: PythonFileAnalyzer.isTopOfType(Stack<PythonId> _context, PythonId.Type[] _types)
focal_class.full_signature: static boolean isTopOfType(Stack<PythonId> _context, PythonId.Type[] _types)
focal_class.identifier: isTopOfType
focal_class.modifiers: static
focal_class.parameters: (Stack<PythonId> _context, PythonId.Type[] _types)
focal_class.return: boolean
focal_class.signature: boolean isTopOfType(Stack<PythonId> _context, PythonId.Type[] _types)
focal_class.class_method_signature: PythonFileAnalyzer.getConstructs()
focal_class.full_signature: @Override public Map<ConstructId, Construct> getConstructs()
focal_class.identifier: getConstructs
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<ConstructId, Construct>
focal_class.signature: Map<ConstructId, Construct> getConstructs()
focal_class.class_method_signature: PythonFileAnalyzer.containsConstruct(ConstructId _id)
focal_class.full_signature: @Override public boolean containsConstruct(ConstructId _id)
focal_class.identifier: containsConstruct
focal_class.modifiers: @Override public
focal_class.parameters: (ConstructId _id)
focal_class.return: boolean
focal_class.signature: boolean containsConstruct(ConstructId _id)
focal_class.class_method_signature: PythonFileAnalyzer.getConstruct(ConstructId _id)
focal_class.full_signature: @Override public Construct getConstruct(ConstructId _id)
focal_class.identifier: getConstruct
focal_class.modifiers: @Override public
focal_class.parameters: (ConstructId _id)
focal_class.return: Construct
focal_class.signature: Construct getConstruct(ConstructId _id)
focal_class.class_method_signature: PythonFileAnalyzer.hasChilds()
focal_class.full_signature: @Override public boolean hasChilds()
focal_class.identifier: hasChilds
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasChilds()
focal_class.class_method_signature: PythonFileAnalyzer.getChilds(boolean _recursive)
focal_class.full_signature: @Override public Set<FileAnalyzer> getChilds(boolean _recursive)
focal_class.identifier: getChilds
focal_class.modifiers: @Override public
focal_class.parameters: (boolean _recursive)
focal_class.return: Set<FileAnalyzer>
focal_class.signature: Set<FileAnalyzer> getChilds(boolean _recursive)
focal_class.class_method_signature: PythonFileAnalyzer.getModule(File _file)
focal_class.full_signature: public static PythonId getModule(File _file)
focal_class.identifier: getModule
focal_class.modifiers: public static
focal_class.parameters: (File _file)
focal_class.return: PythonId
focal_class.signature: PythonId getModule(File _file)
focal_class.class_method_signature: PythonFileAnalyzer.createAnalyzer(final File _file)
focal_class.full_signature: public static FileAnalyzer createAnalyzer(final File _file)
focal_class.identifier: createAnalyzer
focal_class.modifiers: public static
focal_class.parameters: (final File _file)
focal_class.return: FileAnalyzer
focal_class.signature: FileAnalyzer createAnalyzer(final File _file)
focal_class.class_method_signature: PythonFileAnalyzer.createAnalyzer(InputStream _is)
focal_class.full_signature: public static FileAnalyzer createAnalyzer(InputStream _is)
focal_class.identifier: createAnalyzer
focal_class.modifiers: public static
focal_class.parameters: (InputStream _is)
focal_class.return: FileAnalyzer
focal_class.signature: FileAnalyzer createAnalyzer(InputStream _is)
focal_method.body: public static FileAnalyzer createAnalyzer(final File _file) {
      try (final InputStream is = new FileInputStream(_file)) {
        return PythonFileAnalyzer.createAnalyzer(is);
      } catch (IOException e) {
        log.error(
            e.getClass().getSimpleName()
                + " when creating analyzer for file ["
                + _file.toPath().toAbsolutePath()
                + "]: "
                + e.getMessage(),
            e);
      }
      return null;
    }
focal_method.class_method_signature: PythonFileAnalyzer.createAnalyzer(final File _file)
focal_method.full_signature: public static FileAnalyzer createAnalyzer(final File _file)
focal_method.identifier: createAnalyzer
focal_method.invocations: createAnalyzer error getSimpleName getClass toAbsolutePath toPath getMessage
focal_method.modifiers: public static
focal_method.parameters: (final File _file)
focal_method.return: FileAnalyzer
focal_method.signature: FileAnalyzer createAnalyzer(final File _file)