Fix various type hints
This commit is contained in:
@@ -34,7 +34,7 @@ def sort_journal_entries_in(date: dt.date, exclude: int | None = None) -> None:
|
||||
:param exclude: The journal entry ID to exclude.
|
||||
:return: None.
|
||||
"""
|
||||
conditions: list[sa.BinaryExpression] = [JournalEntry.date == date]
|
||||
conditions: list[sa.ColumnElement[bool]] = [JournalEntry.date == date]
|
||||
if exclude is not None:
|
||||
conditions.append(JournalEntry.id != exclude)
|
||||
journal_entries: list[JournalEntry] = JournalEntry.query\
|
||||
|
||||
@@ -28,7 +28,7 @@ class AccountOption:
|
||||
|
||||
:param account: The account.
|
||||
"""
|
||||
self.id: str = account.id
|
||||
self.id: int = account.id
|
||||
"""The account ID."""
|
||||
self.code: str = account.code
|
||||
"""The account code."""
|
||||
|
||||
@@ -315,14 +315,14 @@ class DescriptionEditor:
|
||||
if len(codes) == 0:
|
||||
return {}
|
||||
|
||||
def get_condition(code0: str) -> sa.BinaryExpression:
|
||||
m: re.Match = re.match(r"^(\d{4})-(\d{3})$", code0)
|
||||
def get_condition(code0: str) -> sa.ColumnElement[bool]:
|
||||
m: re.Match[str] | None = re.match(r"^(\d{4})-(\d{3})$", code0)
|
||||
assert m is not None, \
|
||||
f"Malformed account code \"{code0}\" for regular transactions."
|
||||
return sa.and_(Account.base_code == m.group(1),
|
||||
Account.no == int(m.group(2)))
|
||||
|
||||
conditions: list[sa.BinaryExpression] \
|
||||
conditions: list[sa.ColumnElement[bool]] \
|
||||
= [get_condition(x) for x in codes]
|
||||
accounts: dict[str, Account] \
|
||||
= {x.code: x for x in
|
||||
|
||||
@@ -334,3 +334,4 @@ def get_journal_entry_op(journal_entry: JournalEntry,
|
||||
key=lambda x: x.CHECK_ORDER):
|
||||
if journal_entry_type.is_my_type(journal_entry):
|
||||
return journal_entry_type
|
||||
assert False
|
||||
|
||||
@@ -46,8 +46,8 @@ def get_selectable_original_line_items(
|
||||
(offset.c.id.in_(line_item_id_on_form), 0),
|
||||
(offset.c.is_debit == JournalEntryLineItem.is_debit, offset.c.amount),
|
||||
else_=-offset.c.amount))).label("net_balance")
|
||||
conditions: list[sa.BinaryExpression] = [Account.is_need_offset]
|
||||
sub_conditions: list[sa.BinaryExpression] = []
|
||||
conditions: list[sa.ColumnElement[bool]] = [Account.is_need_offset]
|
||||
sub_conditions: list[sa.ColumnElement[bool]] = []
|
||||
if is_payable:
|
||||
sub_conditions.append(sa.and_(Account.base_code.startswith("2"),
|
||||
sa.not_(JournalEntryLineItem.is_debit)))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# The Mia! Accounting Project.
|
||||
# Author: imacat@mail.imacat.idv.tw (imacat), 2023/2/18
|
||||
|
||||
# Copyright (c) 2023-2024 imacat.
|
||||
# Copyright (c) 2023-2026 imacat.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -22,7 +22,7 @@ from urllib.parse import parse_qsl, urlencode
|
||||
|
||||
import sqlalchemy as sa
|
||||
from flask import Blueprint, render_template, session, redirect, request, \
|
||||
flash, url_for
|
||||
flash, url_for, Response
|
||||
from werkzeug.datastructures import ImmutableMultiDict
|
||||
|
||||
from accounting import db
|
||||
@@ -74,7 +74,7 @@ def show_add_journal_entry_form(journal_entry_type: JournalEntryType) -> str:
|
||||
|
||||
@bp.post("store/<journalEntryType:journal_entry_type>", endpoint="store")
|
||||
@has_permission(can_edit)
|
||||
def add_journal_entry(journal_entry_type: JournalEntryType) -> redirect:
|
||||
def add_journal_entry(journal_entry_type: JournalEntryType) -> Response:
|
||||
"""Adds a journal entry.
|
||||
|
||||
:param journal_entry_type: The journal entry type.
|
||||
@@ -136,7 +136,7 @@ def show_journal_entry_edit_form(journal_entry: JournalEntry) -> str:
|
||||
|
||||
@bp.post("<journalEntry:journal_entry>/update", endpoint="update")
|
||||
@has_permission(can_edit)
|
||||
def update_journal_entry(journal_entry: JournalEntry) -> redirect:
|
||||
def update_journal_entry(journal_entry: JournalEntry) -> Response:
|
||||
"""Updates a journal entry.
|
||||
|
||||
:param journal_entry: The journal entry.
|
||||
@@ -169,7 +169,7 @@ def update_journal_entry(journal_entry: JournalEntry) -> redirect:
|
||||
|
||||
@bp.post("<journalEntry:journal_entry>/delete", endpoint="delete")
|
||||
@has_permission(can_edit)
|
||||
def delete_journal_entry(journal_entry: JournalEntry) -> redirect:
|
||||
def delete_journal_entry(journal_entry: JournalEntry) -> Response:
|
||||
"""Deletes a journal entry.
|
||||
|
||||
:param journal_entry: The journal entry.
|
||||
@@ -204,7 +204,7 @@ def show_journal_entry_order(date: dt.date) -> str:
|
||||
|
||||
@bp.post("dates/<date:date>", endpoint="sort")
|
||||
@has_permission(can_edit)
|
||||
def sort_journal_entries(date: dt.date) -> redirect:
|
||||
def sort_journal_entries(date: dt.date) -> Response:
|
||||
"""Reorders the journal entries in a date.
|
||||
|
||||
:param date: The date.
|
||||
|
||||
Reference in New Issue
Block a user