python-fmrest is a wrapper around the FileMaker Data API.
Project description
python-fmrest
python-fmrest is a wrapper around the FileMaker Data API.
No need to worry about manually requesting access tokens, setting the right http headers, parsing responses, ...
Quick example:
>>> fms = fmrest.Server('https://your-server.com',
user='admin',
password='admin',
database='Contacts',
layout='Contacts',
api_version='v1')
>>> fms.login()
>>> record = fms.get_record(1)
>>> record.name
John Doe
Supported Features
All API paths can be served:
- auth
- record
- find
- global
- script
Access to meta routes is also supported.
Sponsor
python-fmrest development is supported by allgood.systems. Monitor your web sites and get notifications when your scheduled FileMaker scripts or system scripts stop running.
Feel free to contribute!
If you would like to contribute, you can help with the code, try it out and report 🐞🐞, propose new features, write tests, add examples and documentation.
There's always room for improvement!
Questions/problems? Open a new issue. You can also contact me directly at dh@davidhamann.de.
Install
You need Python 3.6 or newer and FileMaker Server/Cloud 17 or newer.
You can install the library like this (preferably in a virtualenv):
pip install python-fmrest
Or the latest master:
pip install https://github.com/davidhamann/python-fmrest/archive/master.zip
Usage Examples
Examples can be found in the examples directory. Can't figure something out or feel an example is missing? Please file an issue.
Local development / running tests
Make sure to have requirements-dev.txt installed:
pip install -r requirements-dev.txt
Running pytest
will run all tests. To run specific tests, specify the path:
pytest tests/unit
For running tests/integration
you will need to have a real FileMaker Server and a test database.
For static type checking, please use mypy
:
mypy fmrest
To have all tests plus static type checks run every time before a commit, please install the git hook:
cd hooks
chmod +x install.sh pre-commit.sh run-tests.sh
./install.sh
Bundling with PyInstaller
If you are building an application that should be bundled with PyInstaller, please add a hook file to your project to indicate to PyInstaller
to copy python-fmrest
s metadata.
pyinstaller-hooks/hook-fmrest.py
from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('python-fmrest')
Then add the path to the hooks directory to the Analysis
section of your .spec
file (in case you haven't done so for other hooks yet). For example: hookspath=['./pyinstaller-hooks']
.
TO DO
Some bits and pieces are not implemented yet.
Examples of what I can think of:
- OAuth support
- Handling of reserved field names (currently,
record_id
,modification_id
,is_dirty
clash with used properties and you will not be able to read your own fields with the same name) - Needs more test coverage, e.g. for
get_records()
,find()
,edit_record()
- Some more usage examples on how to create, edit, delete, set globals, etc. Tell me where you have issues by opening an issue.
- cli support would be great at some point in the future :-)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python-fmrest-1.7.4.tar.gz
.
File metadata
- Download URL: python-fmrest-1.7.4.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8424d1329c92dccfc3f16929b9911baa8591a9facb569fea9cb1ee8f6145fcc7 |
|
MD5 | 7f8d11c35155b4c02bad86fc17eef5fd |
|
BLAKE2b-256 | aa94475172228118ee21a1f5f213231da9cb5cf020860e3279ae73b843317de1 |
File details
Details for the file python_fmrest-1.7.4-py3-none-any.whl
.
File metadata
- Download URL: python_fmrest-1.7.4-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3c3bc9f7cd83069298378588ddd3d870c6610c5d97f8d5dab2db864df9c3c10 |
|
MD5 | e26bfc413c6a5a69b241ac0ead3afa31 |
|
BLAKE2b-256 | 29cbf8395502af9929e90ed0b8be7af35bd102275bfcf4bbc5ba6b80a700d722 |