123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- Metadata-Version: 2.1
- Name: pythran
- Version: 0.16.1
- Summary: Ahead of Time compiler for numeric kernels
- Author-email: Serge Guelton <serge.guelton@telecom-bretagne.eu>
- License: Copyright (c) 2012, HPC Project and Serge Guelton
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
- Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- Neither the name of HPCProject, Serge Guelton nor the names of its
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
- Project-URL: Homepage, https://github.com/serge-sans-paille/pythran
- Project-URL: Documentation, https://pythran.readthedocs.io
- Project-URL: Changelog, https://pythran.readthedocs.io/en/latest/Changelog.html
- Classifier: Development Status :: 4 - Beta
- Classifier: Environment :: Console
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: BSD License
- Classifier: Natural Language :: English
- Classifier: Operating System :: POSIX :: Linux
- Classifier: Operating System :: MacOS
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: C++
- Classifier: Topic :: Software Development :: Compilers
- Classifier: Topic :: Software Development :: Code Generators
- Requires-Python: >=3.7
- Description-Content-Type: text/x-rst
- License-File: LICENSE
- License-File: AUTHORS
- Requires-Dist: ply>=3.4
- Requires-Dist: setuptools
- Requires-Dist: gast~=0.5.0
- Requires-Dist: numpy
- Requires-Dist: beniget~=0.4.0
- Provides-Extra: doc
- Requires-Dist: numpy; extra == "doc"
- Requires-Dist: nbsphinx; extra == "doc"
- Requires-Dist: scipy; extra == "doc"
- Requires-Dist: guzzle-sphinx-theme; extra == "doc"
- Provides-Extra: test
- Requires-Dist: ipython; extra == "test"
- Requires-Dist: nbval; extra == "test"
- Requires-Dist: cython; extra == "test"
- Requires-Dist: wheel; extra == "test"
- Requires-Dist: packaging; extra == "test"
- Pythran
- #######
- https://pythran.readthedocs.io
- What is it?
- -----------
- Pythran is an ahead of time compiler for a subset of the Python language, with a
- focus on scientific computing. It takes a Python module annotated with a few
- interface descriptions and turns it into a native Python module with the same
- interface, but (hopefully) faster.
- It is meant to efficiently compile **scientific programs**, and takes advantage
- of multi-cores and SIMD instruction units.
- Until 0.9.5 (included), Pythran was supporting Python 3 and Python 2.7.
- It now only supports Python **3**.
- Installation
- ------------
- Pythran sources are hosted on https://github.com/serge-sans-paille/pythran.
- Pythran releases are hosted on https://pypi.python.org/pypi/pythran.
- Pythran is available on conda-forge on https://anaconda.org/conda-forge/pythran.
- Debian/Ubuntu
- =============
- Using ``pip``
- *************
- 1. Gather dependencies:
- Pythran depends on a few Python modules and several C++ libraries. On a debian-like platform, run::
- $> sudo apt-get install libatlas-base-dev
- $> sudo apt-get install python-dev python-ply python-numpy
- 2. Install with ``pip``::
- $> pip install pythran
- Using ``mamba`` or ``conda``
- ****************************
- 1. Using ``mamba`` (https://github.com/conda-forge/miniforge#mambaforge) or ``conda`` (https://github.com/conda-forge/miniforge)
-
- 2. Run::
- $> mamba install -c conda-forge pythran
- or::
- $> conda install -c conda-forge pythran
- Mac OSX
- =======
- Using brew (https://brew.sh/)::
- $> pip install pythran
- $> brew install openblas
- $> printf '[compiler]\nblas=openblas\ninclude_dirs=/usr/local/opt/openblas/include\nlibrary_dirs=/usr/local/opt/openblas/lib' > ~/.pythranrc
- Depending on your setup, you may need to add the following to your ``~/.pythranrc`` file::
- [compiler]
- CXX=g++-4.9
- CC=gcc-4.9
- ArchLinux
- =========
- Using ``pacman``::
- $> pacman -S python-pythran
- Fedora
- ======
- Using ``dnf``::
- $> dnf install pythran
- Windows
- =======
- Windows support is on going and only targets Python 3.5+ with either Visual Studio 2017 or, better, clang-cl::
- $> pip install pythran
- Note that using ``clang-cl.exe`` is the default setting. It can be changed
- through the ``CXX`` and ``CC`` environment variables.
- Other Platform
- ==============
- See MANUAL file.
- Basic Usage
- -----------
- A simple pythran input could be ``dprod.py``
- .. code-block:: python
- """
- Naive dotproduct! Pythran supports numpy.dot
- """
- #pythran export dprod(int list, int list)
- def dprod(l0,l1):
- """WoW, generator expression, zip and sum."""
- return sum(x * y for x, y in zip(l0, l1))
- To turn it into a native module, run::
- $> pythran dprod.py
- That will generate a native dprod.so that can be imported just like the former
- module::
- $> python -c 'import dprod' # this imports the native module instead
- Documentation
- -------------
- The user documentation is available in the MANUAL file from the doc directory.
- The developer documentation is available in the DEVGUIDE file from the doc
- directory. There is also a TUTORIAL file for those who don't like reading
- documentation.
- The CLI documentation is available from the pythran help command::
- $> pythran --help
- Some extra developer documentation is also available using pydoc. Beware, this
- is the computer science incarnation for the famous Where's Waldo? game::
- $> pydoc pythran
- $> pydoc pythran.typing
- $> pydoc -b # in the browser
- Examples
- --------
- See the ``pythran/tests/cases/`` directory from the sources.
- Contact
- -------
- Praise, flame and cookies:
- - pythran@freelists.org -- register at https://www.freelists.org/list/pythran first!
- - #pythran on OFTC, https://oftc.net
- - serge.guelton@telecom-bretagne.eu
- The mailing list archive is available at https://www.freelists.org/archive/pythran/.
- Citing
- ------
- If you need to cite a Pythran paper, feel free to use
- .. code-block:: bibtex
- @article{guelton2015pythran,
- title={Pythran: Enabling static optimization of scientific python programs},
- author={Guelton, Serge and Brunet, Pierrick and Amini, Mehdi and Merlini,
- Adrien and Corbillon, Xavier and Raynaud, Alan},
- journal={Computational Science \& Discovery},
- volume={8},
- number={1},
- pages={014001},
- year={2015},
- publisher={IOP Publishing}
- }
- Authors
- -------
- See AUTHORS file.
- License
- -------
- See LICENSE file.
|