Files
depaudit-cli/depaudit/checks/__init__.py

69 lines
1.8 KiB
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any
@dataclass
class OutdatedPackage:
package_name: str
current_version: str
latest_version: str
language: str
minor_available: bool = False
patch_available: bool = False
major_available: bool = False
registry_url: str | None = None
publish_date: str | None = None
def to_dict(self) -> dict[str, Any]:
return {
"package_name": self.package_name,
"current_version": self.current_version,
"latest_version": self.latest_version,
"language": self.language,
"minor_available": self.minor_available,
"patch_available": self.patch_available,
"major_available": self.major_available,
"registry_url": self.registry_url,
"publish_date": self.publish_date,
}
@dataclass
class LicenseInfo:
package_name: str
license_type: str | None
license_expression: str | None
source: str
is_spdx_compliant: bool = False
def to_dict(self) -> dict[str, Any]:
return {
"package_name": self.package_name,
"license_type": self.license_type,
"license_expression": self.license_expression,
"source": self.source,
"is_spdx_compliant": self.is_spdx_compliant,
}
@dataclass
class UnusedDependency:
package_name: str
version: str
language: str
declared_in: str
file_path: str
reason: str
def to_dict(self) -> dict[str, Any]:
return {
"package_name": self.package_name,
"version": self.version,
"language": self.language,
"declared_in": self.declared_in,
"file_path": self.file_path,
"reason": self.reason,
}