fredyshox / pypxlib

Python bindings for the pxlib library for reading and writing Paradox databases.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pypxlib

Python bindings for the pxlib library for reading and writing Paradox databases. The version of pxlib currently exposed by pypxlib is 0.6.5.

Installation

Usage

pypxlib exposes a high-level API for reading Paradox databases. To use this API, you need the following import:

Get the fields in a table:

Get the number of rows:

Get the first row:

Access a row’s properties:

Iterate over all rows:

There is limited support for modifying tables:

Do note that you must call .save(...) on the exact Row object that you modified. That is, the following will not work:

Rows can also be inserted. This is done by passing a tuple of objects to table.insert(...). The elements of the tuple must have exactly the types given by the table's .fields property:

Deleting a row can be done via the del keyword:

Finally, don't forget to close the table when you are done!

Or use it as a context manager:

Access to pxlib via ctypes

pypxlib is esentially a thin wrapper around the pxlib C library. The high-level API described above makes it easy to read tables but offers limited support when it comes to writing tables. If you also need to write to a table, or another more complicated use case, then you can fall back to the ctypes bindings of pxlib exposed by this library:

All the PX_... functions come directly from the list of pxlibs functions. Note that you do not need to call PX_boot() and PX_shutdown, as these functions are already called when importing pypxlib, and via an atexit handler.

Platforms

This library was tested on the following platforms:

  • Windows 7 (64 bit): 32 and 64 bit Python 2.7.10 and 3.5.0.
  • OS X: Python 2.7.10 and 3.4.2.
  • Ubuntu 14.04.1 (64bit): Python 2.7.6 and 3.4.0.

Dynamic libraries in this repository

The dynamic libraries libpx.so, pxlib.dll (pxlib_x64.dll), and libpx.dylib were obtained from building pxlib 0.6.5 on Ubuntu 14.0.4.1, Windows 7 and Mac OS X 10.10.5, respectively. See Building pxlib below.

Building pxlib

This project contains dynamic libraries for version 0.6.5 of the pxlib library. Here, the steps that were necessary to compile the library on the various operating systems are documented.

Ubuntu 14.04.1 LTS

OS X 10.10.5

Windows 7

  1. Download & install the Microsoft Visual C++ Compiler for Python 2.7.
  2. Download and install CMake.
  3. Download the pxlib 0.6.5 sources from http://sourceforge.net/projects/pxlib/files/latest/download?source=files .
  4. Extract the pxlib sources to two directories for 32 and 64 bit, respectively. Eg. C:\pxlib-0.6.5-x86 and C:\pxlib-0.6.5-x64.
5. Start the Visual C++ 2008 32-bit Command Prompt, cd to

C:\pxlib-0.6.5-x86 and execute the following commands:

  1. Repeat step 5. with the 64-bit Command Prompt and C:\pxlib-0.6.5-x64.
  2. That's it. You now have the 32 bit dll in C:\pxlib-0.6.5-x86\pxlib.dll and the 64 bit dll in C:\pxlib-0.6.5-x64\pxlib.dll.

About

Python bindings for the pxlib library for reading and writing Paradox databases.

License:GNU General Public License v2.0


Languages

Language:Python 100.0%