diff python/pydc/README.txt @ 28:edbbd467f50a

python binding: - update to dyncall 1.1 - Python 3 support (supports both, Python 2 and 3) - using the Capsule API over PyCObject, when available - support for python unicode strings (for both, Python 2 and 3) - doc cleanup ruby binding: - doc cleanup
author Tassilo Philipp
date Tue, 07 Apr 2020 21:16:37 +0200
parents 681db37a300c
children 6cc2b7fc7ea2
line wrap: on
line diff
--- a/python/pydc/README.txt	Sun Jan 12 12:10:38 2020 +0100
+++ b/python/pydc/README.txt	Tue Apr 07 21:16:37 2020 +0200
@@ -1,8 +1,12 @@
 dyncall python bindings
-(C) 2007-2016 Daniel Adler
-Dec 4, 2007: initial
-Mar 22,2016: update to dyncall 0.9, includes breaking sig char changes
-Apr 19,2018: update to dyncall 1.0
+Copyright 2007-2016 Daniel Adler
+          2018-2020 Tassilo Philipp
+
+Dec  4, 2007: initial
+Mar 22, 2016: update to dyncall 0.9, includes breaking sig char changes
+Apr 19, 2018: update to dyncall 1.0
+Apr  7, 2020: update to dyncall 1.1, Python 3 support, using the Capsule
+              API, as well as support for python unicode strings
 
 
 BUILD/INSTALLATION
@@ -15,7 +19,7 @@
 
      python setup.py install
 
-Building an egg isn't supported, currently.
+Building a wheel package isn't supported, currently.
 
 
 API
@@ -35,31 +39,32 @@
 
     x is positional parameter-type charcode, y is result-type charcode
 
-  SIG | FROM PYTHON                        | C/C++              | TO PYTHON
-  ----+------------------------------------+--------------------+-----------------------------------
-  'v' |                                    | void               |
-  'B' | PyBool                             | bool               | PyBool
-  'c' | PyInt (range checked)              | char               | PyInt
-  'C' | PyInt (range checked)              | unsigned char      | PyInt
-  's' | PyInt (range checked)              | short              | PyInt
-  'S' | PyInt (range checked)              | unsigned short     | PyInt
-  'i' | PyInt                              | int                | PyInt
-  'I' | PyInt                              | unsigned int       | PyInt
-  'j' | PyLong                             | long               | PyLong
-  'J' | PyLong                             | unsigned long      | PyLong
-  'l' | PyLongLong                         | long long          | PyLongLong
-  'L' | PyLongLong                         | unsigned long long | PyLongLong
-  'f' | PyFloat (cast to single precision) | float              | PyFloat (cast to double precision)
-  'd' | PyFloat                            | double             | PyFloat
-  'p' | PyCObject                          | void*              | PyCObject encapsulating a void*
-  'Z' | PyString                           | const char*        | PyString
+  SIG | FROM PYTHON 2                      | FROM PYTHON 3 @@@                  | C/C++                           | TO PYTHON 2                        | TO PYTHON 3 @@@
+  ----+------------------------------------+------------------------------------+---------------------------------+------------------------------------+-----------------------------------
+  'v' |                                    |                                    | void                            |                                    |
+  'B' | PyBool                             | PyBool                             | bool                            | PyBool                             | PyBool
+  'c' | PyInt (range checked)              | PyInt (range checked)              | char                            | PyInt                              | PyInt
+  'C' | PyInt (range checked)              | PyInt (range checked)              | unsigned char                   | PyInt                              | PyInt
+  's' | PyInt (range checked)              | PyInt (range checked)              | short                           | PyInt                              | PyInt
+  'S' | PyInt (range checked)              | PyInt (range checked)              | unsigned short                  | PyInt                              | PyInt
+  'i' | PyInt                              | PyInt                              | int                             | PyInt                              | PyInt
+  'I' | PyInt                              | PyInt                              | unsigned int                    | PyInt                              | PyInt
+  'j' | PyLong                             | PyLong                             | long                            | PyLong                             | PyLong
+  'J' | PyLong                             | PyLong                             | unsigned long                   | PyLong                             | PyLong
+  'l' | PyLongLong                         | PyLongLong                         | long long                       | PyLongLong                         | PyLongLong
+  'L' | PyLongLong                         | PyLongLong                         | unsigned long long              | PyLongLong                         | PyLongLong
+  'f' | PyFloat (cast to single precision) | PyFloat (cast to single precision) | float                           | PyFloat (cast to double precision) | PyFloat (cast to double precision)
+  'd' | PyFloat                            | PyFloat                            | double                          | PyFloat                            | PyFloat
+  'p' | PyUnicode/PyString/PyLong          | PyUnicode/PyBytes/PyLong           | void*                           | Py_ssize_t                         | Py_ssize_t
+  'Z' | PyUnicode/PyString                 | PyUnicode/PyBytes                  | const char* (UTF-8 for unicode) | PyString                           | PyUnicode
 
 
 TODO
 ====
 
-- support signature suffixes used to indicate calling conventions, are not supported yet!
-- not sure if returning 'p' is working, creating PyCObject, check and write test code
+- signature suffixes used to indicate calling conventions are not supported yet!
+- not sure if returning 'p' is working, creating PyCObject, check and write test code @@@
+- callback support
 
 
 BUGS
@@ -70,9 +75,11 @@
   solution:
   installation of latest python for os x (MacPython 2.5)  
 
-  build log:
 
-  python setup.py install
+EXAMPLE BUILD
+=============
+
+  $ python setup.py install
   running install
   running build
   running build_py