£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! """PEP 610""" from __future__ import annotations import json from typing import Any from pip._vendor.packaging.direct_url import ( ArchiveInfo, DirectUrlValidationError, DirInfo, VcsInfo, ) from pip._vendor.packaging.direct_url import ( DirectUrl as PackagingDirectUrl, ) __all__ = [ "ArchiveInfo", "DirInfo", "DirectUrl", "DirectUrlValidationError", "DIRECT_URL_METADATA_NAME", "VcsInfo", ] DIRECT_URL_METADATA_NAME = "direct_url.json" class DirectUrl(PackagingDirectUrl): def to_dict_compat(self) -> dict[str, Any]: return dict(super().to_dict(generate_legacy_hash=True)) @classmethod def from_json(cls, s: str) -> DirectUrl: return cls.from_dict(json.loads(s)) def to_json(self) -> str: return json.dumps(self.to_dict_compat(), sort_keys=True) def is_local_editable(self) -> bool: return bool(self.dir_info and self.dir_info.editable)