semvec/pypi-packages huggingface dataset:
board-game-merger 1.0.0
Merging board game data
License: MIT
Requires Python: <4.0,>=3.9.0

# board-game-merger

[![PyPI](https://img.shields.io/pypi/v/board-game-merger?style=flat-square)](https://pypi.python.org/pypi/board-game-merger/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/board-game-merger?style=flat-square)](https://pypi.python.org/pypi/board-game-merger/)
[![PyPI - License](https://img.shields.io/pypi/l/board-game-merger?style=flat-square)](https://pypi.python.org/pypi/board-game-merger/)
[![Coookiecutter - Wolt](https://img.shields.io/badge/cookiecutter-Wolt-00c2e8?style=flat-square&logo=cookiecutter&logoColor=D4AA00&link=https://github.com/woltapp/wolt-python-package-cookiecutter)](https://github.com/woltapp/wolt-python-package-cookiecutter)


---

**Documentation**: [https://MarkusShepherd.github.io/board-game-merger](https://MarkusShepherd.github.io/board-game-merger)

**Source Code**: [https://github.com/MarkusShepherd/board-game-merger](https://github.com/MarkusShepherd/board-game-merger)

**PyPI**: [https://pypi.org/project/board-game-merger/](https://pypi.org/project/board-game-merger/)

---

Merging board game data

## Installation

```sh
pip install board-game-merger
```

## Development

* Clone this repository
* Requirements:
  * [Poetry](https://python-poetry.org/)
  * Python 3.9+
* Create a virtual environment and install the dependencies

```sh
poetry install
```

* Activate the virtual environment

```sh
poetry shell
```

### Testing

```sh
pytest
```

### Documentation

The documentation is automatically generated from the content of the [docs directory](https://github.com/MarkusShepherd/board-game-merger/tree/master/docs) and from the docstrings
 of the public signatures of the source code. The documentation is updated and published as a [Github Pages page](https://pages.github.com/) automatically as part each release.

### Releasing

Trigger the [Draft release workflow](https://github.com/MarkusShepherd/board-game-merger/actions/workflows/draft_release.yml)
(press _Run workflow_). This will update the changelog & version and create a GitHub release which is in _Draft_ state.

Find the draft release from the
[GitHub releases](https://github.com/MarkusShepherd/board-game-merger/releases) and publish it. When
 a release is published, it'll trigger [release](https://github.com/MarkusShepherd/board-game-merger/blob/master/.github/workflows/release.yml) workflow which creates PyPI
 release and deploys updated documentation.

### Pre-commit

Pre-commit hooks run all the auto-formatting (`ruff format`), linters (e.g. `ruff` and `mypy`), and other quality
 checks to make sure the changeset is in good shape before a commit/push happens.

You can install the hooks with (runs for each commit):

```sh
pre-commit install
```

Or if you want them to run only for each push:

```sh
pre-commit install -t pre-push
```

Or if you want e.g. want to run all checks manually for all files:

```sh
pre-commit run --all-files
```

---

This project was generated using the [wolt-python-package-cookiecutter](https://github.com/woltapp/wolt-python-package-cookiecutter) template.
brython-components 0.3.1
Brython-components is an easy implementation of brython's webcomonent
License: MIT
Requires Python: <4.0,>=3.10
Keywords: brython, Development, webcomponents

# Brython-components

Brython-components is an easy implementation of brython's webcomonent.

## Installation

Use the package manager [pip](https://pip.pypa.io/en/stable/) to install.

```bash
pip install brip
brip install brython-components
```

## Usage

### file.html
```html
<popup-info>
    <span slot="data-text">Popup info data</span>
</popup-info>
```

### file.py
```python
from browser import html

from brython_components import bind, customElement, defineElement, react

html.maketag("SLOT")

@defineElement("popup-info")
class PopupInfo(customElement):
    def __init__(self):
        super().__init__()

        self.render_root <= html.STYLE('''
        .wrapper {
            position: relative;
        }
        .info {
            font-size: 0.8rem;
            width: 200px;
            display: inline-block;
            border: 1px solid black;
            padding: 10px;
            background: white;
            border-radius: 10px;
            opacity: 0;
            transition: 0.6s all;
            position: absolute;
            top: 20px;
            left: 10px;
            z-index: 3;
        }
        .icon:hover + .info, .icon:focus + .info {
            opacity: 1;
        }
        ''')

        wrapper = html.SPAN(Class="wrapper")

        icon = html.SPAN(Class="icon", tabindex="0")
        wrapper <= icon

        info = html.SPAN(Class="info")
        info <= html.SLOT(name="data-text")
        wrapper <= info

        self.render_root <= wrapper
        
    @bind(".icon", "click")
    def deactivate(self, event):
        info = self.render_root.select_one(".info")
        icon = event.target
        if not info.style.opacity:
            info.style["opacity"] = 1
            icon.style["text-decoration"] = "line-through"
        else:
            info.style["opacity"] = ""
            icon.style["text-decoration"] = ""
            
    @react(".icon")
    def completed(self, targets):
        targets[0].text = ":) hover me"
```

## License

[MIT](https://choosealicense.com/licenses/mit/)