aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/py3c/README.rst
blob: 7a0a79ee2661723d7d7c673461a8323a545ee9e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
py3c
====

py3c helps you port C extensions to Python 3.

It provides a detailed guide, and a set of macros to make porting easy
and reduce boilerplate.


Design principles
-----------------

* Reduce chances of accidental subtle errors
* Minimize boilerplate
* Prefer the Python 3 way of doing things
* Minimize semantic changes under Python 2


Versions
--------

Projects using py3c will be compatible with CPython 2.6, 2.7, and 3.3+.


Guides
------

A detailed `porting guide`_ is provided.

A `cheatsheet`_ is available for those that already know the Python C API,
and want to know what the py3c macros do.

.. _porting guide: http://py3c.readthedocs.org/en/latest/guide.html
.. _cheatsheet: http://py3c.readthedocs.org/en/latest/cheatsheet.html


Installation
------------

If your build system supports pkg-config, you can set it up
to look for a system-wide installation of py3c.

Alternately, py3c can be used as a header-only library:
copy the headers to your project and use them.

If you wish to install py3c system-wide (e.g. if you are a distro packager),
see the Contributing_ chapter in the documentation.

.. _Contributing: http://py3c.readthedocs.org/en/latest/contributing.html


Contribute
----------

- Issue Tracker: http://github.com/encukou/py3c/issues
- Source Code: http://github.com/encukou/py3c


License
-------

The code is licensed under the MIT license. May it serve you well.

The documentation is licensed under CC-BY-SA 3.0.

See the files LICENSE.MIT and doc/LICENSE.CC-BY-SA-3.0.