# APAPI
**APAPI** is an unofficial library that allows you to connect to Anaplan APIs using
Python. Currently, you can authenticate using either Basic Authentication
(email & password), or OAuth2 (client_id & refresh_token, both non-rotatable and
rotatable) - Cert based authentication is on the roadmap.
Use Bulk, Transactional, ALM and Audit endpoints, with more coming soon!
As an abstract example, here we export some CSV and import it back to Anaplan:
```python
>> > import apapi
>> > with apapi.BasicAuth(f"{email}:{password}") as authentication:
>> > my_connection = apapi.BulkConnection(authentication)
>> > my_connection.run_export(model_id, export_id)
>> > data = my_connection.get_file(model_id, export_id)
>> > print(data.decode())
Versions, Data, Text
Actual, 1, test
Budget, 2.5, ąćęłńśżź
Forecast, -3,😂
>> > my_connection.put_file(model_id, file_id, data)
>> > my_connection.run_import(model_id, import_id)
```
Full documentation can be found [here](https://dlzaan.github.io/apapi/apapi.html).
Check [examples](https://github.com/DLZaan/apapi/tree/master/examples)
or [tests](https://github.com/DLZaan/apapi/tree/master/tests)
for more examples and hints about usage.
## Installing Anaplan Python API and Supported Versions
APAPI is available on [PyPI](https://pypi.org/project/apapi/):
```console
$ python -m pip install apapi
```
APAPI supports Python 3.9+.
## More Info
- [Official Anaplan APIs Postman Collection](https://www.postman.com/apiplan/workspace/official-anaplan-collection/overview)
- [Official documentation of Anaplan APIs](https://help.anaplan.com/da432e9b-24dd-4884-a70e-a3e409201e5c-Anaplan-API)
- [Official documentation of Anaplan Connect V4 (Java)](https://anaplanenablement.s3.amazonaws.com/Community/Anapedia/Anaplan-Connector-Informatica-V.4.2.1.pdf)
- [Official Anaplan Connect repository](https://github.com/anaplaninc/anaplan-java-client)
## How to Contribute
Contributions are welcome, even if you can't code it - in such case, please submit
an issue if you need any additional feature (preferably in the form of User Story,
like *"As {who} I need {what} because {why}"*).
If you encounter any bugs, please report the problem with a description and error log.
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/apapi)
[![PyPI - License](https://img.shields.io/pypi/l/apapi)](https://github.com/DLZaan/apapi/blob/master/LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
Raw data
{
"_id": null,
"home_page": "https://github.com/DLZaan/apapi",
"name": "apapi",
"maintainer": "Milosz Kierepka",
"docs_url": null,
"requires_python": "~=3.9",
"maintainer_email": "milosz.kierepka+work@gmail.com",
"keywords": "anaplan anaplanapi anaplanconnector client",
"author": "Milosz Kierepka",
"author_email": "milosz.kierepka+work@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/2f/ff/aced63e234a48e4bc0a7dff4eddad9d9f094508c75d296f284858f6fd0d5/apapi-0.5.0.tar.gz",
"platform": "any",
"description": "\r\n# APAPI\r\n\r\n**APAPI** is an unofficial library that allows you to connect to Anaplan APIs using\r\nPython. Currently, you can authenticate using either Basic Authentication\r\n(email & password), or OAuth2 (client_id & refresh_token, both non-rotatable and \r\nrotatable) - Cert based authentication is on the roadmap.\r\nUse Bulk, Transactional, ALM and Audit endpoints, with more coming soon!\r\n\r\nAs an abstract example, here we export some CSV and import it back to Anaplan:\r\n\r\n```python\r\n>> > import apapi\r\n>> > with apapi.BasicAuth(f\"{email}:{password}\") as authentication:\r\n >> > my_connection = apapi.BulkConnection(authentication)\r\n>> > my_connection.run_export(model_id, export_id)\r\n>> > data = my_connection.get_file(model_id, export_id)\r\n>> > print(data.decode())\r\nVersions, Data, Text\r\nActual, 1, test\r\nBudget, 2.5, \u0105\u0107\u0119\u0142\u0144\u015b\u017c\u017a\r\nForecast, -3,\ud83d\ude02\r\n>> > my_connection.put_file(model_id, file_id, data)\r\n>> > my_connection.run_import(model_id, import_id)\r\n```\r\nFull documentation can be found [here](https://dlzaan.github.io/apapi/apapi.html).\r\nCheck [examples](https://github.com/DLZaan/apapi/tree/master/examples)\r\nor [tests](https://github.com/DLZaan/apapi/tree/master/tests)\r\nfor more examples and hints about usage.\r\n\r\n## Installing Anaplan Python API and Supported Versions\r\n\r\nAPAPI is available on [PyPI](https://pypi.org/project/apapi/):\r\n```console\r\n$ python -m pip install apapi\r\n```\r\nAPAPI supports Python 3.9+.\r\n\r\n## More Info\r\n- [Official Anaplan APIs Postman Collection](https://www.postman.com/apiplan/workspace/official-anaplan-collection/overview)\r\n- [Official documentation of Anaplan APIs](https://help.anaplan.com/da432e9b-24dd-4884-a70e-a3e409201e5c-Anaplan-API)\r\n- [Official documentation of Anaplan Connect V4 (Java)](https://anaplanenablement.s3.amazonaws.com/Community/Anapedia/Anaplan-Connector-Informatica-V.4.2.1.pdf)\r\n- [Official Anaplan Connect repository](https://github.com/anaplaninc/anaplan-java-client)\r\n\r\n## How to Contribute\r\n\r\nContributions are welcome, even if you can't code it - in such case, please submit \r\nan issue if you need any additional feature (preferably in the form of User Story, \r\nlike *\"As {who} I need {what} because {why}\"*).\r\nIf you encounter any bugs, please report the problem with a description and error log.\r\n\r\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/apapi)\r\n[![PyPI - License](https://img.shields.io/pypi/l/apapi)](https://github.com/DLZaan/apapi/blob/master/LICENSE)\r\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\r\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\r\n\r\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Unofficial Anaplan API Python client library",
"version": "0.5.0",
"project_urls": {
"Changelog": "https://pip.pypa.io/en/stable/news/",
"Documentation": "https://dlzaan.github.io/apapi/apapi.html",
"Homepage": "https://github.com/DLZaan/apapi",
"Source": "https://github.com/DLZaan/apapi"
},
"split_keywords": [
"anaplan",
"anaplanapi",
"anaplanconnector",
"client"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2ab6699916a00ee5b11e4d6012018392425fc98577b099155bc2411eea91d95b",
"md5": "48669cbfbb88b97e9653f649216c5d16",
"sha256": "fab2e8230630a387ac9759b6c8fa3ea5ee64ac77eee665a703ed3257295857e9"
},
"downloads": -1,
"filename": "apapi-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "48669cbfbb88b97e9653f649216c5d16",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.9",
"size": 23184,
"upload_time": "2023-06-07T07:33:51",
"upload_time_iso_8601": "2023-06-07T07:33:51.067132Z",
"url": "https://files.pythonhosted.org/packages/2a/b6/699916a00ee5b11e4d6012018392425fc98577b099155bc2411eea91d95b/apapi-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2fffaced63e234a48e4bc0a7dff4eddad9d9f094508c75d296f284858f6fd0d5",
"md5": "b9326f3e807365520dac939959d6b89b",
"sha256": "936de7c4449eaed63ac8edd20032314bfee2b572b3fc0a15fe14a6e0f9e955dd"
},
"downloads": -1,
"filename": "apapi-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "b9326f3e807365520dac939959d6b89b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.9",
"size": 21498,
"upload_time": "2023-06-07T07:33:52",
"upload_time_iso_8601": "2023-06-07T07:33:52.940483Z",
"url": "https://files.pythonhosted.org/packages/2f/ff/aced63e234a48e4bc0a7dff4eddad9d9f094508c75d296f284858f6fd0d5/apapi-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-07 07:33:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DLZaan",
"github_project": "apapi",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "requests",
"specs": [
[
"~=",
"2.28"
]
]
}
],
"lcname": "apapi"
}