public ScanResult scan()

in doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/python/PipPoetryDependencyScanner.java [179:245]


    public ScanResult scan(ScanContext context) {
        log.info("Scanning Python dependencies in: {}", context.rootPath());

        List<Dependency> dependencies = new ArrayList<>();
        List<Component> components = new ArrayList<>();
        String sourceComponentId = IdGenerator.generate(context.rootPath().toString());

        // Create component for the Python project
        Component pythonProject = new Component(
            sourceComponentId,
            context.rootPath().getFileName().toString(),
            ComponentType.LIBRARY,
            PYTHON_PROJECT_DESCRIPTION,
            PYTHON_LANGUAGE,
            null,
            Map.of()
        );
        components.add(pythonProject);

        // Parse requirements.txt files
        context.findFiles(PATTERN_REQUIREMENTS).forEach(file -> {
            try {
                parseRequirementsTxt(file, sourceComponentId, dependencies);
            } catch (IOException e) {
                log.warn("Failed to parse requirements file: {} - {}", file, e.getMessage());
            }
        });

        // Parse pyproject.toml files
        context.findFiles(PATTERN_PYPROJECT).forEach(file -> {
            try {
                parsePyprojectToml(file, sourceComponentId, dependencies);
            } catch (IOException e) {
                log.warn("Failed to parse pyproject.toml: {} - {}", file, e.getMessage());
            }
        });

        // Parse setup.py files
        context.findFiles(PATTERN_SETUP_PY).forEach(file -> {
            try {
                parseSetupPy(file, sourceComponentId, dependencies);
            } catch (IOException e) {
                log.warn("Failed to parse setup.py: {} - {}", file, e.getMessage());
            }
        });

        // Parse Pipfile
        context.findFiles(PATTERN_PIPFILE).forEach(file -> {
            try {
                parsePipfile(file, sourceComponentId, dependencies);
            } catch (IOException e) {
                log.warn("Failed to parse Pipfile: {} - {}", file, e.getMessage());
            }
        });

        log.info("Found {} Python dependencies", dependencies.size());

        return buildSuccessResult(
            components,
            dependencies,
            List.of(),
            List.of(),
            List.of(),
            List.of(),
            List.of()
        );
    }