Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
c3bc0ab
up and running
clstaudt Feb 24, 2026
5f0dfce
Refactor contacts, contracts, and projects modules to unify CRUD oper…
clstaudt Feb 25, 2026
0b6eddd
Refactor project and entity views for improved CRUD functionality
clstaudt Feb 25, 2026
b4b45e0
Refactor UI components and improve styling for consistency
clstaudt Feb 25, 2026
6ab2c8a
Enhance invoicing view with overdue status handling, filtering, and i…
clstaudt Feb 25, 2026
6610f5f
upgrade to flet 0.81
clstaudt Feb 25, 2026
1cc6667
Refactor file picker and client storage handling for improved async s…
clstaudt Feb 25, 2026
028a56d
Refactor error handling and contract/project saving logic for improve…
clstaudt Feb 25, 2026
4ffe0fb
Implement native Material DatePicker in DateSelector component
clstaudt Feb 25, 2026
0d30df6
Add pymupdf dependency and implement PDF rendering functionality
clstaudt Feb 28, 2026
d478643
Enhance timesheet rendering with improved date and duration formatting
clstaudt Feb 28, 2026
765c057
Merge pull request #236 from tuttle-dev/vibe-flet-upgrade
clstaudt Feb 28, 2026
4394ccb
Update import statements in charts.py to include Container from flet …
clstaudt Feb 28, 2026
d4d2016
Update Python version matrix in GitHub Actions workflow to include 3.…
clstaudt Feb 28, 2026
e0a7f07
Refactor GitHub Actions workflow for Python package to utilize 'uv' f…
clstaudt Feb 28, 2026
dbde6ea
Update flake8 configuration to exclude virtual environment and adjust…
clstaudt Feb 28, 2026
b5574b5
Add VAT_number field to User model and update client test case for da…
clstaudt Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 11 additions & 18 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python package

on:
Expand All @@ -16,25 +13,21 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@main
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@main
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
python-version: ${{ matrix.python-version }}
version: "latest"
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
run: uv sync --python ${{ matrix.python-version }}
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
uv run --with flake8 flake8 . --exclude=.venv --count --select=E9,F63,F7,F82 --show-source --statistics
uv run --with flake8 flake8 . --exclude=.venv --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest
run: uv run pytest
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"python.formatting.provider": "black"
"python.formatting.provider": "black",
"makefile.configureOnOpen": false
}
12 changes: 0 additions & 12 deletions MANIFEST.in

This file was deleted.

29 changes: 14 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -48,28 +48,25 @@ clean-test: ## remove test and coverage artifacts
rm -fr .pytest_cache

lint/flake8: ## check style with flake8
flake8 tuttle tests
uv run flake8 tuttle tests
lint/black: ## check style with black
black --check tuttle tests
uv run black --check tuttle tests

lint: lint/flake8 lint/black ## check style

test: ## run tests quickly with the default Python
pytest

test-all: ## run tests on every Python version with tox
tox
uv run pytest

coverage: ## check code coverage quickly with the default Python
coverage run --source tuttle -m pytest
coverage report -m
coverage html
uv run coverage run --source tuttle -m pytest
uv run coverage report -m
uv run coverage html
$(BROWSER) htmlcov/index.html

docs: ## generate Sphinx HTML documentation, including API docs
rm -f docs/tuttle.rst
rm -f docs/modules.rst
sphinx-apidoc -o docs/ tuttle
uv run sphinx-apidoc -o docs/ tuttle
$(MAKE) -C docs clean
$(MAKE) -C docs html
$(BROWSER) docs/_build/html/index.html
Expand All @@ -78,12 +75,14 @@ servedocs: docs ## compile the docs watching for changes
watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .

release: dist ## package and upload a release
twine upload dist/*
uv run twine upload dist/*

dist: clean ## builds source and wheel package
python setup.py sdist
python setup.py bdist_wheel
uv build
ls -l dist

install: clean ## install the package to the active Python's site-packages
python setup.py install
install: ## install the package with uv
uv sync

install-dev: ## install the package with dev dependencies
uv sync --all-groups
Loading