{ "info": { "author": "gatekeeper", "author_email": "arewa.olakunle@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "`__init__.py`\n```python\nfrom .patients import patients\nfrom pylib.falcon.jsonmiddlerware import RequireJSON, JSONTranslator\n\nimport falcon\n\n# setup required middleware\napi = falcon.API(middleware=[\n RequireJSON(),\n JSONTranslator()\n])\n\n\n# our custom error serializer\ndef __json_error_serializer(req, exception):\n return ('application/json', exception.to_json())\napi.set_error_serializer(__json_error_serializer)\n\n\npatients.register(api)\n```\n\n`patients.py`\n```python\nfrom pylib.schema import validators\nfrom pylib.falcon import Collection\n\nfrom marshmallow import Schema\nfrom marshmallow.fields import Int, Str, Date\n\nall_patients = []\ncounter = 0\n\ndef authenticate(req, resp, res, params):\n pass\n\ndef authorize(req, resp, res, params):\n pass\n\nclass PatientSchema(Schema):\n id = Int()\n firstname = Str(required=True)\n surname = Str()\n dob = Date()\n homephone = Str(validate=validators.phone_check)\n\npatients = Collection(\n '/api/patients', 'pid',\n PatientSchema(), before=[authenticate])\n\n\ndef has_same_key_predicate(key, query):\n def predicate(patient):\n value = patient.get(key)\n return value and value.startswith(query)\n return predicate\n\n\n@patients.search(before=[authorize])\ndef search(query, query_type, **kwargs):\n if query is None:\n return all_patients\n\n query_type = 'firstname' if query_type is None else query_type\n return list(filter(\n has_same_key_predicate(query_type, query),\n all_patients))\n\n\n@patients.create(before=[authorize])\ndef create(patient, **kwargs):\n all_patients.append(patient)\n return len(all_patients) - 1\n\n\n@patients.read(before=[authorize])\ndef get(pid):\n if pid < len(all_patients):\n return all_patients[pid]\n\n\n@patients.update(before=[authorize])\ndef update(pid, patient):\n if pid < len(all_patients):\n all_patients[pid] = patient\n return patient\n\n\n@patients.delete(before=[authorize])\ndef delete(pid):\n if pid < len(all_patients):\n patient = all_patients[pid]\n all_patients.pop(pid)\n return patient\n\n```", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/gakp/pylib.git", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "gakp-pylib", "package_url": "https://pypi.org/project/gakp-pylib/", "platform": "any", "project_url": "https://pypi.org/project/gakp-pylib/", "project_urls": { "Homepage": "https://gitlab.com/gakp/pylib.git" }, "release_url": "https://pypi.org/project/gakp-pylib/2016.8.13/", "requires_dist": [ "falcon (==0.3.0)", "gakp-pyfunk (==0.4.0)", "marshmallow (==2.7.1)", "pymongo (==3.2.2)", "pytz (==2016.4)" ], "requires_python": "", "summary": "", "version": "2016.8.13" }, "last_serial": 2503838, "releases": { "0.2.5": [ { "comment_text": "", "digests": { "md5": "8ee09e058a660abac6eb5de1090a7ba4", "sha256": "1fe0944aa84a6c7c5fb91f099276cc2454158c3a7922228613bbddea4a561885" }, "downloads": -1, "filename": "gakp-pylib-0.2.5.tar.gz", "has_sig": false, "md5_digest": "8ee09e058a660abac6eb5de1090a7ba4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11239, "upload_time": "2016-06-27T02:57:08", "url": "https://files.pythonhosted.org/packages/ec/3c/7c9fbf2660fdf3ed548da9783c6c8b2d22effa4804fe5ab8e372532f2fd8/gakp-pylib-0.2.5.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "47d1f22b360fa018ad2ef9c6efb26b68", "sha256": "3925a47c77d967e1c319109d948aaedf8a960c13a2f2f24b135937e87424d876" }, "downloads": -1, "filename": "gakp_pylib-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "47d1f22b360fa018ad2ef9c6efb26b68", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18105, "upload_time": "2016-08-13T17:19:04", "url": "https://files.pythonhosted.org/packages/ec/04/40c9df74540f460d396ca0187e273bb454750dfb925f9745734dc6040634/gakp_pylib-0.2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28879b9fad117e149a601c1d735a5034", "sha256": "c78ca03d80995fe3c640f6424a010aaaa542dc59c1f20de477e12a8a0eb012e8" }, "downloads": -1, "filename": "gakp-pylib-0.2.7.tar.gz", "has_sig": false, "md5_digest": "28879b9fad117e149a601c1d735a5034", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11618, "upload_time": "2016-08-13T17:19:06", "url": "https://files.pythonhosted.org/packages/22/4d/f0a0c92e6c9c64534e4d2373300fdc9e6fcd9a5dae3733a8c7a0514a65b4/gakp-pylib-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "469c268c84b0056b63ac185893fbbaf0", "sha256": "dcdce16908c17c3e71966b1857da72633122043003dc39aa46f75dfaa96c1c82" }, "downloads": -1, "filename": "gakp_pylib-0.2.8-py3-none-any.whl", "has_sig": false, "md5_digest": "469c268c84b0056b63ac185893fbbaf0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18237, "upload_time": "2016-08-13T20:05:07", "url": "https://files.pythonhosted.org/packages/9f/2b/67fcd0fe35d223318854a5c5dbe04192ee8e1f1ad414df9ee6de7d4065fb/gakp_pylib-0.2.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aac69253cf93710901aee895cf52b741", "sha256": "1894829b8c0b5befda5f8e30ea3467edc9ea01bab55c525710741659c3ba4832" }, "downloads": -1, "filename": "gakp-pylib-0.2.8.tar.gz", "has_sig": false, "md5_digest": "aac69253cf93710901aee895cf52b741", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11699, "upload_time": "2016-08-13T20:05:11", "url": "https://files.pythonhosted.org/packages/99/0d/12f5f2ae102af299cfd8fa4d68ca5d3092893b49ae29832ba7c7adc6b767/gakp-pylib-0.2.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "8ad1aac8e18f5e4a440e7d14ee268153", "sha256": "6b59cc64f02648703116992c592629a3c035be14e62f1de5e9f59ee016e10c9d" }, "downloads": -1, "filename": "gakp_pylib-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8ad1aac8e18f5e4a440e7d14ee268153", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18993, "upload_time": "2016-10-28T14:16:15", "url": "https://files.pythonhosted.org/packages/21/c3/499f684710b753032c8535d19d4b897168c14635e9873b7e28f2e2254752/gakp_pylib-0.8.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "632db010d57c4d4b776c0ac173367067", "sha256": "a6f21e2e97a17ab388bbe8c108afd9b0a5193364abf038a16b9633527bf349fc" }, "downloads": -1, "filename": "gakp-pylib-0.8.1.tar.gz", "has_sig": false, "md5_digest": "632db010d57c4d4b776c0ac173367067", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12029, "upload_time": "2016-10-28T14:16:28", "url": "https://files.pythonhosted.org/packages/d1/c9/c3c644fd941cb7a7fab246f4b604f1f3b74c338d775ad0d89273a76d03aa/gakp-pylib-0.8.1.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "732ace0401c99aaef8253e651ca553d7", "sha256": "ad76134ef7e9c214c74bd122196d29dd43a60bf79e0e9f6cbe9a4b1314eb3aa5" }, "downloads": -1, "filename": "gakp_pylib-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "732ace0401c99aaef8253e651ca553d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20507, "upload_time": "2016-11-10T06:41:08", "url": "https://files.pythonhosted.org/packages/05/5d/81cd2c7a6efd4d7c872f82c97c1d71320ac1116e8a16bedaa366fb373dd5/gakp_pylib-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6dc5ba9af6799cb6c1641961019539d8", "sha256": "10b5b89a25e438fe14409d20258ef1369f7ea02e8aa0949554e3de486c937309" }, "downloads": -1, "filename": "gakp-pylib-0.9.0.tar.gz", "has_sig": false, "md5_digest": "6dc5ba9af6799cb6c1641961019539d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12947, "upload_time": "2016-11-10T06:43:42", "url": "https://files.pythonhosted.org/packages/e1/b5/e2621bc3df7ec6953c8d6b9ce6c0669dcf8fd26161753b5710d2717c04f0/gakp-pylib-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "e651cc221ea4174d66c6d94cdb684ffd", "sha256": "5a6f5742a63888e4c7033da25c4438c714d50d78ec337c6135b413643cce1c81" }, "downloads": -1, "filename": "gakp_pylib-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e651cc221ea4174d66c6d94cdb684ffd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20498, "upload_time": "2016-11-10T06:44:19", "url": "https://files.pythonhosted.org/packages/0e/a7/ebfe23504e79884eefe13e5d545298d720e958406e1028727459d1926242/gakp_pylib-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dbc1faadd32cd206f0fbbab198a65bb", "sha256": "ea6154495dce307d640ca0f99f40b61e8c1a1ccdf2bb7da1e8bcc4e9a36e0393" }, "downloads": -1, "filename": "gakp-pylib-0.9.1.tar.gz", "has_sig": false, "md5_digest": "2dbc1faadd32cd206f0fbbab198a65bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12949, "upload_time": "2016-11-10T06:44:26", "url": "https://files.pythonhosted.org/packages/a4/d2/4719d01557651bdf557eacc153444fabd5df377a6209212561962847ae68/gakp-pylib-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "159e0638d613f0f563fbd2c9358bad07", "sha256": "d747a5ea2aad0edd2146245bc69832634657580b0e00f5b39fb0c6855e644cdc" }, "downloads": -1, "filename": "gakp_pylib-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "159e0638d613f0f563fbd2c9358bad07", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47229, "upload_time": "2016-12-02T20:54:24", "url": "https://files.pythonhosted.org/packages/11/ca/78fbfd141b92dce0e1950b957b7f62a19b778264008943a38e67afe710ef/gakp_pylib-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "748a39ff22fa5185dfa4f1c5cfb15817", "sha256": "ba1c79679a3ca4f7235d977b31c95cfa60e98f2226cc45ae3d467439291ede4e" }, "downloads": -1, "filename": "gakp-pylib-0.9.2.tar.gz", "has_sig": false, "md5_digest": "748a39ff22fa5185dfa4f1c5cfb15817", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14477, "upload_time": "2016-12-02T20:54:29", "url": "https://files.pythonhosted.org/packages/7b/82/e3928c055e8120a06d53f176f090ffc7364223b30647cd803e0189a1250e/gakp-pylib-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "68870cdcb6ebce5003627108705093c5", "sha256": "b3a603f8f782eb0fe6fc5976b79b0e75e8fb59eb2621f70bff1d14063366295f" }, "downloads": -1, "filename": "gakp_pylib-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68870cdcb6ebce5003627108705093c5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47468, "upload_time": "2016-12-07T00:09:46", "url": "https://files.pythonhosted.org/packages/ae/b2/30e786c66b85fee9922e3ad5f5c6a2c623e11d987961e04f27bc3b2d2817/gakp_pylib-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7f7a4970d892f33c4f1e9b183d6266c", "sha256": "dfac5286e2f7b3ef87ab01df182d9249239857c96953a9cae68ca1b05af6ed5d" }, "downloads": -1, "filename": "gakp-pylib-0.9.3.tar.gz", "has_sig": false, "md5_digest": "c7f7a4970d892f33c4f1e9b183d6266c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14598, "upload_time": "2016-12-07T00:09:49", "url": "https://files.pythonhosted.org/packages/14/aa/24c1924d75083e52085b7f5158cd0005ef88cac1056a496998cfb41d9550/gakp-pylib-0.9.3.tar.gz" } ], "2016.8.13": [] }, "urls": [] }