{ "info": { "author": "Stephan Chang", "author_email": "stephan.chang@flowef.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# PyHorn\n\nAn unofficial Python client to interact with Bullhorn's REST API.\nWe developed this client to facilitate the integration of FLOW's systems with Bullhorn, and decided to disclose the source for any other developers that may find it useful.\n\n## Installation\n\n`pip install pyhorn-flow`\n\n## Authentication\n\nAuthentication requires a simple JSON file containing the following auth-related data (provided by Bullhorn themselves):\n\n- username\n- password\n- client_id\n- client_secret\n\nOther fields are filled automatically and stored in `file_name` for better use of the authenticated session.\n\n```json\n{\n \"file_name\": \"auth.json\",\n \"client_id\": \"GUIDprovidedbybullhorn\",\n \"client_secret\": \"secretprovidedbybullhorn\",\n \"username\": \"apiuser\",\n \"password\": \"yourpasswordshouldgohere\"\n}\n```\n\n## Supported Functions\n\n- Ping\n- Search\n- Query\n- Entity\n - Create\n - Update\n - Delete\n- To-many\n - Create association\n - Delete association\n- Event\n - Subscription\n - Request\n - Retry\n - Get last request ID\n\n## Changelog\n\n### v1.1.0\n\n- Added functions to subscribe to Bullhorn events and read them\n\n### v1.0.0\n\n- Added safe request to re-authorize requests when 401 is returned from API\n- Added Entity creation, update and deletion\n- Added To-many association and dissociation\n- Added Search and Query functionalities\n- Added Ping functionality and automatic session renewal\n- Added authentication flow\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/flowef/pyhorn/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyhorn-flow", "package_url": "https://pypi.org/project/pyhorn-flow/", "platform": "", "project_url": "https://pypi.org/project/pyhorn-flow/", "project_urls": { "Homepage": "https://github.com/flowef/pyhorn/" }, "release_url": "https://pypi.org/project/pyhorn-flow/1.3.1/", "requires_dist": null, "requires_python": "", "summary": "An unofficial Bullhorn REST API client written in Python.", "version": "1.3.1", "yanked": false, "yanked_reason": null }, "last_serial": 6236939, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "86fae997fb21a219ad77b0da575fd829", "sha256": "e8fca4e29c2b63e70fd34f6ac093815f447ae09ddf23ed012305a047c48dd36d" }, "downloads": -1, "filename": "pyhorn_flow-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "86fae997fb21a219ad77b0da575fd829", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6996, "upload_time": "2019-08-09T20:30:20", "upload_time_iso_8601": "2019-08-09T20:30:20.502299Z", "url": "https://files.pythonhosted.org/packages/18/b1/11e59846c76b5e080c5f3f5dce0524ca29f4d394e5bdef15cc6ca1fce45f/pyhorn_flow-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fb4723149f55e559f301daf2e992c14a", "sha256": "38139d9f6ee9d654485f42e311e4c2bf68b34dd0080c8ea877538c7c640fd289" }, "downloads": -1, "filename": "pyhorn-flow-1.0.0.tar.gz", "has_sig": false, "md5_digest": "fb4723149f55e559f301daf2e992c14a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4861, "upload_time": "2019-08-09T20:30:22", "upload_time_iso_8601": "2019-08-09T20:30:22.800955Z", "url": "https://files.pythonhosted.org/packages/b6/a2/c6310c5f9681ff19f03916f4bc530983433ec36208ae5d7357b5d434b48a/pyhorn-flow-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "819f1a9a0c5039030b5aa72f8d6dc335", "sha256": "9acd91520acb6a5070b058744b90133c27ee6e4bfd5d1ecea14452bce9a8f9a4" }, "downloads": -1, "filename": "pyhorn_flow-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "819f1a9a0c5039030b5aa72f8d6dc335", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7272, "upload_time": "2019-09-30T15:27:55", "upload_time_iso_8601": "2019-09-30T15:27:55.970460Z", "url": "https://files.pythonhosted.org/packages/06/55/4ac59ac735ee749da3e1903e09092cd8b55e25f5342f14e6efe4728bd089/pyhorn_flow-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c2d54b1dd589ee110e02adb271bac370", "sha256": "d136541201b9ae916c84c6da17824ee352c46b1670dc8154225b60bac9cf8a70" }, "downloads": -1, "filename": "pyhorn-flow-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c2d54b1dd589ee110e02adb271bac370", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5131, "upload_time": "2019-09-30T15:27:57", "upload_time_iso_8601": "2019-09-30T15:27:57.191808Z", "url": "https://files.pythonhosted.org/packages/a8/54/8d8f049a509cee785c6bc5cc0c3c86ba85d067bf158d3027555f1ee71851/pyhorn-flow-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "36dff81a946078e08b743acc092b29a5", "sha256": "7a190fb7f3978cf1f3820fcd7138efa1ef8a6af0c46022769af036f070868d89" }, "downloads": -1, "filename": "pyhorn_flow-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "36dff81a946078e08b743acc092b29a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7455, "upload_time": "2019-10-30T16:42:07", "upload_time_iso_8601": "2019-10-30T16:42:07.474779Z", "url": "https://files.pythonhosted.org/packages/c8/ca/46493110528db257b828f5f94c27ac4bb8f129fdcc6cd1b5a3e4bbe1c535/pyhorn_flow-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "48f7406ef1e2aa4936119acff82e64dd", "sha256": "de566f9ff1fc3ef07f41a8b086cfa5d4a9afc4a5626930f1c5b83cdf45eb6e9e" }, "downloads": -1, "filename": "pyhorn-flow-1.2.0.tar.gz", "has_sig": false, "md5_digest": "48f7406ef1e2aa4936119acff82e64dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5335, "upload_time": "2019-10-30T16:42:08", "upload_time_iso_8601": "2019-10-30T16:42:08.572647Z", "url": "https://files.pythonhosted.org/packages/64/da/aef2061b3f278405bf47bf421bd39bd2fcef4960354ecb59cc4bbdd066c1/pyhorn-flow-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "c6efe459f79776a887de9c0bdf960832", "sha256": "47eb8bc83a7e588592c0cec371ddb1d2417fa14ba221a96fd79b3de0b70e3c98" }, "downloads": -1, "filename": "pyhorn_flow-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c6efe459f79776a887de9c0bdf960832", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7414, "upload_time": "2019-12-03T20:04:05", "upload_time_iso_8601": "2019-12-03T20:04:05.376576Z", "url": "https://files.pythonhosted.org/packages/5a/9c/673ee14743ad7378b076de37862043cbef7ac37c804f9a227b79f5c1940c/pyhorn_flow-1.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cbe9ae3fab962b49b571aa53599ad819", "sha256": "61401193b1a113c93f292a75cef98392abb250f8b0a604935811d6fd75a07fe3" }, "downloads": -1, "filename": "pyhorn-flow-1.3.1.tar.gz", "has_sig": false, "md5_digest": "cbe9ae3fab962b49b571aa53599ad819", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5293, "upload_time": "2019-12-03T20:04:06", "upload_time_iso_8601": "2019-12-03T20:04:06.579815Z", "url": "https://files.pythonhosted.org/packages/64/44/48fa6f6560582eed30655aaedd461d5d498211b97656021ba1004c4a313d/pyhorn-flow-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c6efe459f79776a887de9c0bdf960832", "sha256": "47eb8bc83a7e588592c0cec371ddb1d2417fa14ba221a96fd79b3de0b70e3c98" }, "downloads": -1, "filename": "pyhorn_flow-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c6efe459f79776a887de9c0bdf960832", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7414, "upload_time": "2019-12-03T20:04:05", "upload_time_iso_8601": "2019-12-03T20:04:05.376576Z", "url": "https://files.pythonhosted.org/packages/5a/9c/673ee14743ad7378b076de37862043cbef7ac37c804f9a227b79f5c1940c/pyhorn_flow-1.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cbe9ae3fab962b49b571aa53599ad819", "sha256": "61401193b1a113c93f292a75cef98392abb250f8b0a604935811d6fd75a07fe3" }, "downloads": -1, "filename": "pyhorn-flow-1.3.1.tar.gz", "has_sig": false, "md5_digest": "cbe9ae3fab962b49b571aa53599ad819", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5293, "upload_time": "2019-12-03T20:04:06", "upload_time_iso_8601": "2019-12-03T20:04:06.579815Z", "url": "https://files.pythonhosted.org/packages/64/44/48fa6f6560582eed30655aaedd461d5d498211b97656021ba1004c4a313d/pyhorn-flow-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }