Esempio n. 1
0
def handle_tagged_value(state, p):
    tag_name = p[0].value[1:]
    if tag_name in state.tagged:
        constr = state.tagged[tag_name]
        return constr(p[1])
    elif state.accept_unknown_tags:
        return TaggedValue(tag_name, p[1])
    else:
        raise KeyError(
            "No registered constructor for tag '{}'".format(tag_name))
Esempio n. 2
0
    def marshal_top(self, obj, cache=None):
        """Given a complete object that needs to be marshaled into Transit
        data, and optionally a cache, dispatch accordingly, and flush the data
        directly into the IO stream.
        """
        if not cache:
            cache = RollingCache()

        handler = self.handlers[obj]

        tag = handler.tag(obj)
        if tag:
            if len(tag) == 1:
                self.marshal(TaggedValue(QUOTE, obj), False, cache)
            else:
                self.marshal(obj, False, cache)
            self.flush()
        else:
            raise AssertionError("Handler must provide a non-nil tag: " +
                                 str(handler))
Esempio n. 3
0
 def __init__(self, rep):
     TaggedValue.__init__(self, 'char', rep)
Esempio n. 4
0
 def __init__(self, value):
     TaggedValue.__init__(self, "y.Error", value)
Esempio n. 5
0
    print(str(loads("[1]")))
    print(repr(loads("()")))
    print(str(loads("()")))
    print(repr(loads("([] () {} #{})")))
    print(str(loads("([] () {} #{})")))
    print(repr(loads("(1)")))
    print(str(loads("(1)")))
    print(repr(loads("(1 true nil)")))
    print(str(loads("(1 true nil)")))
    print(repr(loads("{:foo 42}")))
    print(str(loads("{:foo 42}")))
    print(repr(loads("{:foo 42 bar true \\a 12.3}")))
    print(str(loads("{:foo 42 bar true \\a 12.3}")))
    print(repr(loads("#y.Error {:foo 42}", {"y.Error": YError})))
    print(str(loads("#y.Error {:foo 42}", {"y.Error": YError})))

    print()

    print(dumps("asd"))
    print(dumps(loads(r'"a\"sd"')))
    print(
        dumps(
            loads(
                "(1 true nil [1.2 {:foo 42 bar true \\a 12.3 \"asd\" \\newline}])"
            )))
    print(dumps(TaggedValue("y.Error", loads('{:reason "asd" :status 500}'))))
    print(dumps(loads("#y.Error {:foo 42}", {"y.Error": YError})))
    print(dumps(loads("#y.Error {:foo 42}", accept_unknown_tags=True)))
    print(dumps(loads("[{[:a] (:b :c)}]")))
    print(dumps(loads("[{(:a) [:b :c]}]")))
Esempio n. 6
0
 def __init__(self, rep):
     TaggedValue.__init__(self, 'char', rep)
Esempio n. 7
0
 def __init__(self, value):
     TaggedValue.__init__(self, "y.Error", value)
    "bbb": 6
}))

exemplar("maps_four_char_string_keys", ({
    "aaaa": 1,
    "bbbb": 2
}, {
    "aaaa": 3,
    "bbbb": 4
}, {
    "aaaa": 5,
    "bbbb": 6
}))

exemplar("maps_unrecognized_keys", (
    TaggedValue("abcde", Keyword("anything")),
    TaggedValue("fghij", Keyword("anything-else")),
))

exemplar("vector_special_numbers", (float("nan"), float("inf"), float("-inf")))

# Doesn't exist in simple examples but gave me tests to verify Link.
#exemplar("link", Link("http://www.blah.com", "test", "test", "link", "test"))


def make_hash_exemplar(n):
    exemplar("map_%s_nested" % (n, ), {
        Keyword("f"): hash_of_size(n),
        Keyword("s"): hash_of_size(n)
    })