# fmkr **Repository Path**: mirrors_cgohlke/fmkr ## Basic Information - **Project Name**: fmkr - **Description**: Access FileMaker(tm) server databases. - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-23 - **Last Updated**: 2026-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README .. This file is generated by setup.py Access FileMaker(tm) Server Databases ===================================== Fmkr is a Python library to access FileMaker(tm) Server 8 Advanced databases via the XML publishing interface. "FileMaker" is a registered trademark of Claris International Inc. :Author: `Christoph Gohlke `_ :License: BSD-3-Clause :Version: 2026.1.6 Requirements ------------ This revision was tested with the following requirements and dependencies (other versions may work): - `CPython `_ 3.11.9, 3.12.10, 3.13.11, 3.14.2 - `Lxml `_ 6.0.2 - `FileMaker(tm) Server 8 Advanced `_ Revisions --------- 2026.1.6 - Improve code quality. - Support Python 3.12, 3.13, and 3.14. - Drop support for Python 3.8, 3.9, and 3.10. 2022.9.28 - Convert docstrings to Google style with Sphinx directives. 2022.3.24 - Add type hints. - Improve string representations of objects. - Add immutable sequence interface to FMPXMLResult. - Drop support for Python 3.6 and 3.7 (NEP 29). 2021.3.6 - Update copyright and formatting. 2020.1.1 - Drop support for Python 3.5. - Update copyright. 2018.8.15 - Move fmkr.py into fmkr package. 2018.5.25 - Use lxml instead of minidom to parse FMPXMLResult. - Improve string representations of FMPXMLResult and FMField. - Update error codes. - Drop support for Python 2. 2006.10.30 - Initial release. References ---------- 1. http://www.filemaker.com/downloads/documentation/fmsa8_custom_web_guide.pdf Examples -------- .. code-block:: python >>> from fmkr import FM, FMError >>> fmi = FM('filemaker.domain.com', 80, 'http') >>> fmi.set_db_data('database', 'layout', maxret=5) >>> fmi.set_db_password('fmuser', 'password') >>> # create a new record >>> fmi.add_db_param('FIRST', 'John') >>> fmi.add_db_param('LAST', 'Doe') >>> fmi.fm_new() >>> # find and sort records >>> fmi.add_db_param('LAST', 'Doe', 'bw') >>> fmi.add_sort_param('LAST', 'ascend', 1) >>> fmi.add_sort_param('FIRST', 'ascend', 2) >>> result = fmi.fm_find() >>> for record in result: ... print(record['FIRST'], record['LAST']) ... John Doe >>> # delete record >>> recid = result[0]['RECORDID'] >>> fmi.set_record_id(recid) >>> fmi.fm_delete() >>> # catch an exception >>> try: ... fmi.add_db_param('LAST', 'Doe', 'cn') ... fmi.fm_find() ... except FMError as exc: ... print(exc) ... FileMaker Error 401: No records match the request