cty
ctyped
pypi i ctyped
cty

ctyped

Build ctypes interfaces for shared libraries with type hinting

by Igor Starikov

0.8.0 (see all)License:BSD 3-Clause License
pypi i ctyped
Readme

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

Description

Build ctypes interfaces for shared libraries with type hinting

Requires Python 3.6+

  • Less boilerplate;
  • Logical structuring;
  • Basic code generator (.so function -> ctyped function);
  • Useful helpers.

.. code-block:: python

from ctyped.toolbox import Library

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

@lib.structure
class Box:

    one: int
    two: str

# 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, box: Box) -> str:
        ...

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

# Call library function.
result_string = some_func('Hello!', 2019, Box(one=35, two='dummy'))

Read the documentation for more information.

Documentation

http://ctyped.readthedocs.org/

GitHub Stars

17

LAST COMMIT

3yrs ago

MAINTAINERS

1

CONTRIBUTORS

1

OPEN ISSUES

0

OPEN PRs

0
VersionTagPublished
0.8.0
3yrs ago
0.7.1
3yrs ago
0.7.0
3yrs ago
0.6.0
3yrs ago
No alternatives found
No tutorials found
Add a tutorial