Metadata-Version: 2.0
Name: ctyped
Version: 0.3.0
Summary: Build ctypes interfaces for shared libraries with type hinting
Home-page: https://github.com/idlesign/ctyped
Author: Igor `idle sign` Starikov
Author-email: idlesign@yandex.ru
License: BSD 3-Clause License
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: BSD License

ctyped
======
https://github.com/idlesign/ctyped

|release| |lic| |ci| |coverage|

.. |release| image:: https://img.shields.io/pypi/v/ctyped.svg
    :target: https://pypi.python.org/pypi/ctyped

.. |lic| image:: https://img.shields.io/pypi/l/ctyped.svg
    :target: https://pypi.python.org/pypi/ctyped

.. |ci| image:: https://img.shields.io/travis/idlesign/ctyped/master.svg
    :target: https://travis-ci.org/idlesign/ctyped

.. |coverage| image:: https://img.shields.io/coveralls/idlesign/ctyped/master.svg
    :target: https://coveralls.io/r/idlesign/ctyped


**Work in progress. Stay tuned.**


Description
-----------

*Build ctypes interfaces for shared libraries with type hinting*

**Requires Python 3.6+**

* Less boilerplate;
* Logical structuring;
* Useful helpers.

.. code-block:: python

    from ctyped.toolbox import Library

    # Define library.
    lib = Library('mylib.so')

    # Type less with function names prefixes.
    with lib.scope(prefix='mylib_'):

        # Describe function available in the library.
        @lib.function()
        def some_func(title: str, year: int) -> str:
            ...

    # Bind ctype types to functions available in the library.
    lib.bind_types()

    # Call function from the library.
    result_string = some_func('Hello!', 2019)


Read the documentation for more information.


Documentation
-------------

http://ctyped.readthedocs.org/


