Metadata-Version: 1.1
Name: pycapnp
Version: 0.3.18
Summary: A cython wrapping of the C++ capnproto library
Home-page: https://github.com/jparyani/pycapnp
Author: Jason Paryani
Author-email: pypi-contact@jparyani.com
License: BSD
Download-URL: https://github.com/jparyani/pycapnp/archive/v0.3.18.zip
Description: pycapnp
        =======
        
        More thorough docs are available at http://jparyani.github.io/pycapnp/.
        
        Requirements
        ------------
        
        First you need a system-wide installation of the Cap'n Proto C++ library
        == 0.3.x. .0.4.x currently requires a branch of pycapnp, accessible with
        ``git checkout feature/v0.4`` in a git clone of pycapnp. Follow the
        `official installation
        docs <http://kentonv.github.io/capnproto/install.html>`__ or for the
        lazy:
        
        .. code:: bash
        
            curl -O http://capnproto.org/capnproto-c++-0.3.0.tar.gz
            tar zxf capnproto-c++-0.3.0.tar.gz
            cd capnproto-c++-0.3.0
            ./configure
            make -j6 check
            sudo make install
        
        A recent version of cython and setuptools is also required. You can
        install these with:
        
        .. code:: bash
        
            pip install -U cython
            pip install -U setuptools
        
        Building and installation
        -------------------------
        
        Install with ``pip install pycapnp``. You can set the CC environment
        variable to control which compiler is used, ie
        ``CC=gcc-4.8 pip install pycapnp``.
        
        Or you can clone the repo like so:
        
        ::
        
            git clone https://github.com/jparyani/pycapnp.git
            pip install ./pycapnp
        
        Note: for OSX, if using clang from Xcode 5, you will need to set
        ``CFLAGS`` like so:
        
        ::
        
            CFLAGS='-stdlib=libc++' pip install pycapnp
        
        Development
        -----------
        
        This project uses
        `git-flow <http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/>`__.
        Essentially, just make sure you do your changes in the ``develop``
        branch. You can run the tests by installing pytest with
        ``pip install pytest``, and then run ``py.test`` from the ``test``
        directory.
        
        Documentation/Example
        ---------------------
        
        There is some basic documentation
        `here <http://jparyani.github.io/pycapnp/>`__.
        
        The examples directory has one example that shows off the capabilities
        quite nicely. Here it is, reproduced:
        
        .. code:: python
        
            from __future__ import print_function
            import os
            import capnp
        
            import addressbook_capnp
        
            def writeAddressBook(file):
                addresses = addressbook_capnp.AddressBook.new_message()
                people = addresses.init('people', 2)
        
                alice = people[0]
                alice.id = 123
                alice.name = 'Alice'
                alice.email = 'alice@example.com'
                alicePhones = alice.init('phones', 1)
                alicePhones[0].number = "555-1212"
                alicePhones[0].type = 'mobile'
                alice.employment.school = "MIT"
        
                bob = people[1]
                bob.id = 456
                bob.name = 'Bob'
                bob.email = 'bob@example.com'
                bobPhones = bob.init('phones', 2)
                bobPhones[0].number = "555-4567"
                bobPhones[0].type = 'home'
                bobPhones[1].number = "555-7654"
                bobPhones[1].type = 'work'
                bob.employment.unemployed = None
        
                addresses.write(file)
        
        
            def printAddressBook(file):
                addresses = addressbook_capnp.AddressBook.read(file)
        
                for person in addresses.people:
                    print(person.name, ':', person.email)
                    for phone in person.phones:
                        print(phone.type, ':', phone.number)
        
                    which = person.employment.which()
                    print(which)
        
                    if which == 'unemployed':
                        print('unemployed')
                    elif which == 'employer':
                        print('employer:', person.employment.employer)
                    elif which == 'school':
                        print('student at:', person.employment.school)
                    elif which == 'selfEmployed':
                        print('self employed')
                    print()
        
        
            if __name__ == '__main__':
                f = open('example', 'w')
                writeAddressBook(f)
        
                f = open('example', 'r')
                printAddressBook(f)
        
        Common Problems
        ---------------
        
        If you get an error on installation like:
        
        ::
        
            ...
            gcc-4.8: error: capnp/capnp.c: No such file or directory
        
            gcc-4.8: fatal error: no input files
        
        Then you have too old a version of setuptools. Run
        ``pip install -U setuptools`` then try again.
        
        An error like:
        
        ::
        
            ...
            capnp/capnp.cpp:312:10: fatal error: 'capnp/dynamic.h' file not found
            #include "capnp/dynamic.h"
        
        Means you haven't installed the Cap'n Proto C++ library. Please follow
        the directions at the `official installation
        docs <http://kentonv.github.io/capnproto/install.html>`__
        
        |Build Status| |Bitdeli Badge|
        
        .. |Build Status| image:: https://travis-ci.org/jparyani/pycapnp.png?branch=develop
           :target: https://travis-ci.org/jparyani/pycapnp
        .. |Bitdeli Badge| image:: https://d2weczhvl823v0.cloudfront.net/jparyani/pycapnp/trend.png
           :target: https://bitdeli.com/free
        
Keywords: capnp,capnproto,Cap'n Proto
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Programming Language :: C++
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Communications
