Wrapper for Workday Adaptive Planning's API
Project description
wdadaptivepy
A python wrapper for the Workday Adaptive Planning API, providing an easy-to-use library to create, read, update, and delete data, metadata, and other information within Adaptive.
Overview
Workday Adaptive Planning is a cloud-based planning, reporting, and analysis solution. This library simplifies interacting with the Adaptive Planning API via a Pythonic interface.
Features
- Functionality
- Retrieve information from Adaptive
- Support for metadata
- Account
- Attributes
- Currencies
- Dimensions
- Level
- Time
- Version
- Support for data
- Generic Data
- Modeled Sheet Data
- Support for users
- Users
- Groups
- Support for security
- Permission Sets
- Support for metadata
- Support for data formats
- Import/export data using JSON
- Import/export data using XML
- Export data using CSV
- Helper functions
- Get base/leaf members
- Get parent/branch members
- Get parent of a member
- Get children of a member
- Get ancestors of a member
- Get descendents of a member
- Retrieve information from Adaptive
Planned Features
- Functionality
- Send information to Adaptive
- Support for metadata
- Account
- Attributes
- Currencies
- Dimensions
- Level
- Time
- Version
- Support for data
- Generic Data
- Modeled Sheet Data
- Support for users
- Users
- Groups
- Support for security
- Permission Sets
- Support for metadata
- Integrations
- Tasks
- Support for data formats
- Import/export data using XLSX
- Import data using CSV
- Import/export data using TXT
- Helper functions
- Get raw API requests
- Get raw API responses
- Logging
- Workday Authentication Token
- Send information to Adaptive
Getting Started
Pre-requisites
- Python 3.10+
- Valid credentials (username/password) for an active Workday Adaptive
Planning account
- wdadaptivepy will be limited to the access granted to the Adaptive user (ie: wdadaptivepy will respect Adaptive's user security)
Installation
- Run
pip install wdadaptivepy
Example Usage
Retrieving Levels
from wdadaptivepy import AdaptiveConnection
adaptive = AdaptiveConnection(username="YOUR_ADAPTIVE@USER.NAME", password="Y0urP@$$w0rd!")
levels = adaptive.levels.get_all()
Retrieving Data
from wdadaptivepy import AdaptiveConnection
adaptive = AdaptiveConnection(username="YOUR_ADAPTIVE@USER.NAME", password="Y0urP@$$w0rd!")
query = (
adaptive.data.query_data()
.add_account_filter(accounts="Revenue")
.add_level_filter(levels="Total Company")
.set_version_filter(version="Default Version")
.set_time_filter(start_period="01/2023", end_period="01/2023")
)
data = query.get_data()
Documentatation
-
wdadaptivepy
-
Workday Adaptive Planning
Issues
Please submit an issue on the GitHub repository for any bugs or issues that are found. For any security vulnerabilities, please email labs@revelwood.com with a summary of the vulnerability.
Contribute
The preferred tools for developing wdadaptivepy are listed below. Other tools can be used, but the guide will assume the stack below is used.
- Github (code repository)
- git (version control system)
- uv (Python manager, Python builder)
- Visual Studio Code (editor)
- ruff (linter, formatter)
- pyright (static type checker)
- pytest (testing)
- mkdocs-material (documentation)
Develop
- Fork the wdadaptivepy repo
- Git clone the forked repo onto your device (eg:
git clone git@github.com:YOUR_GITHUB_ACCOUNT/YOUR_FORKED_REPO_NAME.git) - Within the cloned directory, run
uv sync --no-install-projectto create a Python virtual environment and install all dependencies - Complete any modifications to the source code
- Ensure all modified code is covered by tests via
uv run pytest --cov - Ensure all tests pass
- Commit all changes (eg:
git commit -m "Added functionality for recent Adaptive release") - Create pull request for committed changes
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wdadaptivepy-0.2.1.tar.gz.
File metadata
- Download URL: wdadaptivepy-0.2.1.tar.gz
- Upload date:
- Size: 61.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2dd726fca476e8a144e05022382ee6d5efe8848ec7a63218c80b122fc441c43
|
|
| MD5 |
e8cc7b7cecc9506c3f3c54c4c948509a
|
|
| BLAKE2b-256 |
1059e23b9840aeb5314dd7296734bc0481b6e67375ef887bd42f53ad08bc46e9
|
File details
Details for the file wdadaptivepy-0.2.1-py3-none-any.whl.
File metadata
- Download URL: wdadaptivepy-0.2.1-py3-none-any.whl
- Upload date:
- Size: 67.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f917ff57c46684e10ab8c4b7af12dc1e65d032f75b3702bfade1c347e08b2834
|
|
| MD5 |
469e0a93d237762e8a27ef564a6a75b9
|
|
| BLAKE2b-256 |
bfb67dccf7fd7d7daecfed393814fc7a0271aa080ebde0e6db7f2c2ed1bff07c
|