Metadata-Version: 2.4
Name: popcorn-meter
Version: 1.1.2
Summary: A Streamlit app for movie discovery, watchlists, and recommendations.
License: Apache 2.0
License-File: LICENSE
Author: ethassan
Author-email: ethassan@users.noreply.github.com
Requires-Python: >=3.10,<4.0.0
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: streamlit (>=1.54.0,<2.0.0)
Description-Content-Type: text/markdown

# Popcorn Meter

Popcorn Meter is a Python project built with Poetry. It includes a Streamlit UI and a layered package structure for application logic, infrastructure integrations, and tests.

## Project Structure

```bash
<root>
|-- popcorn_meter/              # main package
|   |-- __init__.py
|   |-- __main__.py             # launches the Streamlit app
|   |-- application/            # use cases and ports
|   |-- infrastructure/         # OMDb + SQLite adapters
|   `-- ui/                     # Streamlit frontend
|-- tests/                      # unit/integration/ui tests
|-- .github/workflows/          # CI/CD workflows
|-- pyproject.toml              # Poetry configuration
|-- requirements.txt            # Poetry bootstrap dependency
|-- release.config.mjs          # semantic-release config
`-- renovate.json               # dependency update automation
```

## Development

Install dependencies:

```bash
pip install -r requirements.txt
poetry install
```

Run tests:

```bash
poetry run poe test
```

Run static checks:

```bash
poetry run poe static-checks
```

Format code:

```bash
poetry run poe format
```

Run the app:

```bash
python -m popcorn_meter
```

or:

```bash
poetry run popcorn-meter
```

## CI/CD and Releases

- CI runs checks and tests on push and pull request via GitHub Actions.
- Releases are managed by semantic-release through `.github/workflows/deploy.yml`.
- Publish credentials are expected in repository secrets:
- `PYPI_USERNAME` (use `__token__`)
- `PYPI_PASSWORD` (PyPI API token)
- `RELEASE_TOKEN` (GitHub token for release automation)

## Dependency Updates

Renovate is configured via `renovate.json` to open and manage dependency update pull requests.

