Metadata-Version: 2.4
Name: traimath
Version: 0.1.0
Summary: Hafif, hızlı ve güvenli matematiksel ifade motoru
Author: Muhammed Recep Demirtaş
License: MIT
Project-URL: Homepage, https://github.com/Muhammed-Recep-Demirtas/traimath
Project-URL: Repository, https://github.com/Muhammed-Recep-Demirtas/traimath
Project-URL: Issues, https://github.com/Muhammed-Recep-Demirtas/traimath/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# TRAImath

> Hafif, güvenli ve genişletilebilir bir Python matematik kütüphanesi.

TRAImath, NumPy veya diğer ağır bağımlılıklar olmaksızın yaygın matematik
işlemlerini sağlayan saf-Python bir kütüphanedir. `eval()` asla kullanılmaz;
parser modülü Shunting-Yard algoritmasıyla güvenli ifade değerlendirmesi sunar.

## Özellikler

| Modül        | Fonksiyonlar |
|--------------|-------------|
| `basic`      | `add`, `subtract`, `multiply`, `divide`, `modulo`, `floor_divide`, `absolute` |
| `advanced`   | `power`, `sqrt`, `cbrt`, `factorial`, `log`, `log2`, `log10`, `exp`, `gcd`, `lcm` |
| `geometry`   | `circle_area/perimeter`, `triangle_area`, `rectangle_area/perimeter`, `cube_volume/surface`, `sphere_volume/surface`, `cylinder_volume` |
| `trig`       | `sin/cos/tan` (rad & deg), `asin/acos/atan/atan2`, `sinh/cosh/tanh`, `to_radians/to_degrees` |
| `parser`     | `parse("2+3*5")` → `17.0` — Shunting-Yard tabanlı, eval-free |
| `errors`     | `TRAIMathError`, `DivisionByZeroError`, `DomainError`, `InvalidExpressionError` |

## Kurulum

```bash
pip install .
# veya geliştirme modunda:
pip install -e .
```

## Hızlı Başlangıç

```python
import traimath as tm

# Temel işlemler
tm.add(3, 4)          # 7
tm.divide(10, 3)      # 3.333...
tm.modulo(10, 3)      # 1

# Gelişmiş
tm.sqrt(144)          # 12.0
tm.factorial(6)       # 720
tm.log(100, 10)       # 2.0

# Geometri
tm.circle_area(5)     # 78.539...
tm.cube_volume(3)     # 27
tm.sphere_volume(3)   # 113.097...

# Trigonometri
tm.sin_deg(30)        # 0.5
tm.cos_deg(60)        # 0.5
tm.to_radians(180)    # 3.14159...

# Parser — eval() YOK, güvenli
tm.parse("2 + 3 * 5")            # 17.0
tm.parse("(2 + 3) * 5")          # 25.0
tm.parse("sqrt(16) + 2^3")       # 12.0
tm.parse("sin(pi / 2)")          # 1.0
tm.parse("-3 * (4 + 2)")         # -18.0
tm.parse("log10(1000) + e")      # 5.718...
```

## Hata Yönetimi

```python
from traimath.errors import DivisionByZeroError, InvalidExpressionError

try:
    tm.divide(5, 0)
except DivisionByZeroError as e:
    print(e)   # [DIVISION_BY_ZERO] Sıfıra bölme işlemi gerçekleştirilemez.

try:
    tm.sqrt(-1)
except tm.DomainError as e:
    print(e)   # [DOMAIN_ERROR] 'sqrt' fonksiyonu için geçersiz giriş: -1

try:
    tm.parse("2 ** ** 3")
except InvalidExpressionError as e:
    print(e)
```

## Testleri Çalıştırma

```bash
python -m pytest tests/ -v
```

## Lisans

MIT
