Beispiel #1
0
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),
    )
Beispiel #2
0
 def cons(
     ident: IdentSpec,
     id: int = None,
 ) -> 'Session':
     return Session(
         ensure_ident_or_generate(ident),
         Maybe.check(id),
     )
Beispiel #3
0
 def cons(
     ident: IdentSpec,
     id: int = None,
 ) -> 'Pane':
     return Pane(
         ensure_ident_or_generate(ident),
         Maybe.check(id),
     )
Beispiel #4
0
 def cons(
     ident: IdentSpec,
     id: int = None,
 ) -> 'Window':
     return Window(
         ensure_ident_or_generate(ident),
         Maybe.check(id),
     )
Beispiel #5
0
 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))))
Beispiel #6
0
 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),
     )
Beispiel #7
0
 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))
Beispiel #8
0
 def lift(self, key: str) -> Maybe[B]:
     return Maybe.check(Dict.get(self, key))