コード例 #1
0
ファイル: map_spec.py プロジェクト: GitHub-Notables/amino
 def add_multi(self):
     key = 'key'
     val = 'value'
     k2 = 'key2'
     v2 = 'value2'
     m = Map({key: val})
     m2 = m**Map({k2: v2})
     m2.lift(k2).should.equal(Just(v2))
     m.lift(k2).should.equal(Empty())
コード例 #2
0
ファイル: map_spec.py プロジェクト: GitHub-Notables/amino
 def add(self):
     key = 'key'
     val = 'value'
     k2 = 'key2'
     v2 = 'value2'
     m = Map({key: val})
     m2 = m + (k2, v2)
     m2.lift(k2).should.equal(Just(v2))
     m.lift(k2).should.equal(Empty())
コード例 #3
0
def decode_json_object(data: dict) -> Do:
    m = Map(data)
    tpe_s = yield m.lift(tpe_key).to_either(
        f'no `{tpe_key}` attr in json object {m}')
    tpe = yield Either.import_path(tpe_s)
    dec = yield Decoder.e(tpe)
    yield dec.decode(tpe, m)
コード例 #4
0
def check_bound(rep: str, t: Type[A], b: Type[B], bindings: Map) -> None:
    binding = bindings.lift(t).get_or_fail(lambda: f'no binding for {t} => {b} in {rep}')
    b.m(binding).get_or_fail(lambda: f'no instance of {t} => {b} for {binding} in {rep}')
コード例 #5
0
ファイル: map_spec.py プロジェクト: GitHub-Notables/amino
 def lift(self):
     key = 'key'
     val = 'value'
     m = Map({key: val})
     m.lift(key).should.equal(Just(val))
     m.lift(key + key).should.equal(Empty())