Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/cran/loader.py
Show All 28 Lines | |||||
logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||
DATE_PATTERN = re.compile(r"^(?P<year>\d{4})-(?P<month>\d{2})$") | DATE_PATTERN = re.compile(r"^(?P<year>\d{4})-(?P<month>\d{2})$") | ||||
@attr.s | @attr.s | ||||
class CRANPackageInfo(BasePackageInfo): | class CRANPackageInfo(BasePackageInfo): | ||||
raw = attr.ib(type=Dict[str, Any]) | raw_info = attr.ib(type=Dict[str, Any]) | ||||
version = attr.ib(type=str) | version = attr.ib(type=str) | ||||
ID_KEYS = ["url", "version"] | ID_KEYS = ["url", "version"] | ||||
@classmethod | @classmethod | ||||
def from_metadata(cls, a_metadata: Dict[str, Any]) -> "CRANPackageInfo": | def from_metadata(cls, a_metadata: Dict[str, Any]) -> "CRANPackageInfo": | ||||
url = a_metadata["url"] | url = a_metadata["url"] | ||||
return CRANPackageInfo( | return CRANPackageInfo( | ||||
url=url, | url=url, | ||||
filename=path.basename(url), | filename=path.basename(url), | ||||
raw=a_metadata, | raw_info=a_metadata, | ||||
version=a_metadata["version"], | version=a_metadata["version"], | ||||
) | ) | ||||
class CRANLoader(PackageLoader[CRANPackageInfo]): | class CRANLoader(PackageLoader[CRANPackageInfo]): | ||||
visit_type = "cran" | visit_type = "cran" | ||||
def __init__(self, url: str, artifacts: List[Dict]): | def __init__(self, url: str, artifacts: List[Dict]): | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | ) -> Optional[Revision]: | ||||
parents=(), | parents=(), | ||||
directory=directory, | directory=directory, | ||||
synthetic=True, | synthetic=True, | ||||
metadata={ | metadata={ | ||||
"intrinsic": {"tool": "DESCRIPTION", "raw": metadata,}, | "intrinsic": {"tool": "DESCRIPTION", "raw": metadata,}, | ||||
"extrinsic": { | "extrinsic": { | ||||
"provider": self.url, | "provider": self.url, | ||||
"when": self.visit_date.isoformat(), | "when": self.visit_date.isoformat(), | ||||
"raw": p_info.raw, | "raw": p_info.raw_info, | ||||
}, | }, | ||||
}, | }, | ||||
) | ) | ||||
def parse_debian_control(filepath: str) -> Dict[str, Any]: | def parse_debian_control(filepath: str) -> Dict[str, Any]: | ||||
"""Parse debian control at filepath""" | """Parse debian control at filepath""" | ||||
metadata: Dict = {} | metadata: Dict = {} | ||||
▲ Show 20 Lines • Show All 71 Lines • Show Last 20 Lines |