blob: 0ddeb2996fa38528a5409d7872a87bed10632774 [file] [log] [blame]
Wenzel Jakob929fd7e2015-10-15 18:24:12 +02001#!/usr/bin/env python
2
3# Setup script for PyPI; use CMakeFile.txt to build the example application
4
5from setuptools import setup
6
7setup(
8 name='pybind11',
9 version='1.0',
10 description='Seamless operability between C++11 and Python',
11 author='Wenzel Jakob',
12 author_email='wenzel@inf.ethz.ch',
13 url='https://github.com/wjakob/pybind11',
14 download_url='https://github.com/wjakob/pybind11/tarball/v1.0',
15 packages=[],
16 license='BSD',
17 headers=[
18 'include/pybind11/cast.h',
19 'include/pybind11/complex.h',
20 'include/pybind11/numpy.h',
21 'include/pybind11/pybind11.h',
22 'include/pybind11/stl.h',
23 'include/pybind11/common.h',
24 'include/pybind11/functional.h',
25 'include/pybind11/operators.h',
26 'include/pybind11/pytypes.h',
27 'include/pybind11/typeid.h'
28 ],
29 classifiers=[
30 'Development Status :: 5 - Production/Stable',
31 'Intended Audience :: Developers',
32 'Topic :: Software Development :: Libraries :: Python Modules',
33 'Topic :: Utilities',
34 'Programming Language :: C++',
35 'Programming Language :: Python :: 2.7',
36 'Programming Language :: Python :: 3',
37 'Programming Language :: Python :: 3.2',
38 'Programming Language :: Python :: 3.3',
39 'Programming Language :: Python :: 3.4',
Wenzel Jakobb456ec72015-10-15 22:43:55 +020040 'Programming Language :: Python :: 3.5',
Wenzel Jakob929fd7e2015-10-15 18:24:12 +020041 'License :: OSI Approved :: BSD License',
42 ],
43 keywords='C++11, Python bindings',
44 long_description="""pybind11 is a lightweight header library that exposes
45C++ types in Python and vice versa, mainly to create Python bindings of
46existing C++ code. Its goals and syntax are similar to the excellent
47Boost.Python library by David Abrahams: to minimize boilerplate code in
48traditional extension modules by inferring type information using compile-time
49introspection.
50
51The main issue with Boost.Python—and the reason for creating such a similar
52project—is Boost. Boost is an enormously large and complex suite of utility
53libraries that works with almost every C++ compiler in existence. This
54compatibility has its cost: arcane template tricks and workarounds are
55necessary to support the oldest and buggiest of compiler specimens. Now that
56C++11-compatible compilers are widely available, this heavy machinery has
57become an excessively large and unnecessary dependency.
58
59Think of this library as a tiny self-contained version of Boost.Python with
60everything stripped away that isn't relevant for binding generation. The whole
61codebase requires less than 3000 lines of code and only depends on Python (2.7
62or 3.x) and the C++ standard library. This compact implementation was
63possible thanks to some of the new C++11 language features (tuples, lambda
64functions and variadic templates). Since its creation, this library has
65grown beyond Boost.Python in many ways, leading to dramatically simpler binding
66code in many common situations.""",
67)