The most widely used Python to C compiler (LADI project)
Go to file
Harmen Stoppels 2535803d5b
cythonize 0.29.x: use force=None as default instead of force=False (GH-5712)
The previous default circumvented the backport of the "CYTHON_FORCE_REGEN" env var.
2023-09-21 15:03:50 +02:00
.github/workflows CI: Use a newer Python version for code style checks. 2023-07-04 14:30:12 +02:00
Cython cythonize 0.29.x: use force=None as default instead of force=False (GH-5712) 2023-09-21 15:03:50 +02:00
Demos Remove "PYTHONHOME" setting from embed-test since it seems to break the I/O encoding setup in (at least) Py3.8+ venvs. 2021-04-14 14:47:20 +02:00
Doc/s5 Remove obsolete documentation 2017-04-10 10:36:12 +02:00
Tools Update the 0.29.x CI setup to Ubuntu 20.04 to make it work again, and copy some more CI updates from the master branch. 2023-05-23 09:22:28 +02:00
appveyor Fix Python install script on appveyor: The URL path uses three digit Python versions, not just major.minor. 2021-04-14 20:17:30 +02:00
bin Changed some filenames. 2018-03-17 20:36:20 +01:00
docs Backport "noexcept" function modifier to Cython 0.29.x (GH-4903) 2022-07-27 11:19:35 +02:00
pyximport Revert "Avoid immediate import failure of pyximport on Py3.12 because of the missing 'imp' module. Instead, fail on usage." 2023-07-04 17:03:42 +02:00
tests Remove a numpy test that no longer works with recent releases. 2023-07-03 11:21:40 +02:00
.coveragerc Enable coverage reporting in travis runs. Merge C/C++ jobs into one to simplify that (we have enough jobs to keep travis busy). 2018-08-26 16:50:16 +02:00
.editorconfig Include header file types in editor config. 2018-09-17 22:28:34 +02:00
.gitignore Use CFLAGS for compiler defines in test runner (GH-4099) 2021-04-14 08:13:16 +02:00
.hgignore Rename BUILD to TEST_TMP for bazel support. 2016-09-16 13:56:30 -07:00
.hgtags Added tag 0.21.2 for changeset ab1a3afb8775 2014-12-27 17:13:02 +01:00
.mailmap Add initial .mailmap file. 2015-09-16 23:06:10 -07:00
.readthedocs.yaml Add .readthedocs.yaml (GH-5370) 2023-04-11 10:21:04 +02:00
.travis.yml Do not install Pythran in 0.29.x on travis since it is currently incompatible and unknown when it will work again. 2021-04-29 11:55:52 +02:00
BUILD.bazel Rename BUILD file to avoid conflict with build directory. 2016-10-10 12:07:23 -07:00
CHANGES.rst Fix release date. 2023-07-04 09:51:17 +02:00
COPYING.txt Clarify license position with respect to compilation output. 2014-07-22 21:50:57 -07:00
INSTALL.txt
LICENSE.txt
MANIFEST.in Update tox.ini a little and include it in sdist. 2023-01-05 15:52:52 +01:00
Makefile Clean up CFLAGS/LDFLAGS setup in wheel build. 2021-12-06 13:19:14 +01:00
README.rst Make it clearer what "make repo" is meant for. 2020-02-12 15:32:13 +01:00
ToDo.txt
USAGE.txt
appveyor.yml According to the docs, "/Od" is the default in MSVC, so in order to get it, it should be enough to clear CFLAGS. 2021-04-14 19:58:03 +02:00
cygdb.py
cython.py make `%load_ext cython` still valid 2014-05-05 02:33:06 -03:00
cythonize.py globally install "cythonize" script 2014-07-13 17:25:52 +02:00
doc-requirements.txt docs: Update Sphinx versions to the ones that work in master since the build in 0.29.x currently fails. 2023-07-30 17:16:34 +02:00
pylintrc allow "scanner.sy" as attribute name in pylint 2016-03-28 09:06:56 +02:00
runtests.py test runner: Only print error output if there is some (and it's not None). 2023-07-04 21:30:47 +02:00
setup.py Declare support for Python 3.11 (#5244) 2023-02-06 17:18:53 +00:00
setupegg.py Fix open mode in setupegg.py wrapper script 2015-05-25 16:01:19 +03:00
test-requirements-27.txt Remove broken dependency version from frozen requirements file. 2021-04-11 13:38:07 +02:00
test-requirements-34.txt Add specific test requirements file for Py3.4. 2021-11-16 12:38:35 +01:00
test-requirements-cpython.txt Pin line_profiler version to <4 (#5140) 2022-11-23 19:40:52 +00:00
test-requirements.txt Test: use newer NumPy version in recent Python versions. 2021-11-16 12:33:50 +01:00
tox.ini Update tox.ini a little and include it in sdist. 2023-01-05 15:52:52 +01:00

README.rst

Welcome to Cython!  
==================

Cython is a language that makes writing C extensions for
Python as easy as Python itself.  Cython is based on
Pyrex, but supports more cutting edge functionality and
optimizations.

The Cython language is very close to the Python language, but Cython
additionally supports calling C functions and declaring C types on variables
and class attributes.  This allows the compiler to generate very efficient C
code from Cython code.

This makes Cython the ideal language for wrapping external C libraries, and
for fast C modules that speed up the execution of Python code.

* Official website: http://cython.org/
* Documentation: http://docs.cython.org/en/latest/
* Github repository: https://github.com/cython/cython
* Wiki: https://github.com/cython/cython/wiki


Installation:
-------------

If you already have a C compiler, just do::

   pip install Cython

otherwise, see `the installation page <http://docs.cython.org/en/latest/src/quickstart/install.html>`_.


License:
--------

The original Pyrex program was licensed "free of restrictions" (see below).
Cython itself is licensed under the permissive **Apache License**.

See `LICENSE.txt <https://github.com/cython/cython/blob/master/LICENSE.txt>`_.


Contributing:
-------------

Want to contribute to the Cython project?
Here is some `help to get you started <https://github.com/cython/cython/blob/master/docs/CONTRIBUTING.rst>`_.


Get the full source history:
----------------------------

Note that Cython used to ship the full version control repository in its source
distribution, but no longer does so due to space constraints.  To get the
full source history from a downloaded source archive, make sure you have git
installed, then step into the base directory of the Cython source distribution
and type::

    make repo


The following is from Pyrex:
------------------------------------------------------
This is a development version of Pyrex, a language
for writing Python extension modules.

For more info, see:

* Doc/About.html for a description of the language
* INSTALL.txt    for installation instructions
* USAGE.txt      for usage instructions
* Demos          for usage examples

Comments, suggestions, bug reports, etc. are
welcome!

Copyright stuff: Pyrex is free of restrictions. You
may use, redistribute, modify and distribute modified
versions.

The latest version of Pyrex can be found `here <http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/>`_.

| Greg Ewing, Computer Science Dept
| University of Canterbury
| Christchurch, New Zealand

 A citizen of NewZealandCorp, a wholly-owned subsidiary of USA Inc.