Compare commits
4 commits
5e3faa5367
...
9260c225e4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9260c225e4 | ||
|
|
63edd11aac | ||
|
|
a5ef6f2017 | ||
|
|
60079d64d2 |
6 changed files with 25 additions and 7 deletions
21
justfile
21
justfile
|
|
@ -1,10 +1,17 @@
|
|||
[private]
|
||||
default:
|
||||
@just --list
|
||||
|
||||
# create venv, install dependencies
|
||||
setup:
|
||||
uv sync
|
||||
# install the other tools: prek, mise
|
||||
|
||||
# run Textual's console
|
||||
# builds a package (tgz and whl)
|
||||
build:
|
||||
uv build
|
||||
|
||||
# console to observe log messages
|
||||
console:
|
||||
uv run textual console
|
||||
|
||||
|
|
@ -14,42 +21,50 @@ the_app := "teilchensammler_cli.main"
|
|||
run-dev:
|
||||
uv run textual run --dev {{ the_app }}
|
||||
|
||||
# run the app
|
||||
run:
|
||||
uv run python -m {{ the_app }}
|
||||
|
||||
uv_export_options := "--frozen --format requirements.txt --quiet --no-install-project"
|
||||
# export dependencies into requirements files
|
||||
exports-deps:
|
||||
uv export {{ uv_export_options }} --output-file requirements.txt
|
||||
uv export {{ uv_export_options }} --output-file requirements.dev.txt --only-dev
|
||||
|
||||
install-deps: setup
|
||||
|
||||
# Update dependencies to new versions
|
||||
update-deps:
|
||||
uv lock --upgrade
|
||||
uv sync
|
||||
|
||||
# Run tests, args are passed-through to pytest
|
||||
test *ARGS:
|
||||
uv run pytest tests.py {{ ARGS }}
|
||||
|
||||
# run tests and create coverage reports
|
||||
coverage:
|
||||
uv run pytest tests.py --cov=src/ --cov-report term --cov-report xml --cov-report html --cov-config pyproject.toml
|
||||
|
||||
# lint python code
|
||||
lint-python:
|
||||
uv run ruff check .
|
||||
|
||||
# lint markdown documents
|
||||
lint-markdown:
|
||||
markdownlint-cli2 .
|
||||
|
||||
# run python and markdown
|
||||
lint: lint-python lint-markdown
|
||||
|
||||
# remove artefacts from dist/
|
||||
clean:
|
||||
rm dist/*.whl dist/*.tar.gz
|
||||
|
||||
# pretend we are CI
|
||||
ci: lint
|
||||
prek run --all-files
|
||||
# woodpecker-cli exec "whatever"
|
||||
|
||||
# create a new realese [CURRENTLY USELESS]
|
||||
release:
|
||||
@echo remember to git tag and update pyproject.toml
|
||||
uv build
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
[env]
|
||||
'_'.python.venv = { path = ".venv", create = true }
|
||||
DATABASE_URL = "sqlite:///database.db"
|
||||
|
||||
[tools]
|
||||
markdownlint-cli2 = "latest"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import os
|
||||
from sqlmodel import SQLModel, create_engine
|
||||
|
||||
sqlite_url = "sqlite:///database.db" # TODO: get url from environment
|
||||
|
||||
sqlite_url = os.environ.get("DATABASE_URL", "sqlite:///database.db")
|
||||
engine = create_engine(sqlite_url, echo=True)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,6 @@ async def load_initial_data() -> Sequence[Teilchen]:
|
|||
with Session(engine) as session:
|
||||
statement = select(
|
||||
Teilchen.id, Teilchen.name, Teilchen.description, Teilchen.number, Teilchen.tags
|
||||
)
|
||||
) # ty:ignore[no-matching-overload]
|
||||
all_teilchen = session.exec(statement).all()
|
||||
return all_teilchen
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class SearchResults(Widget):
|
|||
async def on_mount(self) -> None:
|
||||
table: DataTable[None] = self.query_one(DataTable[None])
|
||||
_ = table.add_columns(*FAKE_DATA_HEADER)
|
||||
_ = table.add_rows(await load_initial_data()) # ty:ignore[invalid-argument-type]
|
||||
_ = table.add_rows(await load_initial_data())
|
||||
|
||||
|
||||
class AddInventoryScreen(Screen[None]):
|
||||
|
|
|
|||
2
tests.py
2
tests.py
|
|
@ -1,4 +1,4 @@
|
|||
def test_initial_layout(snap_compare): # pyright: ignore[reportMissingParameterType, reportUnknownParameterType]
|
||||
def test_initial_layout(snap_compare):
|
||||
from teilchensammler_cli.main import app
|
||||
|
||||
assert snap_compare(app, terminal_size=(130, 40))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue