Metadata-Version: 2.0
Name: cypyler
Version: 0.2.0
Summary: A cython compiler for compiling source code in string form.
Home-page: https://github.com/gpkc/cypyler
Author: Guilherme Caminha
Author-email: gpkc@cin.ufpe.br
License: MIT license
Description-Content-Type: UNKNOWN
Keywords: cypyler
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: cython
Requires-Dist: numpy

=======
Cypyler
=======


.. image:: https://img.shields.io/pypi/v/cypyler.svg
        :target: https://pypi.python.org/pypi/cypyler

.. image:: https://img.shields.io/travis/gpkc/Cypyler.svg
        :target: https://travis-ci.org/gpkc/Cypyler


A cython compiler for compiling source code in string form.

Example:

.. code:: python

    from cypyler import TMPCypyler

    code = """
    def add(x, y):
        return x + y
    """

    cp = TMPCypyler()
    built_module = cp.build(code)
    built_module.add(2, 3)


Usage
-----

Cypyler
~~~~~~~

Instantiation
^^^^^^^^^^^^^
.. code:: python

    from cypyler import Cypyler

    cp = Cypyler('<build_dir>', '<libraries>', '<include_dirs>')

Where ``build_dir`` is the desired directory (path) for the module to be built on.
The arguments ``libraries`` and ``include_dirs`` are lists containing libraries and include directories that should be passed to Cython when compiling.


Building
^^^^^^^^

.. code:: python

    cp.build('<code>', '<suffix>')

Where ``code`` is the code in string form. The ``suffix`` argument defaults to ``.pyx``.


TMPCypyler
~~~~~~~~~~

Instantiation
^^^^^^^^^^^^^

.. code:: python

    from cypyler import TMPCypyler

    cp = Cypyler('<build_dir_prefix>', '<libraries>', '<include_dirs>')

Where ``build_dir_prefix`` is a prefix for the temporary build directory.
The build directory is created using the ``tempfile.mkdtemp`` function from the Python standard library.


Building
^^^^^^^^

.. code:: python

    cp.build('<code>', '<suffix>')

Where ``code`` is the code in string form. The ``suffix`` argument defaults to ``.pyx``.


* Free software: MIT license


