- 博客(1)
- 资源 (4)
- 收藏
- 关注
多tomcat服务器配置教程
以下教程以10.68.4.38:22服务器为例 1、tomcat项目都配置到目录/service 下 2、命名规则 tomcat-8.0.36-项目名 3、新增tomcat项目操作流程:(1)拷贝基础tomcat包 /usr/local/apache-tomcat-8.0.28 改成新的名字到目录/service 下, 如:cp -rf /us...
2017-02-17 17:56:19
117
msgpack-java-master
msgpack - MessagePack is an extremely efficient object serialization library. It's like JSON, but very fast and small.
2014-09-19
msgpack-python-0.4.2.tar
=======================
MessagePack for Python
=======================
:author: INADA Naoki
:version: 0.4.1
:date: 2014-02-17
.. image:: https://secure.travis-ci.org/msgpack/msgpack-python.png
:target: https://travis-ci.org/#!/msgpack/msgpack-python
What's this
------------
`MessagePack <http://msgpack.org/>`_ is a fast, compact binary serialization format, suitable for
similar data to JSON. This package provides CPython bindings for reading and
writing MessagePack data.
Install
---------
You can use ``pip`` or ``easy_install`` to install msgpack::
$ easy_install msgpack-python
or
$ pip install msgpack-python
PyPy
^^^^^
msgpack-python provides pure python implementation.
PyPy can use this.
Windows
^^^^^^^
When you can't use binary distribution, you need to install Visual Studio
or Windows SDK on Windows. (NOTE: Visual C++ Express 2010 doesn't support
amd64. Windows SDK is recommanded way to build amd64 msgpack without any fee.)
Without extension, using pure python implementation on CPython runs slowly.
Notes
-----
Note for msgpack 2.0 support
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
msgpack 2.0 adds two types: *bin* and *ext*.
*raw* was bytes or string type like Python 2's ``str``.
To distinguish string and bytes, msgpack 2.0 adds *bin*.
It is non-string binary like Python 3's ``bytes``.
To use *bin* type for packing ``bytes``, pass ``use_bin_type=True`` to
packer argument.
>>> import msgpack
>>> packed = msgpack.packb([b'spam', u'egg'], use_bin_type=True)
>>> msgpack.unpackb(packed, encoding='utf-8')
['spam', u'egg']
You shoud use it carefully. When you use ``use_bin_type=True``, packed
binary can be unpacked by unpackers supporting msgpack-2.0.
To use *ext* type, pass ``msgpack.ExtType`` object to packer.
>>> import msgpack
>>> packed = msgpack.packb(msgpack.ExtType(42, b'xyzzy'))
>>> msgpack.unpackb(packed)
ExtType(code=42, data='xyzzy')
You can use it with ``default`` and ``ext_hook``. See below.
Note for msgpack 0.2.x users
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The msgpack 0.3 have some incompatible changes.
The default value of ``use_list`` keyword argument is ``True`` from 0.3.
You should pass the argument explicitly for backward compatibility.
`Unpacker.unpack()` and some unpack methods now raises `OutOfData`
instead of `StopIteration`.
`StopIteration` is used for iterator protocol only.
How to use
-----------
One-shot pack & unpack
^^^^^^^^^^^^^^^^^^^^^^
Use ``packb`` for packing and ``unpackb`` for unpacking.
msgpack provides ``dumps`` and ``loads`` as alias for compatibility with
``json`` and ``pickle``.
``pack`` and ``dump`` packs to file-like object.
``unpack`` and ``load`` unpacks from file-like object.
::
>>> import msgpack
>>> msgpack.packb([1, 2, 3])
'\x93\x01\x02\x03'
>>> msgpack.unpackb(_)
[1, 2, 3]
``unpack`` unpacks msgpack's array to Python's list, but can unpack to tuple::
>>> msgpack.unpackb(b'\x93\x01\x02\x03', use_list=False)
(1, 2, 3)
You should always pass the ``use_list`` keyword argument. See performance issues relating to use_list_ below.
Read the docstring for other options.
Streaming unpacking
^^^^^^^^^^^^^^^^^^^
``Unpacker`` is a "streaming unpacker". It unpacks multiple objects from one
stream (or from bytes provided through its ``feed`` method).
::
import msgpack
from io import BytesIO
buf = BytesIO()
for i in range(100):
buf.write(msgpack.packb(range(i)))
buf.seek(0)
unpacker = msgpack.Unpacker(buf)
for unpacked in unpacker:
print unpacked
Packing/unpacking of custom data type
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It is also possible to pack/unpack custom data types. Here is an example for
``datetime.datetime``.
::
import datetime
import msgpack
useful_dict = {
"id": 1,
"created": datetime.datetime.now(),
}
def decode_datetime(obj):
if b'__datetime__' in obj:
obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f")
return obj
def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")}
return obj
packed_dict = msgpack.packb(useful_dict, default=encode_datetime)
this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime)
``Unpacker``'s ``object_hook`` callback receives a dict; the
``object_pairs_hook`` callback may instead be used to receive a list of
key-value pairs.
Extended types
^^^^^^^^^^^^^^^
It is also possible to pack/unpack custom data types using the msgpack 2.0 feature.
>>> import msgpack
>>> import array
>>> def default(obj):
... if isinstance(obj, array.array) and obj.typecode == 'd':
... return msgpack.ExtType(42, obj.tostring())
... raise TypeError("Unknown type: %r" % (obj,))
...
>>> def ext_hook(code, data):
... if code == 42:
... a = array.array('d')
... a.fromstring(data)
... return a
... return ExtType(code, data)
...
>>> data = array.array('d', [1.2, 3.4])
>>> packed = msgpack.packb(data, default=default)
>>> unpacked = msgpack.unpackb(packed, ext_hook=ext_hook)
>>> data == unpacked
True
Advanced unpacking control
^^^^^^^^^^^^^^^^^^^^^^^^^^
As an alternative to iteration, ``Unpacker`` objects provide ``unpack``,
``skip``, ``read_array_header`` and ``read_map_header`` methods. The former two
read an entire message from the stream, respectively deserialising and returning
the result, or ignoring it. The latter two methods return the number of elements
in the upcoming container, so that each element in an array, or key-value pair
in a map, can be unpacked or skipped individually.
Each of these methods may optionally write the packed data it reads to a
callback function:
::
from io import BytesIO
def distribute(unpacker, get_worker):
nelems = unpacker.read_map_header()
for i in range(nelems):
# Select a worker for the given key
key = unpacker.unpack()
worker = get_worker(key)
# Send the value as a packed message to worker
bytestream = BytesIO()
unpacker.skip(bytestream.write)
worker.send(bytestream.getvalue())
Note about performance
------------------------
GC
^^
CPython's GC starts when growing allocated object.
This means unpacking may cause useless GC.
You can use ``gc.disable()`` when unpacking large message.
`use_list` option
^^^^^^^^^^^^^^^^^^
List is the default sequence type of Python.
But tuple is lighter than list.
You can use ``use_list=False`` while unpacking when performance is important.
Python's dict can't use list as key and MessagePack allows array for key of mapping.
``use_list=False`` allows unpacking such message.
Another way to unpacking such object is using ``object_pairs_hook``.
Test
----
MessagePack uses `pytest` for testing.
Run test with following command:
$ py.test
..
vim: filetype=rst
2014-09-19
pycurl-7.19.0.tar
License
-------
Copyright (C) 2001-2008 by Kjetil Jacobsen <kjetilja at gmail.com>
Copyright (C) 2001-2008 by Markus F.X.J. Oberhumer <markus at oberhumer.com>
All rights reserved.
PycURL is dual licensed under the LGPL and an MIT/X derivative license
based on the cURL license. A full copy of the LGPL license is included
in the file COPYING. A full copy of the MIT/X derivative license is
included in the file COPYING2. You can redistribute and/or modify PycURL
according to the terms of either license.
2014-09-19
tornado-2.4.1.tar
Tornado
=======
Tornado is an open source version of the scalable, non-blocking web server
and and tools that power FriendFeed. Documentation and downloads are
available at http://www.tornadoweb.org/
Tornado is licensed under the Apache Licence, Version 2.0
(http://www.apache.org/licenses/LICENSE-2.0.html).
Automatic installation
----------------------
Tornado is listed in PyPI and can be installed with pip or
easy_install. Note that the source distribution includes demo
applications that are not present when Tornado is installed in this
way, so you may wish to download a copy of the source tarball as well.
Manual installation
-------------------
Download https://github.com/downloads/facebook/tornado/tornado-2.3.tar.gz
tar xvzf tornado-2.3.tar.gz
cd tornado-2.3
python setup.py build
sudo python setup.py install
The Tornado source code is hosted on GitHub: https://github.com/facebook/tornado
On Python 2.6 and 2.7, it is also possible to simply add the tornado
directory to your PYTHONPATH instead of building with setup.py, since
the standard library includes epoll support.
Prerequisites
-------------
Tornado runs on Python 2.5, 2.6, 2.7 and 3.2.
On Python 2.6 and 2.7, there are no dependencies outside the Python
standard library, although PycURL (version 7.18.2 or higher required;
version 7.21.1 or higher recommended) may be used if desired.
On Python 2.5, PycURL is required, along with simplejson and the
Python development headers (typically obtained by installing a package
named something like python-dev from your operating system).
On Python 3.2, the distribute package is required. Note that Python 3
support is relatively new and may have bugs.
Platforms
---------
Tornado should run on any Unix-like platform, although for the best
performance and scalability only Linux and BSD (including BSD
derivatives like Mac OS X) are recommended.
2014-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人