bank_account: fix module by pylint hints

This commit is contained in:
Richard Kubíček
2025-02-08 14:22:55 +01:00
parent d083b389c8
commit e8c450d007

View File

@@ -1,3 +1,36 @@
"""
Bank Account Module.
This module provides classes and functions for working with bank accounts in the SuperFaktura API.
It allows for retrieving, creating, updating, and deleting bank accounts.
Classes:
- BankAccountModel: Dataclass representing a bank account.
- BankAccount: Class for interacting with bank accounts.
Exceptions:
- NoDefaultBankAccountException: Exception for when no default bank account is found.
Functions:
- (none)
Usage:
import superfaktura.bank_account
# Create an instance of BankAccount
bank = superfaktura.bank_account.BankAccount()
# Retrieve a list of bank accounts
accounts = bank.list()
# Get the default bank account
default_account = bank.default()
# Create or update a bank account
data = {"account": "1234567890", "bank_code": "1234567890", "default": True}
bank.post(data)
"""
from dataclasses import dataclass, asdict
from typing import Optional
@@ -5,11 +38,13 @@ from superfaktura.superfaktura_api import SuperFakturaAPI
class NoDefaultBankAccountException(Exception):
pass
"""Exception for when no default bank account is found."""
@dataclass
class BankAccountModel:
"""Dataclass representing a bank account."""
account: Optional[str]
bank_code: Optional[str]
bank_name: Optional[str]
@@ -20,6 +55,7 @@ class BankAccountModel:
id: Optional[int]
def as_dict(self) -> dict:
"""Returns a dictionary representation of the BankAccountModel."""
data = asdict(self)
for key in list(data.keys()):
if data[key] is None:
@@ -28,24 +64,42 @@ class BankAccountModel:
@staticmethod
def from_dict(data: dict) -> "BankAccountModel":
"""Creates a BankAccountModel from a dictionary."""
return BankAccountModel(
**{
k: v
for k, v in data.items()
if k in BankAccountModel.__dataclass_fields__
}
**{k: v for k, v in data.items() if k in BankAccountModel.__annotations__}
)
class BankAccount(SuperFakturaAPI):
"""
Bank Account Class.
This class provides methods for interacting with bank accounts in the SuperFaktura API.
It allows for retrieving, creating, updating, and deleting bank accounts.
Methods:
- list: Retrieves a list of bank accounts.
- default: Retrieves the default bank account.
- post: Creates or updates a bank account.
Usage:
bank = BankAccount()
accounts = bank.list()
default_account = bank.default()
data = {"account": "1234567890", "bank_code": "1234567890", "default": True}
bank.post(data)
"""
def __init__(self):
super().__init__()
def list(self) -> dict:
"""Retrieves a list of bank accounts."""
url = "bank_accounts/index"
return self.get(url)
def default(self) -> Optional[BankAccountModel]:
"""Retrieves the default bank account."""
accounts = self.list()["BankAccounts"]
for account in accounts:
if account["BankAccount"]["default"]: