def venv_package_status_site(venv: Venv, site: Path, req_spec: str) -> Do: ws = yield IO.delay(pkg_resources.WorkingSet, [site]) req = yield IO.delay(pkg_resources.Requirement, req_spec) return Maybe.check(ws.by_key.get(req.key)).cata_strict( lambda a: VenvPackageExistent(venv, a), VenvPackageAbsent(venv), )
def cons( ident: IdentSpec, id: int = None, ) -> 'Session': return Session( ensure_ident_or_generate(ident), Maybe.check(id), )
def cons( ident: IdentSpec, id: int = None, ) -> 'Pane': return Pane( ensure_ident_or_generate(ident), Maybe.check(id), )
def cons( ident: IdentSpec, id: int = None, ) -> 'Window': return Window( ensure_ident_or_generate(ident), Maybe.check(id), )
def decode(self, tpe: Type[Maybe], data: Json) -> Either[JsonError, Maybe[A]]: inner = Lists.wrap(tpe.__args__).head return (Right(Nothing) if data.absent else maybe_from_object( data, inner) if data.object else decode.match(data) / Just if data.array else Right(Nothing) if data.null else inner.cata( lambda a: decode_json_type_json(data, a) / Just, lambda: data.scalar.e(f'invalid type for `Maybe`: {data}', Maybe.check(data.data))))
def cons( min_size: Number = None, max_size: Number = None, fixed_size: Number = None, minimized_size: Number = None, weight: Number = None, position: Number = None, ) -> 'ViewGeometry': return ViewGeometry( Maybe.check(min_size), Maybe.check(max_size), Maybe.check(fixed_size), Maybe.check(minimized_size), Maybe.check(weight), Maybe.check(position), )
def decode(self, tpe: Type[Maybe], data: Json) -> Either[JsonError, Maybe]: return data.scalar.e(f'invalid type for `Maybe`: {data}', Maybe.check(data.data))
def lift(self, key: str) -> Maybe[B]: return Maybe.check(Dict.get(self, key))