Module constants definition moved in a separate function for clarity

This commit is contained in:
Daniele Varrazzo 2019-01-21 18:18:41 +00:00
parent 4246fdf809
commit 549beeea84

View File

@ -721,6 +721,40 @@ psyco_errors_set(PyObject *type)
} }
} }
RAISES_NEG
static int
add_module_constants(PyObject *module)
{
if (0 > PyModule_AddStringConstant(module,
"__version__", xstr(PSYCOPG_VERSION)))
{ return -1; }
if (0 > PyModule_AddStringConstant(module,
"__doc__", "psycopg2 PostgreSQL driver"))
{ return -1; }
if (0 > PyModule_AddIntConstant(module,
"__libpq_version__", PG_VERSION_NUM))
{ return -1; }
if (0 > PyModule_AddObject(module,
"apilevel", Text_FromUTF8(APILEVEL)))
{ return -1; }
if (0 > PyModule_AddObject(module,
"threadsafety", PyInt_FromLong(THREADSAFETY)))
{ return -1; }
if (0 > PyModule_AddObject(module,
"paramstyle", Text_FromUTF8(PARAMSTYLE)))
{ return -1; }
if (0 > PyModule_AddIntMacro(module, REPLICATION_PHYSICAL)) { return -1; }
if (0 > PyModule_AddIntMacro(module, REPLICATION_LOGICAL)) { return -1; }
return 0;
}
/** method table and module initialization **/ /** method table and module initialization **/
@ -934,11 +968,6 @@ INIT_MODULE(_psycopg)(void)
#endif #endif
if (!module) { goto exit; } if (!module) { goto exit; }
dict = PyModule_GetDict(module);
/* initialize all the module's exported functions */
/* PyBoxer_API[PyBoxer_Fake_NUM] = (void *)PyBoxer_Fake; */
/* Create a CObject containing the API pointer array's address */ /* Create a CObject containing the API pointer array's address */
/* If anybody asks for a PyCapsule we'll deal with it. */ /* If anybody asks for a PyCapsule we'll deal with it. */
#if PY_VERSION_HEX < 0x03020000 #if PY_VERSION_HEX < 0x03020000
@ -950,17 +979,9 @@ INIT_MODULE(_psycopg)(void)
/* other mixed initializations of module-level variables */ /* other mixed initializations of module-level variables */
if (!(psycoEncodings = PyDict_New())) { goto exit; } if (!(psycoEncodings = PyDict_New())) { goto exit; }
if (0 != psyco_encodings_fill(psycoEncodings)) { goto exit; } if (0 != psyco_encodings_fill(psycoEncodings)) { goto exit; }
psyco_null = Bytes_FromString("NULL"); if (!(psyco_null = Bytes_FromString("NULL"))) { goto exit; }
/* set some module's parameters */ if (0 > add_module_constants(module)) { goto exit; }
PyModule_AddStringConstant(module, "__version__", xstr(PSYCOPG_VERSION));
PyModule_AddStringConstant(module, "__doc__", "psycopg PostgreSQL driver");
PyModule_AddIntConstant(module, "__libpq_version__", PG_VERSION_NUM);
PyModule_AddIntMacro(module, REPLICATION_PHYSICAL);
PyModule_AddIntMacro(module, REPLICATION_LOGICAL);
PyModule_AddObject(module, "apilevel", Text_FromUTF8(APILEVEL));
PyModule_AddObject(module, "threadsafety", PyInt_FromLong(THREADSAFETY));
PyModule_AddObject(module, "paramstyle", Text_FromUTF8(PARAMSTYLE));
/* put new types in module dictionary */ /* put new types in module dictionary */
PyModule_AddObject(module, "connection", (PyObject*)&connectionType); PyModule_AddObject(module, "connection", (PyObject*)&connectionType);
@ -987,6 +1008,8 @@ INIT_MODULE(_psycopg)(void)
/* encodings dictionary in module dictionary */ /* encodings dictionary in module dictionary */
PyModule_AddObject(module, "encodings", psycoEncodings); PyModule_AddObject(module, "encodings", psycoEncodings);
dict = PyModule_GetDict(module);
#ifdef HAVE_MXDATETIME #ifdef HAVE_MXDATETIME
/* If we can't find mx.DateTime objects at runtime, /* If we can't find mx.DateTime objects at runtime,
* remove them from the module (and, as consequence, from the adapters). */ * remove them from the module (and, as consequence, from the adapters). */