def add_library_remarks()

in src/advisor/scanners/language_scanner.py [0:0]


    def add_library_remarks(self, libraries: list[Dependency], report):
        """Adds the dependency libraries remarks.
        
        Args:
            dependencies: The list of dependencies to add.
            report: The report to add the remarks to.
        """
        for library in libraries:
            library_name = library.name.casefold()
            used_version = library.version
            filename = library.filename
            lineno = library.lineno
            installed_version = library.installed_version

            if library_name in self.LIBRARY_RULES:
                unsupported = self.LIBRARY_RULES[library_name].get('unsupported', False)
                if unsupported:
                    report.add_issue(UnsupportedDependencyIssue(filename, library_name))
                    continue
                
                special_instructions = self.LIBRARY_RULES[library_name].get('specialInstructions')
                if special_instructions:
                    details_url = self.LIBRARY_RULES[library_name].get('detailsUrl')
                    report.add_remark(SpecialInstructionsRemark(filename, library_name, special_instructions, details_url))
                    continue

                min_version = self.LIBRARY_RULES[library_name].get('minVersion', '')
                if used_version and VersionComparer.is_valid(used_version):
                    if VersionComparer.compare(used_version, min_version) == -1:
                        report.add_issue(
                            DependencyVersionIssue(filename, lineno, library_name, used_version, min_version))
                else:
                    if installed_version and VersionComparer.compare(installed_version, min_version) == -1:
                        report.add_issue(DependencyVersionIssue(filename, lineno, library_name, installed_version,
                                                                min_version))
                    else:
                        report.add_remark(DependencyVersionRemark(filename,
                                                                lineno,
                                                                library_name,
                                                                min_version=min_version,
                                                                installed_version=installed_version))

            continue