示例#1
0
文件: worker.py 项目: teepark/zugzug
def _send(pipefd, msg, os):
    msg = mummy.dumps(msg)
    msg = struct.pack('>I', len(msg)) + msg
    total = len(msg)
    written = 0
    while written < total:
        written += os.write(pipefd, msg[written:])
示例#2
0
def dump_func(f):
    code = f.func_code
    return mummy.dumps(
        (code.co_argcount, code.co_nlocals, code.co_stacksize, code.co_flags,
         code.co_code, code.co_consts, code.co_names, code.co_varnames,
         code.co_filename, code.co_name, code.co_firstlineno, code.co_lnotab,
         code.co_freevars, code.co_cellvars))
示例#3
0
文件: tests.py 项目: teepark/mummy
    def backwards_compatible(self, val):
        print "new", self
        new_enc = newmummy.dumps(val)
        print "old", self
        old_enc = oldmummy.dumps(val)

        # they serialize to the same string
        self.assertEqual(new_enc, old_enc)
示例#4
0
    def test_storage_serial(self):
        datahog.set_context(6, datahog.NODE, {
            'base_ctx': 1, 'storage': datahog.storage.SERIAL,
        })

        self.assertEqual(
                util.storage_wrap(6, ['test', 'path', {10: 0.1}]).adapted,
                mummy.dumps(['test', 'path', {10: 0.1}]))

        self.assertEqual(
                util.storage_unwrap(6, psycopg2.Binary('\x10\x03\x08\x04test\x08\x04path\x13\x01\x02\n\x07?\xb9\x99\x99\x99\x99\x99\x9a')),
                ['test', 'path', {10: 0.1}])
示例#5
0
def dump_func(f):
    code = f.func_code
    return mummy.dumps((
            code.co_argcount,
            code.co_nlocals,
            code.co_stacksize,
            code.co_flags,
            code.co_code,
            code.co_consts,
            code.co_names,
            code.co_varnames,
            code.co_filename,
            code.co_name,
            code.co_firstlineno,
            code.co_lnotab,
            code.co_freevars,
            code.co_cellvars))
示例#6
0
文件: util.py 项目: dsernst/datahog
def storage_wrap(ctx, value):
    st = ctx_storage(ctx)

    if st == storage.NULL:
        if value is not None:
            raise error.StorageClassError("NULL requires None")
        return None

    if st == storage.INT:
        if not isinstance(value, (int, long)):
            raise error.StorageClassError("INT requires int or long")
        return value

    if st == storage.STR:
        if not isinstance(value, str):
            raise error.StorageClassError("STR requires str")
        return psycopg2.Binary(value)

    if st == storage.UTF:
        if not isinstance(value, unicode):
            raise error.StorageClassError("UTF storage requires unicode")
        return psycopg2.Binary(value.encode("utf8"))

    if st == storage.SERIAL:
        schema = ctx_schema(ctx)
        if schema:
            msg = schema(value)
            try:
                value = msg.dumps()
            except schema.InvalidMessage:
                raise error.StorageClassError(
                        "SERIAL schema validation failed", msg.message)
        else:
            try:
                value = mummy.dumps(value)
            except TypeError:
                raise error.StorageClassError(
                    "SERIAL requires a serializable value")
        return psycopg2.Binary(value)


    raise error.BadContext(ctx)
示例#7
0
文件: bench.py 项目: teepark/mummy
def test(serial, deserial, data):
    assert equalish(deserial(serial(data)), data)


def format(flt, prec=3):
    s = str(round(flt, prec))
    return padright(s, s.index(".") + 4, "0")


def padright(s, upto, padchar=" "):
    return s + (padchar * (upto - len(s)))


contenders = [
        ('mummy', (lambda s: mummy.dumps(s), mummy.loads)),
        ('oldmummy', (lambda s: oldmummy.dumps(s), oldmummy.loads))]
if wbin:
	contenders.append(('wirebin', (wbin.serialize, wbin.deserialize)))
if msgpack:
    contenders.append(('msgpack', (msgpack.dumps, msgpack.loads)))
if yajl:
    contenders.append(('py-yajl', (yajl.dumps, yajl.loads)))
if cjson:
    contenders.append(('cjson', (cjson.encode, cjson.decode)))
if bson:
    contenders.append(('bson', (bson.BSON.encode, lambda s: bson.BSON(s).decode())))
#contenders.append(('cPickle (protocol 2)',
#    (lambda x: cPickle.dumps(x, 2), cPickle.loads)))
#contenders.append(('cPickle (protocol 1)',
#    (lambda x: cPickle.dumps(x, 1), cPickle.loads)))
示例#8
0
def deepcopy(item):
    return mummy.loads(mummy.dumps(item))
示例#9
0
def dump(msg):
    msg = mummy.dumps(msg)
    return struct.pack("!I", len(msg)) + msg
示例#10
0
def dump(msg):
    msg = mummy.dumps(msg)
    return struct.pack("!I", len(msg)) + msg
示例#11
0
def deepcopy(item):
    return mummy.loads(mummy.dumps(item))