semvec/pypi-packages huggingface dataset:
s3-file-downloader 0.1.0
Simple library to list and download files from Amazon S3.
License: MIT
Requires Python: >=3.8
Keywords: aws, s3, downloader

# s3-file-downloader

A simple Python library to **list and download files from Amazon S3**.  
Supports both **public (unsigned)** and **private (AWS credentials)** buckets.

---

##  Features
- List objects in an S3 bucket under a prefix
- Download:
  - One file
  - Many files
  - All files under a prefix
- Safe local filenames (handles weird S3 keys)
- Works with **public access** or with **your AWS credentials**

---

## Installation

From PyPI (after publishing):

```bash
pip install s3-file-downloader
````

For development (local install):

```bash
git clone https://github.com/<your-username>/s3-file-downloader.git
cd s3-file-downloader
pip install -e .
```

---

##  Usage Example

```python
from s3_file_downloader import make_s3_client, S3Downloader

# Public access (no AWS credentials needed)
s3 = make_s3_client(region="us-east-1", unsigned=True)
dl = S3Downloader(s3)

bucket = "aws-bigdata-blog"
prefix = "artifacts/flink-refarch/data/nyc-tlc-trips.snz/"

# 1) List objects
keys = dl.list_objects(bucket=bucket, prefix=prefix, limit=5)
print("Found keys:", keys)

# 2) Download one file
if keys:
    dl.download_one(bucket, keys[0], "./downloads_one")

# 3) Download many files
dl.download_many(bucket, keys, "./downloads_many")

# 4) Download all files under prefix
dl.download_all_by_prefix(bucket, prefix, "./downloads_all", limit=None)
```

---

##  Requirements

* Python 3.8+
* boto3 (`pip install boto3`)
* AWS credentials if accessing private buckets

  * Run `aws configure` or set environment variables:

    * `AWS_ACCESS_KEY_ID`
    * `AWS_SECRET_ACCESS_KEY`
    * `AWS_SESSION_TOKEN` (if required)

---

##  Authors

* **Your Name** ([@Divya-Idupulapati](https://github.com/Divya-Idupulapati))
* **Friend’s Name** ([@PavanMarella10](https://github.com/PavanMarella10))

---

##  License

MIT License — free to use, copy, modify, and share.

```
fastapi-testrunner 0.1.2
Automated testing utility for FastAPI applications
License: MIT
Requires Python: >=3.8
Keywords: fastapi testing automation openapi starlette test testrunner quciktest fastapi-testrunner test-paths

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)

# Fastapi-Testrunner

`fastapi_testrunner` is an automated testing utility for **FastAPI applications**.  
It extracts the `openapi.json` schema from your running FastAPI app, automatically generates request data, and tests routes without requiring Postman or manual setup.

All test results are displayed in the terminal and stored in a `DeB_FastAPI_Test_Logs` folder with date & time logs — making it easy for developers to validate endpoints quickly.

---

## ✨ Features
- 🔗 Fetches `openapi.json` from your FastAPI `base_url`.
- ⚡ Automatically generates request payloads for testing.
- 🧩 Supports:
  - Custom input for specific routes
  - Adding headers
  - Including or excluding routes
- 📝 Saves test results to logs (`DeB_FastAPI_Test_Logs`).
- 🚀 No need for Postman or curl — just run and test all routes in one go.

---

## 🔢 Supported Data Types
- str
- int
- float
- bool
- dict
- list
- enum
- TypedDict
- date
- email
- list[...] → Lists of any of the above types
- 👉 This means your routes with parameters like List[int], List[str], or List[dict] are also supported.

---

## 📦 Installation

```bash
pip install fastapi_testrunner

```

---

## 🧑‍💻Examples

### ✅ Test All Routes Automatically
```python
from fastapi_testrunner import TestFastAPIRoutes

tester = TestFastAPIRoutes()
tester.start_test()

```

## On Class TestFastAPIRoutes
```python
TestFastAPIRoutes(
    custom_inputs: CustomInputFormat = {},
    base_url: str = 'http://127.0.0.1:8000/',
    headers: dict = None,
    routes_tocheck: list = [],
    routes_touncheck: list = []
)
```

## On Class CustomInputsFormat
```python
CustomInputFormat(TypedDict):
    method:str
    path:str
    isfor_params:bool
    isfor_json:bool
    data:dict
    headers:dict
```

## Example with Custom Input
```python
from fastapi_testrunner import TestFastAPIRoutes, CustomInputFormat

custom_input = CustomInputFormat(
        method="POST",
        path="/items",
        isfor_params=False,
        isfor_json=True,
        data={"name": "Laptop", "price": 999},
        headers={"Authorization": "Bearer TOKEN123"}
    )


tester = TestFastAPIRoutes(
    base_url="http://127.0.0.1:8000/",
    custom_input=custom_input,
    routes_touncheck=["/auth/login","/auth/otp"]
)

tester.start_test()
```