Files
semantica/docs/reference/utils.md
T
KaifAhmad1 409f3fdd27 Enhance documentation visual appeal and fix build errors
- Added grid‑card layouts, icons, and admonitions to all reference pages
- Removed all mkdocstrings ::: directives that caused alias‑resolution errors
- Fixed export module alias issue (RDFExporter) by cleaning the docs
- Updated README‑style sections for better readability
- Added a PowerShell helper script (remove_mkdocstrings.ps1) for future clean‑ups
2025-11-23 19:23:13 +05:30

181 lines
4.3 KiB
Markdown

# Utils Module
Utility functions and helper classes for common operations including file handling, text processing, and data manipulation.
## Overview
- **File Operations**: File I/O, path manipulation, compression
- **Text Utilities**: String manipulation, encoding, hashing
- **Data Utilities**: JSON/YAML handling, serialization
- **Logging**: Structured logging with multiple handlers
- **Validation**: Schema validation, type checking
---
## Algorithms Used
### File Operations
- **Hashing**: MD5, SHA256 for file integrity checking
- **Compression**: GZIP, LZMA algorithms for file compression
- **Chunking**: Fixed-size or sliding window chunking for large files
### Text Processing
- **Tokenization**: Whitespace and punctuation-based tokenization
- **Similarity**: Jaccard similarity, Cosine similarity
- **Hashing**: MurmurHash3 for fast non-cryptographic hashing
### Data Serialization
- **JSON**: Fast JSON encoding/decoding
- **YAML**: Human-readable configuration format
- **Pickle**: Python object serialization
---
## Main Classes
### FileUtils
**Methods:**
| Method | Description | Algorithm |
|--------|-------------|-----------|
| `list_files(directory, pattern)` | List files matching pattern | Recursive directory traversal |
| `read_file(path)` | Read file contents | Buffered I/O |
| `write_file(path, content)` | Write to file | Atomic write with temp file |
| `hash_file(path, algorithm)` | Calculate file hash | Streaming hash calculation |
| `compress_file(path, format)` | Compress file | GZIP/LZMA compression |
**Example:**
```python
from semantica.utils import FileUtils
# List files
files = FileUtils.list_files(
directory="documents/",
pattern="*.pdf",
recursive=True
)
# Hash file
file_hash = FileUtils.hash_file("document.pdf", algorithm="sha256")
print(f"SHA256: {file_hash}")
# Compress file
FileUtils.compress_file("large_file.json", format="gzip")
```
---
### TextUtils
**Methods:**
| Method | Description | Algorithm |
|--------|-------------|-----------|
| `clean_text(text)` | Clean and normalize text | Regex-based cleaning |
| `tokenize(text, method)` | Tokenize text | Whitespace/punctuation splitting |
| `calculate_similarity(text1, text2)` | Calculate text similarity | Jaccard or Cosine similarity |
| `hash_text(text)` | Hash text string | MurmurHash3 |
| `remove_stopwords(text, language)` | Remove stopwords | Dictionary-based filtering |
**Example:**
```python
from semantica.utils import TextUtils
# Clean text
text = " Hello, World! \n\n "
cleaned = TextUtils.clean_text(text)
print(cleaned) # "Hello, World!"
# Calculate similarity
similarity = TextUtils.calculate_similarity(
"machine learning",
"deep learning",
method="jaccard"
)
print(f"Similarity: {similarity:.2f}")
```
---
### DataUtils
**Methods:**
| Method | Description | Algorithm |
|--------|-------------|-----------|
| `load_json(path)` | Load JSON file | JSON parsing |
| `save_json(data, path)` | Save to JSON | JSON serialization |
| `load_yaml(path)` | Load YAML file | YAML parsing |
| `save_yaml(data, path)` | Save to YAML | YAML serialization |
| `validate_schema(data, schema)` | Validate against schema | JSON Schema validation |
**Example:**
```python
from semantica.utils import DataUtils
# Load/save JSON
data = DataUtils.load_json("config.json")
DataUtils.save_json(data, "output.json", pretty=True)
# Load/save YAML
config = DataUtils.load_yaml("config.yaml")
DataUtils.save_yaml(config, "output.yaml")
# Validate schema
is_valid = DataUtils.validate_schema(
data=data,
schema={"type": "object", "properties": {...}}
)
```
---
### LoggerUtils
**Methods:**
| Method | Description | Algorithm |
|--------|-------------|-----------|
| `get_logger(name)` | Get logger instance | Logger factory |
| `configure_logging(level, format)` | Configure logging | Handler setup |
---
## Configuration
```yaml
# config.yaml - Utils Configuration
utils:
logging:
level: INFO # DEBUG, INFO, WARNING, ERROR
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
handlers:
- console
- file
file:
default_encoding: utf-8
buffer_size: 8192
text:
default_language: en
remove_stopwords: true
```
---
## See Also
- [Core Module](core.md) - Framework orchestration
- [Ingest Module](ingest.md) - Data ingestion
- [Parse Module](parse.md) - Document parsing