Metadata-Version: 2.4
Name: sda_sync
Version: 0.1.0
Summary: SDA Synchronization Client
License: Closed
License-File: LICENSE
Author: Muhammad Ali
Author-email: ali.naeem@softwaredefinedautomation.io
Requires-Python: >=3.10,<3.15
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
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
Requires-Dist: keyring (>=25.6.0,<26.0.0)
Requires-Dist: pyside6 (>=6.10.2,<7.0.0)
Requires-Dist: requests (>=2.32.5,<3.0.0)
Description-Content-Type: text/markdown

# SDA Sync Client

Desktop synchronization client with a PySide6 UI and Poetry-managed environment.

## Current UI Entry

Main active UI package:

-   `src/sda_sync/ui/client_mvp/`

Architecture (simplified MVP):

-   `model/`
-   `presenter/`
-   `view/qt/`

The UI uses schema-driven widget/menu construction and integrates the shared logger for runtime logs.

## Requirements

-   Python `>=3.10,<3.15`
-   Poetry

## Setup

From project root:

```bash
cd sda-sync-client
poetry env use python3
poetry install
```

## Run

Default API URL:

```bash
https://api.testeu1.sdaconsole.io
```

If that is not the environment you want, set `SDA_API_URL` before running:

```bash
export SDA_API_URL="https://your-sda-api-host"
```

Preferred command:

```bash
poetry run sda-sync
```

Module fallback:

```bash
poetry run python3 -m sda_sync.ui.client_mvp.main
```

## Verify PySide6

```bash
poetry run python -c "import PySide6; print(PySide6.__version__)"
```

If `python` is unavailable in your Poetry environment:

```bash
poetry run python3 -c "import PySide6; print(PySide6.__version__)"
```

## Tests

```bash
poetry run pytest
```

## Logging

-   Logger implementation: `src/sda_sync/helpers/logger.py`
-   UI bootstrap initializes `LoggingManager`.
-   Log viewer reads from the same runtime log file.

## Additional Docs

-   Run instructions: `docs/run-project.md`
-   Design rationale: `docs/design-decisions.md`

## License

Closed source (see project metadata).

