Giter Club home page Giter Club logo

apapi's Introduction

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:

>> > 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. Check examples or tests for more examples and hints about usage.

Installing Anaplan Python API and Supported Versions

APAPI is available on PyPI:

$ python -m pip install apapi

APAPI supports Python 3.8+.

More Info

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 PyPI - License Code style: black Imports: isort

apapi's People

Contributors

dlzaan avatar lulu-bertin avatar

Stargazers

 avatar

Watchers

 avatar

apapi's Issues

Add Command Line Interface

  • utilize already built parts in main.py, recheck and enhance
  • ensure that compatibility with Anaplan Connect is applied wherever possible
    • arguments and parsing
    • standard and debug/error output
    • functionalities
      • DB connectivity (JDBC/pyodbc)?
      • Java Keystore?
      • Proxies
  • allow for ID “guessing” by name, but recommend switching to IDs

add Python3.8 support

We want to use Anaplan API on constrained environments like Composer that only provision Airflow images shipped with Python 3.8

PR Lulu-Bertin:feat/add_support_for_py38 fbc8383

Enhance Logging functionality

  • Add logging to all important steps
  • Ensure that Logging uses correct levels and consistent communicates
  • Document exceptions and warnings

Add Graphical User Interface

  • Same functionalities as CLI, but end-user friendly
  • Ability to generate/save and load workflow as script (Does it mean it ONLY needs to generate CLI scripts?)
    • Ensure cross-platform availability

Add more examples and documentation

  • Generic examples for common problems
  • Structure analyzer/Optimization guide
    • Should help developers follow Best Practices, PLANUAL and reduce size/complexity
    • Output to popular format (XML/JSON)
  • Model map creator
    • Should help all users (even non-technical) to understand model connections and workflows/processes
    • Output to popular format (UML-ish/XML/JSON)
    • Ability to print as PNG/SVG
  • Auditing, managing and monitoring users actions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.