#!/usr/bin/env python

# Setup script for PyPI; use CMakeFile.txt to build the example application

from setuptools import setup

setup(
    name='pybind11',
    version='1.0',
    description='Seamless operability between C++11 and Python',
    author='Wenzel Jakob',
    author_email='wenzel@inf.ethz.ch',
    url='https://github.com/wjakob/pybind11',
    download_url='https://github.com/wjakob/pybind11/tarball/v1.0',
    packages=[],
    license='BSD',
    headers=[
        'include/pybind11/cast.h',
        'include/pybind11/complex.h',
        'include/pybind11/numpy.h',
        'include/pybind11/pybind11.h',
        'include/pybind11/stl.h',
        'include/pybind11/common.h',
        'include/pybind11/functional.h',
        'include/pybind11/operators.h',
        'include/pybind11/pytypes.h',
        'include/pybind11/typeid.h'
    ],
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'Topic :: Software Development :: Libraries :: Python Modules',
        'Topic :: Utilities',
        'Programming Language :: C++',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.2',
        'Programming Language :: Python :: 3.3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'License :: OSI Approved :: BSD License',
    ],
    keywords='C++11, Python bindings',
    long_description="""pybind11 is a lightweight header library that exposes
C++ types in Python and vice versa, mainly to create Python bindings of
existing C++ code. Its goals and syntax are similar to the excellent
Boost.Python library by David Abrahams: to minimize boilerplate code in
traditional extension modules by inferring type information using compile-time
introspection.

The main issue with Boost.Python—and the reason for creating such a similar
project—is Boost. Boost is an enormously large and complex suite of utility
libraries that works with almost every C++ compiler in existence. This
compatibility has its cost: arcane template tricks and workarounds are
necessary to support the oldest and buggiest of compiler specimens. Now that
C++11-compatible compilers are widely available, this heavy machinery has
become an excessively large and unnecessary dependency.

Think of this library as a tiny self-contained version of Boost.Python with
everything stripped away that isn't relevant for binding generation. The whole
codebase requires less than 3000 lines of code and only depends on Python (2.7
or 3.x) and the C++ standard library. This compact implementation was
possible thanks to some of the new C++11 language features (tuples, lambda
functions and variadic templates). Since its creation, this library has
grown beyond Boost.Python in many ways, leading to dramatically simpler binding
code in many common situations.""",
)
