Metadata-Version: 2.4
Name: teilchensammler-cli
Version: 0.7.0
Summary: Build up and maintain an inventory of electronics parts and tools.
Keywords: cli,components,electronics,inventory,parts,teilchen,textual,tui
Author: bronsen
Author-email: bronsen <kontakt+teilchensammler@nrrd.de>
License-Expression: GPL-3.0-or-later
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Private :: Do No Upload
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Terminals
Classifier: Topic :: Utilities
Requires-Dist: aiosqlite>=0.22.1
Requires-Dist: natsort>=8.4.0
Requires-Dist: sqlmodel>=0.0.27
Requires-Dist: textual>=6.7.1
Requires-Python: >=3.14, <4.0
Project-URL: Changelog, https://code.c-base.org/infuanfu/teilchensammler-cli/src/branch/main/CHANGELOG.md
Project-URL: Homepage, https://nrrd.de/t/teilchensammler/
Project-URL: Issues, https://code.c-base.org/infuanfu/teilchensammler-cli/issues
Project-URL: Releasenotes, https://code.c-base.org/infuanfu/teilchensammler-cli/src/branch/main/RELEASES.md
Project-URL: Repository, https://code.c-base.org/infuanfu/teilchensammler-cli/
Description-Content-Type: text/markdown

# Teilchensammler

This is a little TUI based on [Textual] for entering new Teilchen and for
searching for existing Teilchen. Data is kept in a sqlite database.

It is not yet usable. It has tests.

## Running tests

```sh
uv run pytest tests.py
# or if you have just
just test
```

## Observing the app's console

The console can be used to observe log messages, since those logs really should
not go to the terminal.

You will need two terminals:

  1. One for showing the console,
  2. The other to run the app.

Since we use uv, the incantation is a bit different from the [official documentation].

In one terminal:

```sh
uv run textual console
# or if you have just
just console
```

And in the other:

```sh
uv run textual run --dev src/teilchensammler_cli/__init__.py
# or if you have just
just run-console
```

## Developing

To re-create bronsen's development environment, sort of, you need several shiny
new toys:

- [just] to run the recipes from `justfile`
- [uv] for all the python executing stuff, also venv and versioning
- [prek] as a replacement for pre-commit
- [ruff] to lint and format the python code
- [mdlint] to keep some sort of consistency in our markdowns
- [ty] as LSP and type checker
- [fish] to be able to run all recipes

I use just; just runs uv, prek, ruff, and so on. It's indirection and
abstraction all the way down.

However, you can also do without all these!

### Merge Requests

You know how these work.

### Commit style

I prefer simple commit titles, and am not a fan of conventional commits. Do
provide as much detail as desired in the message's body. Commit early, commit
often; rebase frequently.

### Tests

Yes! Please write tests: simple ones, trivial ones; complicated ones, slow ones.

Tests should be written in pytest fashion. Use all the plugins except brittle ones.

### Notes

**When implementing or overriding one of the `on_*` methods:**

- do not use `super()`
- maybe `prevent_default()`
- maybe `event.stop()`

## Bug Reports, Feature Requests

Create them by clicking "Issues" at the top of the [repo page]. Do not worry
too much about labels.

Please be specific and provide logs, screenshots, or even a test that
replicates the problem.

### Architectural Changes

These are unlikely to be accepted. This tool is not intended to scale. There
might be a web front end thing automatically provided by [Textual].

### Configurations for tools the bronsen does not currently use

Oh sure, I'll accept those. Please create a merge request that adds those
configuration files.

## AI

Please don't: this is my little human-created thing.

## Creating a new release

(This is so bronsen can forget.)

- run tests; make sure they pass
- commit
- `uv version --bump {segment}`

  Where `segment` is one of: major, minor, patch, stable, alpha, beta, rc,
  post, dev

  Employ RC releases to make sure the pieces fit together.

- commit
- When we really really want to release:
  - make sure `just testall` passes
  - `touch releasenotes.md` and edit that file
  - `just release {Release Name can be several words}`
- Ponder the magnificence of what was accomplished.

[official documentation]: https://textual.textualize.io/guide/devtools/#console
[Textual]: https://textual.textualize.io/
[uv]: https://astral.sh/uv
[ty]: https://docs.astral.sh/ty/
[just]: https://just.systems/
[prek]: https://prek.j178.dev/
[ruff]: https://astral.sh/ruff
[mdlint]: https://pypi.org/project/markdownlint-rs/
[repo page]: https://code.c-base.org/infuanfu/teilchensammler-cli
[fish]: https://fishshell.com/#platform_tabs
