def marker(self, value) -> None: try: m = self._marker = get_marker(value) if not m: self.marker_no_python, self.requires_python = None, PySpecSet() else: self.marker_no_python, self.requires_python = m.split_pyspec() except InvalidMarker as e: raise RequirementError("Invalid marker: %s" % str(e)) from None
def parse( cls, line: str, parsed: Optional[Dict[str, Optional[str]]] = None ) -> "NamedRequirement": r = cls() try: PackageRequirement.__init__(r, line) r.marker = get_marker(r.marker) except InvalidMarker as e: raise RequirementError("Invalid marker: %s" % str(e)) from None return r
def from_pkg_requirement(cls, req: PackageRequirement) -> "Requirement": kwargs = { "name": req.name, "extras": req.extras, "specifier": req.specifier, "marker": get_marker(req.marker), } if getattr(req, "url", None): link = Link(req.url) klass = VcsRequirement if link.is_vcs else FileRequirement return klass(url=req.url, **kwargs) # type: ignore else: return NamedRequirement(**kwargs)
def create(cls: Type[T], **kwargs: Any) -> T: if "marker" in kwargs: try: kwargs["marker"] = get_marker(kwargs["marker"]) except InvalidMarker as e: raise RequirementError("Invalid marker: %s" % str(e)) from None if "extras" in kwargs and isinstance(kwargs["extras"], str): kwargs["extras"] = tuple( e.strip() for e in kwargs["extras"][1:-1].split(",")) version = kwargs.pop("version", None) if version: kwargs["specifier"] = get_specifier(version) return cls(**kwargs)