semvec/pypi-packages huggingface dataset:
wdsdk-py 0.0.1
A Python client library for using Workday Reports-as-a-Service APIs.
Requires Python: >=3.9

# Workday RaaS Client

A Python client library for interacting with Workday Reports-as-a-Service APIs.

## Install


## Requirements

1. [A workday API client](https://doc.workday.com/reader/J1YvI9CYZUWl1U7_PSHyHA/qAugF2pRAGtECVLHKdMO_A).  These are used to initialize the RaaS client:
```py
IsuCredentials (
  client_id: str,
  client_secret: str,
  refresh_token: str,
)
```

2. A Workday REST API endpoint for a Workday RaaS report.

## Usage

The library provides two utility classes: `RaasClient` and `WorkdayRequest`.  These work together to build reusable requests.

```py
# Store the credentials as a JS object
credentials = IsuCredentials(
    client_id="myClientId",
    client_secret="myClientSecret",
    refresh_token="myRefreshToken",
)
authEndpoint = "authEndpoint"

# Initialize a client using the credentials and an auth endpoint
client = new RaasClient(credentials, authEndpoint)

# Build requests
raas_endpoint_1 = "https://myRaasEndpoint.com"
raas_endpoint_2
req_1 = client
    .request(raas_endpoint_1)
    .param("myParam", "myParamVal")
    .param("multiValParam", ["val1", "val2", "val3")
req2 = client
    .request(raas_endpoint_2)
    .param("myPrompt", "myPromptVal")

# Send the requests in different formats
json_res = await req_1.json()
xml_res = await req_1.xml()
csv = await req_2.csv()
```
aioadaptive 0.1.4
Add your description here
Requires Python: >=3.9
Keywords: adaptive, aiohttp, asyncio, python

# Aio Adaptive

The goal is to enable an http adaptive rate limit library for python.
Project is based off of [Netflix Concurrency](https://github.com/Netflix/concurrency-limits), but for python!
This library is currently only useful in asyncio setup.
The initial setup allows for someone to configure the Vegas adaptive rate limit.

The library will automatically limit the outbound requests wrapped in `client.use()` context manager.
Within that manager it utilizes an async semaphore to limit the amount of concurrent calls for this client.

See the examples below for how to leverage it.

## Install

You can install `aioadaptive` using pip:

```bash
pip install aioadaptive
```

Or, if you use [uv](https://github.com/astral-sh/uv):

```bash
uv add aioadaptive
```

## How to Use

### Client Setup

```python
from aioadaptive import AdaptiveClient, AdaptiveClientConfig

# Default configuration is to use `vegas` algorithm
client = AdaptiveClient()
# Same as doing
client = AdaptiveClient(AdaptiveClientConfig(algorithm="vegas"))
# Which is also the same as doing
client = AdaptiveClient(AdaptiveClientConfig(algorithm="vegas"))

async def main():
    async with client.use():
        # Do something with adaptive rate limiting client
        pass

asyncio.run(main())
```

### With aiohttp (async)

```python
import aiohttp
from aioadaptive import AdaptiveClient
import asyncio

client = AdaptiveClient()

async def main():
   async with aiohttp.ClientSession() as session:
      async with client.use():
         async with session.get("https://example.com/") as resp:
            data = await resp.json()
            print(data)

asyncio.run(main())
```

### With httpx (async)

```python
import httpx
from aioadaptive import AdaptiveClient
import asyncio

client = AdaptiveClient()

async def main():
   async with httpx.AsyncClient() as session:
      async with client.use():
         resp = await session.get("https://example.com/")
         print(resp.json())

asyncio.run(main())
```

### With requests (sync, not recommended for adaptive concurrency)

> **Note:** `requests` is synchronous and blocking, so you won't get the full benefit of adaptive concurrency and is therefore not supported

## Developer Setup

1. Navigate to the Server Directory

   ```bash
   cd aioadaptive
   ```

2. Install Server Requirements

   ```bash
   uv venv .venv
   source .venv/bin/activate
   uv sync
   ```

## Development Testing

   To run the full test suite (includes integration tests which can be slower)

   ```bash
   pytest
   ```

   Exclude integration tests

   ```bash
   pytest -m "not integration"
   ```