semvec/pypi-packages huggingface dataset:
rehttps 2.32.3
Python HTTP for Humans.
License: Apache-2.0
Requires Python: >=3.8

# Requests

**Requests** is a simple, yet elegant, HTTP library.

```python
>>> import requests
>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
'{"authenticated": true, ...'
>>> r.json()
{'authenticated': True, ...}
```

Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data — but nowadays, just use the `json` method!

Requests is one of the most downloaded Python packages today, pulling in around `30M downloads / week`— according to GitHub, Requests is currently [depended upon](https://github.com/psf/requests/network/dependents?package_id=UGFja2FnZS01NzA4OTExNg%3D%3D) by `1,000,000+` repositories. You may certainly put your trust in this code.

[![Downloads](https://static.pepy.tech/badge/requests/month)](https://pepy.tech/project/requests)
[![Supported Versions](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests)
[![Contributors](https://img.shields.io/github/contributors/psf/requests.svg)](https://github.com/psf/requests/graphs/contributors)

## Installing Requests and Supported Versions

Requests is available on PyPI:

```console
$ python -m pip install requests
```

Requests officially supports Python 3.8+.

## Supported Features & Best–Practices

Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today.

- Keep-Alive & Connection Pooling
- International Domains and URLs
- Sessions with Cookie Persistence
- Browser-style TLS/SSL Verification
- Basic & Digest Authentication
- Familiar `dict`–like Cookies
- Automatic Content Decompression and Decoding
- Multi-part File Uploads
- SOCKS Proxy Support
- Connection Timeouts
- Streaming Downloads
- Automatic honoring of `.netrc`
- Chunked HTTP Requests

## API Reference and User Guide available on [Read the Docs](https://requests.readthedocs.io)

[![Read the Docs](https://raw.githubusercontent.com/psf/requests/main/ext/ss.png)](https://requests.readthedocs.io)

## Cloning the repository

When cloning the Requests repository, you may need to add the `-c
fetch.fsck.badTimezone=ignore` flag to avoid an error about a bad commit timestamp (see
[this issue](https://github.com/psf/requests/issues/2690) for more background):

```shell
git clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git
```

You can also apply this setting to your global Git config:

```shell
git config --global fetch.fsck.badTimezone ignore
```

---

[![Kenneth Reitz](https://raw.githubusercontent.com/psf/requests/main/ext/kr.png)](https://kennethreitz.org) [![Python Software Foundation](https://raw.githubusercontent.com/psf/requests/main/ext/psf.png)](https://www.python.org/psf)
crouton-client 0.1.6
A client for Swarmauri's crouton.
License: Apache-2.0
Requires Python: <4.0,>=3.10

# Swarmauri's CroutonClient

`CroutonClient` is a Python library for streamlined REST API interactions, supporting both **synchronous** and **asynchronous** operations for CRUD tasks.

---

### **Initialization**
```python
from crouton_client import CroutonClient

client = CroutonClient(API_ROOT="https://api.example.com", ACCESS_STRING="your-token")
```

---

### **Common Operations**

#### **GET**
- **Synchronous**:
  ```python
  response = client.get(resource="items", item_id="123", filters={"status": "active"})
  ```
- **Asynchronous**:
  ```python
  response = await client.aget(resource="items", item_id="123")
  ```

#### **POST**
- **Synchronous**:
  ```python
  response = client.post(resource="items", data_obj={"name": "Item", "price": 10.0})
  ```
- **Asynchronous**:
  ```python
  response = await client.apost(resource="items", data_obj={"name": "Item", "price": 10.0})
  ```

#### **PUT**
- **Synchronous**:
  ```python
  response = client.put(resource="items", data_obj={"price": 15.0}, item_id="123")
  ```
- **Asynchronous**:
  ```python
  response = await client.aput(resource="items", data_obj={"price": 15.0}, item_id="123")
  ```

#### **DELETE**
- **Synchronous**:
  ```python
  response = client.delete(resource="items", item_id="123")
  ```
- **Asynchronous**:
  ```python
  response = await client.adelete(resource="items", item_id="123")
  ```

---

### **Features**
1. **Synchronous & Asynchronous**: Methods available for GET, POST, PUT, DELETE.
2. **Authentication**: Pass `ACCESS_STRING` for token-based requests.
3. **Auto-Generated IDs**: `post` and `apost` auto-generate `id` fields if not provided.
4. **Logging**: Logs all requests and responses for debugging.

---

### **Error Handling**
Raises `ValueError` for failed requests:
```python
try:
    client.get(resource="invalid")
except ValueError as e:
    print(f"Error: {e}")
```

---

### **Summary Table**

| Operation | Synchronous         | Asynchronous       |
|-----------|----------------------|--------------------|
| **GET**   | `get()`              | `aget()`           |
| **POST**  | `post()`             | `apost()`          |
| **PUT**   | `put()`              | `aput()`           |
| **DELETE**| `delete()`           | `adelete()`        |

`CroutonClient` simplifies REST API interactions, allowing you to focus on application logic instead of repetitive request handling.