ProPyCore


NameProPyCore JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/rogers-obrien-rad/ProPyCore
SummaryInteract with Procore through Python for data connection applications
upload_time2024-10-24 20:04:08
maintainerNone
docs_urlNone
authorHagen E. Fritz
requires_python>=3.6
licenseNone
keywords procore api python sdk
VCS
bugtrack_url
requirements requests requests fuzzywuzzy python-Levenshtein
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![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/97/17/fa1c9dfe01de458987b8aa97dc4caf4d1ef4ab6c59d055080aa59dfd2482/ProPyCore-0.1.2.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.2",
    "project_urls": {
        "Homepage": "https://github.com/rogers-obrien-rad/ProPyCore"
    },
    "split_keywords": [
        "procore",
        " api",
        " python",
        " sdk"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22f452491e0be63f943e2db1c210717d25983e6c174872fba5d812bfb1753baa",
                "md5": "dc71d9572395f1907423bf25af8811b5",
                "sha256": "5f3474e8c975a455b851a61b9d2b2b377ba049961540c456e610d16761f7a2f2"
            },
            "downloads": -1,
            "filename": "ProPyCore-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dc71d9572395f1907423bf25af8811b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 54220,
            "upload_time": "2024-10-24T20:04:05",
            "upload_time_iso_8601": "2024-10-24T20:04:05.963885Z",
            "url": "https://files.pythonhosted.org/packages/22/f4/52491e0be63f943e2db1c210717d25983e6c174872fba5d812bfb1753baa/ProPyCore-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9717fa1c9dfe01de458987b8aa97dc4caf4d1ef4ab6c59d055080aa59dfd2482",
                "md5": "624a879702782e1f0299a5131cf4c8d9",
                "sha256": "e9461199276fb9c04637dd05bc987d7a8714ee495dbd93d6f44d7680e50a20f1"
            },
            "downloads": -1,
            "filename": "ProPyCore-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "624a879702782e1f0299a5131cf4c8d9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 23281,
            "upload_time": "2024-10-24T20:04:08",
            "upload_time_iso_8601": "2024-10-24T20:04:08.686802Z",
            "url": "https://files.pythonhosted.org/packages/97/17/fa1c9dfe01de458987b8aa97dc4caf4d1ef4ab6c59d055080aa59dfd2482/ProPyCore-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-24 20:04:08",
    "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"
}
        
Elapsed time: 0.37790s