Unicode array elements are always cast to regular Python strings; always cast strings...
[plcapi.git] / psycopg2 / doc / HACKING
1 General information
2 *******************
3
4 Some help to people wanting to hack on psycopg. First of all, note that
5 *every* function in the psycopg module source code is prefixed by one of the
6 following words:
7
8     psyco is used for function directly callable from python (i.e., functions
9         in the psycopg module itself.) the only notable exception is the
10         source code for the module itself, that uses "psyco" even for C-only
11         functions.
12
13     conn is used for functions related to connection objects.
14
15     curs is used for functions related to cursor objects.
16
17     typecast is used for typecasters and utility function related to
18         typecaster creation and registration.
19
20 Pythonic definition of types and functions available from python are defined
21 in *_type.c files. Internal functions, callable only from C are located in
22 *_int.c files and extensions to the DBAPI can be found in the *_ext.c files.
23
24
25 Patches
26 *******
27
28 If you submit a patch, please send a diff generated with the "-u" switch.
29 Also note that I don't like that much cosmetic changes (like renaming
30 already existing variables) and I will rewrap the patch to 78 columns
31 anyway, so it is much better if you do that beforehand.
32
33
34 The type system
35 ***************
36
37 Simple types, like integers and strings, are converted to python base types
38 (the conversion functions are in typecast_base.c). Complex types are
39 converted to ad-hoc types, defined in the typeobj_*.{c,h} files. The
40 conversion function are in the other typecast_*.c files. typecast.c defines
41 the basic utility functions (available through the psycopg module) used when
42 defining new typecasters from C and python.
43