Metadata-Version: 2.4
Name: tgzr.nice_repository_browser
Version: 0.0.1
Summary: A nicegui base UI to browse and search python packages in any simple package repository (PEP-503) based on simple-repository-browser.
Project-URL: Documentation, https://github.com/open-tgzr/tgzr.nice_repository_browser#readme
Project-URL: Issues, https://github.com/open-tgzr/tgzr.nice_repository_browser/issues
Project-URL: Source, https://github.com/open-tgzr/tgzr.nice_repository_browser
Author-email: Dee <dee.sometech@gmail.com>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Requires-Dist: aiosqlite>=0.22.1
Requires-Dist: diskcache>=5.6.3
Requires-Dist: httpx>=0.28.1
Requires-Dist: humanize>=4.13.0
Requires-Dist: nicegui>=2.24.2
Requires-Dist: pkginfo>=1.12.1.2
Requires-Dist: pydantic-settings>=2.8.1
Requires-Dist: rich>=14.3.1
Requires-Dist: simple-repository>=0.11.1
Description-Content-Type: text/markdown

# tgzr.nice_repository_browser

A nicegui base UI to browse and search python packages in any simple package repository (PEP-503) inspired by simple-repository-browser.

# Usage

```
from pathlib import Path

from nicegui import ui

from tgzr.nice_repository_browser.repository_view import RepositoryView

async ui.page('/'):

    def on_package_clicked(event: RepositoryView.EVENTS.PackageClicedEvent):
        print(f"Package {event.package.name}'s {event.clicked_item} was clicked clicked.")

    repo_url :str = ...     # can be '/path/to/folder' or 'https://repo-url/simple'
    cache_path: Path | None = ...   # beware: cache is not yet implemented

    repo_view = RepositoryView(repo_url, cache_path)
    repo_view.events.on_package_clicked.subscribe(on_package_clicked)

    with ui.column():
        await repo_view.render()    
        

```

# Demo

```
python -m tgzr.nice_repository_browser.demo
```
(You will need to edit demo.py and set you own repository paths first...)