Metadata-Version: 2.4
Name: artinforge
Version: 0.1.0
Summary: A lightweight, modular Python toolkit for developer utilities.
Author: Artin Karimian
License-Expression: MIT
Keywords: python,developer-tools,automation,files,json,networking
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# ArtinForge

**A lightweight, modular Python toolkit for everyday developer tasks.**

ArtinForge starts with useful, real features and avoids mandatory third-party runtime dependencies.

## Features

- **Text utilities:** normalize whitespace, count words, truncate text, create slugs.
- **File utilities:** UTF-8 read/write, directory creation, file listing and size.
- **JSON storage:** read and save JSON, including Persian/Unicode text.
- **HTTP helpers:** GET text/JSON and POST JSON using Python's standard library.
- **Local development server:** serve a folder for local testing.
- **System information:** Python version, platform, executable and current directory.
- **Command line:** inspect runtime details and launch the local server.

> ArtinForge is a developer toolkit, not a bundled AI model. AI features require a model or service to be connected separately.

## Install

```bash
python -m pip install artinforge
```

If a package mirror is stale, check the official PyPI index:

```bash
python -m pip install --index-url https://pypi.org/simple artinforge
```

The name must be available on PyPI before the first release. Check the project page before publishing.

## Quick example

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

print(text.slugify("Hello ArtinForge!"))
files.write_text("demo/hello.txt", "سلام آرتین")
jsonstore.save("demo/settings.json", {"language": "fa", "theme": "dark"})
print(jsonstore.load("demo/settings.json", default={}))
```

## Start a local test server

```bash
artinforge serve --host 127.0.0.1 --port 8765 --directory .
```

Then open `http://127.0.0.1:8765` in your browser. This is for local development; do not expose it to the public internet without a security review and appropriate protections.

## Commands

```bash
artinforge --help
artinforge info
artinforge serve --host 127.0.0.1 --port 8765 --directory .
```

## Package the project

From the folder containing `pyproject.toml`:

```bash
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
```

Only after checks pass, upload with your PyPI token:

```bash
python -m twine upload dist/*
```

**Release rule:** every upload to PyPI needs a version that has not been published before. If you need to fix a release, increment `version` in `pyproject.toml`, rebuild from a clean `dist/` directory, and upload the new version. A mirror may take time to sync, so verify against the official PyPI index.


## License

MIT. See `LICENSE`.
