Metadata-Version: 2.4
Name: teilchensammler-cli
Version: 0.5.10
Summary: Build up and maintain an inventory of electronics parts and tools.
Keywords: cli,components,electronics,inventory,parts,textual,tui
Author: bronsen
Author-email: bronsen <kontakt+teilchensammler@nrrd.de>
License-Expression: GPL-3.0-or-later
Classifier: Development Status :: 3 - Alpha
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: ciso8601>=2.3.3
Requires-Dist: natsort>=8.4.0
Requires-Dist: orjson>=3.11.4
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 documenation].

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
* [markdownlint-cli2] to keep some sort of consistency in our markdowns
* [ty] as LSP and type checker

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.

## 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 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 the file.

## 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
* commit
* When we really really want to release:
  * make sure `just alltests` passes
  * `touch releasenotes.md` and edit that file
  * `just release {Release Name can be several words}`
* Ponder the magnificence of what was accomplished.

----

[official documenation]: 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
[markdownlint-cli2]: https://github.com/DavidAnson/markdownlint-cli2
[repo page]: https://code.c-base.org/infuanfu/teilchensammler-cli
