Standard library

PyFM includes the whole standard Python library except a few modules that are not compatible or require a third-party library that doesn't come with operating system.

See the Python standard library documentation.

The list of excluded or changed modules is not complete, nor does it guarantee that all other modules are compatible.

Also, some modules are slightly changed, e.g. modules that used to be shipped separately are built into the plug-in.

Excluded modules#Back to top

bsddb#Back to top

This is one of modules to work with Berkeley DB; the other one is bsddb185. This module supports newer versions (starting with v3.5). It is not included in PyFM yet, but is available as a separate third-party pybsddb module (see also old page). In Python 3 this module was removed from the standard library.

I excluded this module because Berkeley DB Library v3.5 or newer does not seem to be available on plain vanilla Mac OS X or Windows.

bsddb185#Back to top

This is a standard Python 2.7 module, but it's rather old and considered deprecated; it has been removed in v3. Python documentation places it in undocumented modules:

Backwards compatibility module for systems which still use the Berkeley DB 1.85 module. It is normally only available on certain BSD Unix-based systems. It should never be used directly.

It appears there was an independent fork, but as of time of writing the links were broken. Here's what the author (Skip Montanaro) wrote in Dec 2007:

Python 3.0 will dispense with the rarely used, but occasionally indispensible, bsddb185 module. I extracted the source code and unit tests from the current Python trunk, wrote a setup.py, made a couple slight mods so it would build and pass tests under both Python 2.6 and 3.0.

Internally it's a wrapper around the dbopen() function; see man dbopen for details (e.g. in Mac OS X Developer Library).

readline#Back to top

The readline module helps with Python command-line. I excluded it because PyFM does not have a command line (it has a console, but internally it is very different from a typical terminal) and because the module depends on libreadline, which is only available under the GPL license.

Tkinter and other Tk modules#Back to top

Tkinter and all other Tk modules are excluded, because there seems to be no way to call it from a dynamic library. It can be started, but it assumes it is to run the whole application, so it replaces the menus, etc., and eventually crashes FileMaker. Maybe there is a way to tame it, but I didn't investigate it in details.

The full list of Tk modules:

tkinter        Canvas          Dialog          FileDialog    FixTk
ScrolledText   SimpleDialog    Tix             Tkconstants   Tkdnd
Tkinter        tkColorChooser  tkCommonDialog  tkFileDialog  tkFont
tkMessageBox   tkSimpleDialog  ttk             turtle

Changed modules#Back to top

sqlite3#Back to top

sqlite3 on Mac does not link against the system SQLite, but uses the included libsqlite v3.7.12.1 built with SQLCipher support.