Metadata-Version: 2.4
Name: ArtinKit
Version: 0.1.0
Summary: Lightweight Python utilities with secure defaults and zero mandatory third-party dependencies.
Author: Artin Karimian
License-Expression: MIT
Keywords: utilities,toolkit,json,files,text,cli
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: bandit>=1.7; extra == "dev"
Requires-Dist: twine>=5; extra == "dev"
Dynamic: license-file

# ArtinKit

Lightweight Python utilities with secure defaults and **zero mandatory third-party runtime dependencies**.

> ArtinKit is a general-purpose utility toolkit, not a bundled AI model.

## Features

- Text helpers: whitespace normalization, word counting, safe truncation, and slug creation.
- File helpers: UTF-8 reads/writes, directory creation, file listing, and file sizes.
- JSON storage: Unicode-friendly JSON load/save with clear error behavior.
- Validation helpers: safe checks for common strings and numeric values.
- Logging helper: create a consistently configured standard-library logger.
- CLI: inspect files and normalize text from a terminal.
- Automated tests, security scanning, and build verification.

## Install online

After the first release is published on PyPI:

```bash
python -m pip install ArtinKit
```

The package name on package indexes is case-insensitive; import it as `artinkit`.

## Install offline

Download the prebuilt wheel from this repository's release/files section or obtain the wheel from the project maintainer, then install it without internet:

```bash
python -m pip install --no-index --no-deps ArtinKit-0.1.0-py3-none-any.whl
```

ArtinKit has no mandatory third-party runtime dependencies. See [OFFLINE_INSTALL.md](OFFLINE_INSTALL.md) for full offline installation instructions.

## Quick start

```python
from artinkit import text, files, jsonstore

print(text.normalize_whitespace("  Hello   ArtinKit  "))
print(text.slugify("ArtinKit Utilities"))

files.write_text("hello.txt", "Hello from ArtinKit", create_parents=True)
jsonstore.save_json("settings.json", {"language": "fa", "ready": True})
settings = jsonstore.load_json("settings.json")
print(settings)
```

## CLI

```bash
artinkit normalize "  Hello    world  "
artinkit file-info README.md
```

## Security notes

- No network access or subprocess execution is performed by the core package.
- File operations target paths explicitly supplied by the caller.
- JSON loading does not execute code.
- Avoid passing untrusted paths to file-writing functions when your application has broader filesystem permissions.
- Security scans and tests run in GitHub Actions. Publishing is separated into a protected job that uses PyPI Trusted Publishing.

## Development

```bash
python -m pip install -e ".[dev]"
python -m pytest
python -m build
python -m twine check dist/*
```

## License

MIT. See [LICENSE](LICENSE).
