Metadata-Version: 2.4
Name: zyto
Version: 0.2.2
Summary: Download and open images, plus a tiny hello dialog on Windows
License: MIT
Keywords: image,download,open,viewer,hello
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# zyto

Download an image from an HTTP(S) URL, open it with the default viewer — and on
Windows, run a tiny helper that shows a *hello* dialog.

```bash
pip install zyto
```

```python
from zyto import download_and_open_image, show_hello

print(download_and_open_image("https://example.com/image.png"))
# {'file_path': '…/image.png', 'opened': True}

show_hello()            # Windows: a 4 KB MessageBox that says "hello"
show_hello("hey you")   # custom text
```

## CLI

```bash
zyto hello                 # shows the dialog
zyto hello "hey" -w        # custom text, wait until closed
zyto image <url> --open    # download and open
zyto info                  # version + helper path
zyto-hello                 # same as `zyto hello`
```

## The helper

`zyto/Helper.exe` is compiled from [`helper/Helper.cs`](helper/Helper.cs) by
`helper/build-helper.ps1` using the .NET Framework compiler that ships with
Windows. Its entire body is one `MessageBoxW` call:

```csharp
MessageBoxW(IntPtr.Zero, text, "zyto", MB_OK | MB_ICONINFORMATION);
```

It is ~4 KB, unsigned-but-open-source, not packed, not encrypted, and it is run
in place from `site-packages` — no copy into `%TEMP%`, no obfuscation, no
network. Read the source, then read the binary; they match.

On Linux and macOS the Python API works normally and `show_hello()` returns
`False` (there is no Win32 dialog to show).

## Build

```powershell
# 1. compile the helper (needs only .NET Framework 4.x, present on Windows)
powershell -ExecutionPolicy Bypass -File helper\build-helper.ps1

# 2. build wheel + sdist
python -m build
```

By default `pip install zyto` is silent. If you want the dialog to also fire
once after install, build with the hook:

```powershell
$env:ZYTO_HOOK = "1"
python tools\build.py      # adds zyto.pth to the wheel
```

That variant runs `zyto._hook.fire_once()` on every interpreter start-up and
shows the dialog once per version (marker file in `%TEMP%`). Keep in mind that
public indexes scan wheels for start-up hooks — an upload containing a `.pth`
that spawns a process is very likely to be rejected or removed. The default
(no hook) build is the one that survives review.

## API

| Name | Description |
|---|---|
| `download_image(url, output_path=None)` | Download an image, return the saved path |
| `open_image(path)` | Open a local file with the default viewer |
| `download_and_open_image(url, output_path=None)` | Download + open → `{file_path, opened}` |
| `show_hello(text="hello", wait=False)` | Run the helper dialog (Windows) |
| `has_helper()` / `helper_path()` | Helper presence and path |
| `has_desktop_session()` | `True` when a GUI is available |

Requires Python 3.8 or newer. MIT.
