{ "info": { "author": "Ren\u00e9 Jochum", "author_email": "rene.jochum@mariaebene.at", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 3.5" ], "description": "python client library for `RESTfm`_\n===================================\n\n.. image:: https://travis-ci.org/mariaebene/py-restfmclient.svg?branch=master\n :target: https://travis-ci.org/mariaebene/py-restfmclient\n\n.. image:: https://codecov.io/gh/mariaebene/py-restfmclient/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/mariaebene/py-restfmclient\n\n**In short** This library gives you full access to Filemaker with a pythonic api.\n\nRESTfm gives you full Create, Read, Update and Delete ( CRUD ) operations on FileMaker Server hosted data via standard HTTP GET, POST, PUT and DELETE methods, this means you can get can get access to Filemaker over HTTP and with this library of also with Python 3.5+.\n\n\nRequirements\n------------\n\n- Python 3.5+\n- Tested with FileMaker 15 Server, should work with others.\n\n\nAvailable over pip\n------------------\n\nWe upload releases to pypi, you can get restfmclient over pip::\n\n pip3 install restfmclient\n\n\nInstall RESTfm on \\*nix\n-----------------------\n\n- Install Apache with mod_php or better nginx with php-fpm, there are a lot tutorials for that.\n- Download RESTfm from https://github.com/GoyaPtyLtd/RESTfm/releases and extract it to /var/www::\n\n wget https://github.com/GoyaPtyLtd/RESTfm/releases/download/v4.0.8/RESTfm-4.0.8.tgz\n sudo tar xfz RESTfm-4.0.8.tgz -C /var/www\n\n- Copy *FileMaker Server\\Web Publishing\\FM_API_for_PHP_Standalone.zip* on your server (use winscp or scp).\n- Extract FM_API_for_PHP_Standalone.zip on the linux box::\n\n cd /var/www/RESTfm/FileMaker/\n unzip ~/FM_API_for_PHP_Standalone.zip\n\n- Configure RESTfm::\n\n nano RESTfm.ini.php\n\n- Adjust at least: $config['database']['hostspec']\n\n\nInstall RESTfm on Windows\n-------------------------\n\n- Same as with Linux but with `XAMPP`_, get the PHP 5.6 version.\n\n\nRun the example\n---------------\n\n- Git clone::\n\n git clone https://github.com/mariaebene/py-restfmclient.git\n\n- Install the FileMaker example DB on your host, copy examples/restfm_example.fmp12 on it and activate the db.\n\n- virtualenv::\n\n cd py-restfmclient\n virtualenv -p /usr/bin/python3.5 --no-site-packages venv\n\n- pip install::\n\n ./venv/bin/pip3 install -r requirements_dev.txt\n\n- install restfmclient::\n\n ./venv/bin/python3 setup.py develop\n\n- Run it::\n\n ./venv/bin/python3 examples/restfm_client.py \"http:///RESTfm/\" admin supersecretpw\n\n- Or run with the RESTfm demo server::\n\n ./venv/bin/python3 examples/restfm_client.py \"http://demo.restfm.com/RESTfm/\" write restfm\n\n\nInstall in your own project\n---------------------------\n\nIts recommended to use a virtualenv for your project.\n\nInstall via pip::\n\n pip3 install restfmclient\n\naiohttp works a lot better with cchardet, aiodns and uvloop so install those::\n\n pip3 install cchardet aiodns uvloop\n\nActivate uvloop in your own scripts::\n\n import uvloop\n asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())\n\n\nTesting\n-------\n\nJust install *requirements_dev.txt* and run **nosetests** for a simple mocked test::\n\n git clone https://github.com/mariaebene/py-restfmclient.git\n cd py-restfmclient\n virtualenv -p /usr/bin/python3.5 --no-site-packages venv\n source venv/bin/activate\n pip3 install -r requirements_dev.txt\n nosetests\n\nIf you want to run the tests against a live server you have to install *examples/restfm_example.fmp12* on the Filemaker server, then you can run it by giving the ENV variable **RESTFM_BASE_URL**::\n\n RESTFM_BASE_URL='http://admin:supersecretpw@</RESTfm/' nosetests\n\n\nDevelopment\n-----------\n\nPlease provide pull requests if you want to improve py-restfmclient, just make sure that you don't break the API if not required.\nPlease run nosetests before you create a PR if you can.\n\nTo update the test mock files, run::\n\n rm -rf restfmclient/tests/data/*\n RESTFM_BASE_URL='http://admin:supersecretpw@</RESTfm/' RESTFM_STORE_PATH='restfmclient/tests/data/' nosetests\n\nWe use `zest.releaser`_ to create a release and upload it to pypi.\n\n\nLICENSE\n-------\n\nCopyright 2017 - Stiftung Maria Ebene, licensed under the MIT license.\n\n.. _`RESTfm`: http://restfm.com/\n.. _`XAMPP`: https://www.apachefriends.org/de/download.html\n.. _`zest.releaser`: https://pypi.python.org/pypi/zest.releaser\n.. _`Semantic Versioning`: http://semver.org/\n\nChangelog\n---------\n\n1.2.1 (2016-12-17)\n------------------\n\n- Fix timezone conversations.\n\n\n1.2.0 (2016-12-17)\n------------------\n\n- Improve tests, add more Date types.\n\n- Better default block_size and convert input search values.\n\n- Use tzlocal.get_localzone() as default timezone.\n\n\n1.1.0 (2016-12-15)\n------------------\n\n- Fix a bug with tests, export Record, add name property to layout.\n\n- Use type converters as staticmethods, this breaks the API.\n\n- Fix 2 smaller bugs.\n\n- Do not chache \"count\" in layouts, we want always the current number.\n\n\n1.0.0 (2016-12-10)\n------------------\n\n - We use `Semantic Versioning`_ from that point on\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mariaebene/py-restfmclient", "keywords": "Python Filemaker RestFM", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "restfmclient", "package_url": "https://pypi.org/project/restfmclient/", "platform": "", "project_url": "https://pypi.org/project/restfmclient/", "project_urls": { "Homepage": "https://github.com/mariaebene/py-restfmclient" }, "release_url": "https://pypi.org/project/restfmclient/1.2.1/", "requires_dist": null, "requires_python": "", "summary": "Python client library for RESTfm", "version": "1.2.1" }, "last_serial": 2524953, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "f664380b6f1b99dfa5c34075d18f1cd2", "sha256": "7e231f57bd7d4c3f8e282eb2826051f4327eb664a2cc13a2ec8fd111d42407b6" }, "downloads": -1, "filename": "restfmclient-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f664380b6f1b99dfa5c34075d18f1cd2", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15457, "upload_time": "2016-12-10T15:53:42", "url": "https://files.pythonhosted.org/packages/5a/98/be14aef905af79c9ca5f1d9de81604bdd3a8ab14e9271dddc689bbe71669/restfmclient-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ed9b02bce73e1de6a0c960f0bb20a08", "sha256": "4504cd01b72e3be881ba522027edec58ac7c5096ef5d9e92de9e74c39f528f9f" }, "downloads": -1, "filename": "restfmclient-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8ed9b02bce73e1de6a0c960f0bb20a08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10345, "upload_time": "2016-12-10T15:53:41", "url": "https://files.pythonhosted.org/packages/54/b6/3a6b75696bb0aa451cc557280f4f9045eb4f777b9cd942a3837a44cab8fd/restfmclient-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e79b357af50d32abca71c4ec33c4dab0", "sha256": "2d9d0afe7ee630d754d175ec3cd793c918ddee3adb1a2c05a286bd2381602144" }, "downloads": -1, "filename": "restfmclient-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e79b357af50d32abca71c4ec33c4dab0", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15853, "upload_time": "2016-12-15T20:45:06", "url": "https://files.pythonhosted.org/packages/32/9a/5d779f2222db69baf1a6dec1f27c4b550344f7238d43a7d86f8e59e20dbb/restfmclient-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "565a6c49452d36a4bb6b2a5be69cd8d8", "sha256": "3c2f54947c0319a8fd1a978f5454df36a06a60c2f801a827fc8f451418709c8c" }, "downloads": -1, "filename": "restfmclient-1.1.0.tar.gz", "has_sig": false, "md5_digest": "565a6c49452d36a4bb6b2a5be69cd8d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10617, "upload_time": "2016-12-15T20:45:05", "url": "https://files.pythonhosted.org/packages/71/9b/524583f3acd86adc1ca59a0f677037665cf0440a01c2d4338e4bf9a19c3f/restfmclient-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "eec23ea2be07b49f9a559168f83b33ed", "sha256": "f76084225a23d826f855a47fba1dd5a3905b783a46872dd4897d556fd1e5587c" }, "downloads": -1, "filename": "restfmclient-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eec23ea2be07b49f9a559168f83b33ed", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16514, "upload_time": "2016-12-17T14:31:43", "url": "https://files.pythonhosted.org/packages/8f/83/4a3d7ebe2969c7dcddd66844b2a155b04727c4637cc3717cb08de62c02b3/restfmclient-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e301fbb6f596ec78c358d9db655d0ab", "sha256": "ecd4c29a8ebd4100cce069e17bed6d45ab74e5f710f238d71504766d905df73f" }, "downloads": -1, "filename": "restfmclient-1.2.0.tar.gz", "has_sig": false, "md5_digest": "1e301fbb6f596ec78c358d9db655d0ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10963, "upload_time": "2016-12-17T14:31:42", "url": "https://files.pythonhosted.org/packages/29/73/264b01f0a2807e8b988a73ca65b8bea08363c1e799ab714baa873c47497f/restfmclient-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "6712a31ba42dc67c60459687090cee95", "sha256": "60abd6bae3aec169953902690798a3e3a5bc6382f7f1f1d466a435a901e00bd6" }, "downloads": -1, "filename": "restfmclient-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6712a31ba42dc67c60459687090cee95", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16541, "upload_time": "2016-12-17T16:37:27", "url": "https://files.pythonhosted.org/packages/15/e0/fff8009a8f2772e46828de7634213467b7a3f7f0c2599f8fa1408ab8d097/restfmclient-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd28dea8b24a14b45b85cbe09368a323", "sha256": "12b27f83f0d6b73f27895eb167f4f5bca2d21fe9a6786b669f6d50ab11b25a26" }, "downloads": -1, "filename": "restfmclient-1.2.1.tar.gz", "has_sig": false, "md5_digest": "fd28dea8b24a14b45b85cbe09368a323", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10990, "upload_time": "2016-12-17T16:37:25", "url": "https://files.pythonhosted.org/packages/27/0e/5aca29fc60222729c2cd6551ca0f2cc0e9f305a03889975f54f91cc22455/restfmclient-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6712a31ba42dc67c60459687090cee95", "sha256": "60abd6bae3aec169953902690798a3e3a5bc6382f7f1f1d466a435a901e00bd6" }, "downloads": -1, "filename": "restfmclient-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6712a31ba42dc67c60459687090cee95", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16541, "upload_time": "2016-12-17T16:37:27", "url": "https://files.pythonhosted.org/packages/15/e0/fff8009a8f2772e46828de7634213467b7a3f7f0c2599f8fa1408ab8d097/restfmclient-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd28dea8b24a14b45b85cbe09368a323", "sha256": "12b27f83f0d6b73f27895eb167f4f5bca2d21fe9a6786b669f6d50ab11b25a26" }, "downloads": -1, "filename": "restfmclient-1.2.1.tar.gz", "has_sig": false, "md5_digest": "fd28dea8b24a14b45b85cbe09368a323", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10990, "upload_time": "2016-12-17T16:37:25", "url": "https://files.pythonhosted.org/packages/27/0e/5aca29fc60222729c2cd6551ca0f2cc0e9f305a03889975f54f91cc22455/restfmclient-1.2.1.tar.gz" } ] }