Metadata-Version: 2.1
Name: aiml-py-common-utils
Version: 0.0.1b0
Author-email: c17hawke <sunny.c17hawke@gmail.com>
License: MIT
Project-URL: Bug Tracker, https://github.com/c17hawke/aiml-py-common-utils/issues
Project-URL: Documentation, https://c17hawke.github.io/aiml-py-common-utils/
Project-URL: Source, https://github.com/c17hawke/aiml-py-common-utils
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests==2.28.2
Requires-Dist: loguru==0.7.2
Requires-Dist: python-box==7.1.1
Requires-Dist: joblib==1.3.2
Provides-Extra: testing
Requires-Dist: pytest==7.4.4; extra == "testing"
Requires-Dist: pytest-mock==3.12.0; extra == "testing"
Requires-Dist: pytest-cov==4.1.0; extra == "testing"
Requires-Dist: tox==4.12.1; extra == "testing"
Requires-Dist: ruff==0.1.14; extra == "testing"
Requires-Dist: mypy==1.8.0; extra == "testing"

# AIML Python Common Utilities

> **Visit Documentation - [Click here](https://c17hawke.github.io/aiml-py-common-utils/)**

This repository provides a collection of utilities that are frequently used in various AIML applications.

## Current Version Features

The current version includes the following utilities:

### 1. YAML File Reader

This utility reads a YAML file and returns a ConfigBox type object. For instance, given a YAML file with the following content:

```yaml
# Scalars
string: "Hello, World"
integer: 25
floating_point: 3.14
boolean: true
null_value: null

# Sequences
sequence:
  - item1
  - item2
  - item3
```

You can access the content of the YAML file as follows:

```python
from aiml_py_common_utils import read_yaml

content = read_yaml(path_to_yaml)

print(content.string)  # Outputs: "Hello, World"
print(content.integer)  # Outputs: 25
```

### 2. Directory Creator

This utility allows you to create multiple directories. For example, to create directories named `dir_one`, `dir_two`, and `dir_three`, you can use the function as follows:

```python
from pathlib import Path
from aiml_py_common_utils import create_directories

list_of_directories_paths = [
    Path("./dir_one"),
    Path("./dir_two"),
    Path("./dir_three")
]

create_directories(path_to_directories=list_of_directories_paths)
```

### 3. JSON File Writer

This utility saves a dictionary as a JSON file:

```python
from pathlib import Path
from aiml_py_common_utils import save_dict2json

example_dict = {
  "string": "Hello, World",
  "integer": 25,
  "floating_point": 3.14,
  "boolean": True,
  "null_value": None,
}

path_to_json = Path("path/to/example.json")
save_dict2json(path=path_to_json)
```


### 4. JSON File Reader

This utility loads a JSON file. For example, given a JSON file at a certain path containing:

```JSON
{
  "string": "Hello, World",
  "integer": 25,
  "floating_point": 3.14,
  "boolean": true,
  "null_value": null,
}
```

You can load the content of the JSON file as follows:

```python
from pathlib import Path
from aiml_py_common_utils import load_json

path = Path("path/to/example.json")
content = load_json(path=path_to_json)
print(content.string)  # Outputs: "Hello, World"
print(content.integer)  # Outputs: 25
```

### 5. Binary File Writer

This utility saves a snapshot of data as a binary file:

```python
from pathlib import Path
from aiml_py_common_utils import save_bin

example_dict = {
  "string": "Hello, World",
  "integer": 25,
  "floating_point": 3.14,
  "boolean": True,
  "null_value": None,
}

path_to_bin = Path("path/to/example.bin")
save_bin(data=example_dict, path=path_to_bin)
```

### 6. Binary File Reader

This utility loads a snapshot of data from a binary file:

```python
from pathlib import Path
from aiml_py_common_utils import load_bin

path_to_bin = Path("path/to/example.bin")
loaded_bin_content = load_bin(path=path_to_bin)
```

### 7. File Size Calculator

This utility calculates the size of a file in kilobytes:

```python
from pathlib import Path
from aiml_py_common_utils import get_size

filepath = Path("path/to/example.file")
size_in_kb = get_size(path=filepath)
```
