Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)