![Contributors](https://img.shields.io/github/contributors/rogers-obrien-rad/ProPyCore)
![Last Commit](https://img.shields.io/github/last-commit/rogers-obrien-rad/ProPyCore)
[![Test Suite](https://github.com/rogers-obrien-rad/ProPyCore/actions/workflows/tests.yml/badge.svg)](https://github.com/rogers-obrien-rad/ProPyCore/actions/workflows/tests.yml)
![ro_logo](https://github.com/rogers-obrien-rad/general-template/blob/main/images/ro_logo.png)
# ProPyCore
_A Python-based connection with Procore that doesn't require a user authentication_
This package accesses Procore's API through the _Client Credentials_ [OAuth 2.0 grant type](https://developers.procore.com/documentation/oauth-choose-grant-type) which is meant for _Data Connection Applications_ i.e. "userless access".
## Installation
You can install this package with:
```bash
pip install ProPyCore
```
## Examples
To get started, you need to create an instance of a `Procore` object from `propycore.procore`. To do so, you will need to access information from your Procore Data Connection App:
* **Client ID**: Accessible from your app at [Procore Developers](https://developers.procore.com/signin) - will vary between sandbox and production modes
* **Client Secret**: Accessible from your app at [Procore Developers](https://developers.procore.com/signin) - will vary between sandbox and production modes
* **Redirect URI**: For data connection apps, this value will be "urn:ietf:wg:oauth:2.0:oob"
* **OAuth URL**: Will be "https://sandbox.procore.com" for sandbox environments or "https://app.procore.com" for production
* **Base URL**: Will be "https://sandbox.procore.com" for sandbox environments or "https://app.procore.com" for production
Once you have these values, you will use them as parameters in the `Procore` object:
```python
connection = Procore(
client_id=os.getenv("CLIENT_ID"),
client_secret=os.getenv("CLIENT_SECRET"),
redirect_uri=os.getenv("REDIRECT_URI"),
oauth_url=os.getenv("OAUTH_URL"),
base_url=os.getenv("BASE_URL")
)
```
In this case, I have saved my App information as individual environment variables. For examples on how to access Procore information and create new object, see the [snippets](https://github.com/rogers-obrien-rad/ProPyCore/tree/main/snippets) folder for a rather exhaustive list.
# Resources
### Procore:
* **[Procore Developer Dcoumentation](https://developers.procore.com/documentation/introduction)**: Various articles concerning the setup and use of Procore's API
* **[REST API Reference](https://developers.procore.com/reference/rest/v1/docs/rest-api-overview)**: Endpoints, response samples, and limited code snippets showcasing the use of the API.
### GitHub Repositories
* **[Procore's Own Python Sample](https://github.com/procore/Procore-Sample-Python)**: Includes basic code to setup a Python Flash application but uses the other OAuth 2.0 grant type
* **[Python SDK for Procore](https://github.com/fylein/procore-sdk-py)**: Small SDK that includes basic code to work with Procore. Uses the other OAuth 2.0 grant type.
# License
This repository is licensed through the [MIT License](https://github.com/rogers-obrien-rad/ProPyCore/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": "https://github.com/rogers-obrien-rad/ProPyCore",
"name": "ProPyCore",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "procore, api, python, sdk",
"author": "Hagen E. Fritz",
"author_email": "hfritz@r-o.com",
"download_url": "https://files.pythonhosted.org/packages/a6/26/7724bb0be85332726d3a7430a9a6719d189c91a71e19418e849bd722a53d/propycore-0.1.4.tar.gz",
"platform": null,
"description": "![Contributors](https://img.shields.io/github/contributors/rogers-obrien-rad/ProPyCore)\r\n![Last Commit](https://img.shields.io/github/last-commit/rogers-obrien-rad/ProPyCore)\r\n[![Test Suite](https://github.com/rogers-obrien-rad/ProPyCore/actions/workflows/tests.yml/badge.svg)](https://github.com/rogers-obrien-rad/ProPyCore/actions/workflows/tests.yml)\r\n\r\n![ro_logo](https://github.com/rogers-obrien-rad/general-template/blob/main/images/ro_logo.png)\r\n\r\n# ProPyCore\r\n_A Python-based connection with Procore that doesn't require a user authentication_\r\n\r\nThis package accesses Procore's API through the _Client Credentials_ [OAuth 2.0 grant type](https://developers.procore.com/documentation/oauth-choose-grant-type) which is meant for _Data Connection Applications_ i.e. \"userless access\".\r\n\r\n## Installation\r\nYou can install this package with:\r\n\r\n```bash\r\npip install ProPyCore\r\n```\r\n\r\n## Examples\r\nTo get started, you need to create an instance of a `Procore` object from `propycore.procore`. To do so, you will need to access information from your Procore Data Connection App:\r\n* **Client ID**: Accessible from your app at [Procore Developers](https://developers.procore.com/signin) - will vary between sandbox and production modes\r\n* **Client Secret**: Accessible from your app at [Procore Developers](https://developers.procore.com/signin) - will vary between sandbox and production modes\r\n* **Redirect URI**: For data connection apps, this value will be \"urn:ietf:wg:oauth:2.0:oob\"\r\n* **OAuth URL**: Will be \"https://sandbox.procore.com\" for sandbox environments or \"https://app.procore.com\" for production\r\n* **Base URL**: Will be \"https://sandbox.procore.com\" for sandbox environments or \"https://app.procore.com\" for production\r\n\r\nOnce you have these values, you will use them as parameters in the `Procore` object:\r\n\r\n```python\r\nconnection = Procore(\r\n client_id=os.getenv(\"CLIENT_ID\"),\r\n client_secret=os.getenv(\"CLIENT_SECRET\"),\r\n redirect_uri=os.getenv(\"REDIRECT_URI\"),\r\n oauth_url=os.getenv(\"OAUTH_URL\"),\r\n base_url=os.getenv(\"BASE_URL\")\r\n)\r\n```\r\n\r\nIn this case, I have saved my App information as individual environment variables. For examples on how to access Procore information and create new object, see the [snippets](https://github.com/rogers-obrien-rad/ProPyCore/tree/main/snippets) folder for a rather exhaustive list. \r\n\r\n# Resources\r\n\r\n### Procore:\r\n* **[Procore Developer Dcoumentation](https://developers.procore.com/documentation/introduction)**: Various articles concerning the setup and use of Procore's API\r\n* **[REST API Reference](https://developers.procore.com/reference/rest/v1/docs/rest-api-overview)**: Endpoints, response samples, and limited code snippets showcasing the use of the API. \r\n\r\n### GitHub Repositories\r\n* **[Procore's Own Python Sample](https://github.com/procore/Procore-Sample-Python)**: Includes basic code to setup a Python Flash application but uses the other OAuth 2.0 grant type\r\n* **[Python SDK for Procore](https://github.com/fylein/procore-sdk-py)**: Small SDK that includes basic code to work with Procore. Uses the other OAuth 2.0 grant type. \r\n\r\n# License\r\nThis repository is licensed through the [MIT License](https://github.com/rogers-obrien-rad/ProPyCore/blob/main/LICENSE). \r\n",
"bugtrack_url": null,
"license": null,
"summary": "Interact with Procore through Python for data connection applications",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/rogers-obrien-rad/ProPyCore"
},
"split_keywords": [
"procore",
" api",
" python",
" sdk"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a71d00fec52d3f4db1308d324c0328a06d8b016c576ec7e1badb2faa1cc2548d",
"md5": "ca7a4a1a651edaa8db6b7e3581ce60d0",
"sha256": "c4e045668ad9f41559e18952c27f8b55bdadbf6b027900ce454a1ad26936dceb"
},
"downloads": -1,
"filename": "ProPyCore-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ca7a4a1a651edaa8db6b7e3581ce60d0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 54609,
"upload_time": "2024-11-21T22:59:27",
"upload_time_iso_8601": "2024-11-21T22:59:27.992912Z",
"url": "https://files.pythonhosted.org/packages/a7/1d/00fec52d3f4db1308d324c0328a06d8b016c576ec7e1badb2faa1cc2548d/ProPyCore-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a6267724bb0be85332726d3a7430a9a6719d189c91a71e19418e849bd722a53d",
"md5": "9707f1e1a132217af26d6055759e40f6",
"sha256": "e3a0dc7508bfbd8867c799ddccbab3aa043d7730272878bca609909afdbd2c44"
},
"downloads": -1,
"filename": "propycore-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "9707f1e1a132217af26d6055759e40f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 23804,
"upload_time": "2024-11-21T22:59:30",
"upload_time_iso_8601": "2024-11-21T22:59:30.866154Z",
"url": "https://files.pythonhosted.org/packages/a6/26/7724bb0be85332726d3a7430a9a6719d189c91a71e19418e849bd722a53d/propycore-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-21 22:59:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rogers-obrien-rad",
"github_project": "ProPyCore",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "requests",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "fuzzywuzzy",
"specs": []
},
{
"name": "python-Levenshtein",
"specs": []
}
],
"lcname": "propycore"
}