portfolio_toolkit.account package

Submodules

portfolio_toolkit.account.account module

class portfolio_toolkit.account.account.Account(name: str, currency: str, transactions: ~typing.List[~portfolio_toolkit.account.transaction.AccountTransaction] = <factory>)[source]

Bases: object

Represents an account with a list of transactions.

name: str
currency: str
transactions: List[AccountTransaction]
add_transaction(transaction: AccountTransaction)[source]

Adds a transaction to the account.

Parameters:

transaction (AccountTransaction) – The transaction to add.

add_transaction_from_dict(transaction_dict: dict)[source]

Adds a transaction to the account from a dictionary.

Parameters:

transaction_dict (dict) – Dictionary containing transaction details.

add_transaction_from_assets_dict(transaction_dict: dict)[source]

Adds a transaction to the account from a dictionary.

Parameters:

transaction_dict (dict) – Dictionary containing transaction details.

add_transaction_from_split_dict(split_dict: dict, amount: float = 0.0)[source]

Adds a transaction to the account from a stock split dictionary.

Parameters:

split_dict (dict) – Dictionary containing split information with keys: - date: Split date (str) - ticker: Ticker symbol of the asset - split_factor: Split ratio as float (e.g., 2.0 for 2:1 split, 0.1 for 1:10 reverse split) - amount: Amount of the asset affected by the split (default is 0.0)

classmethod to_dataframe(account: Account) DataFrame[source]

Converts the account transactions to a pandas DataFrame.

Returns:

DataFrame containing the account transactions.

Return type:

pd.DataFrame

get_amount() float[source]

Calculates the total amount of all transactions in the account.

Returns:

Total amount of all transactions.

Return type:

float

sort_transactions()[source]

Sorts the account transactions by date.

__init__(name: str, currency: str, transactions: ~typing.List[~portfolio_toolkit.account.transaction.AccountTransaction] = <factory>) None

portfolio_toolkit.account.transaction module

class portfolio_toolkit.account.transaction.AccountTransaction(transaction_date: date, transaction_type: str, amount: float, description: str | None = None)[source]

Bases: object

Represents a transaction in an account.

transaction_date: date
transaction_type: str
amount: float
description: str | None = None
classmethod to_dataframe(transactions: List[AccountTransaction]) DataFrame[source]

Convert a list of AccountTransaction objects to a pandas DataFrame.

__init__(transaction_date: date, transaction_type: str, amount: float, description: str | None = None) None

Module contents

class portfolio_toolkit.account.AccountTransaction(transaction_date: date, transaction_type: str, amount: float, description: str | None = None)[source]

Bases: object

Represents a transaction in an account.

__init__(transaction_date: date, transaction_type: str, amount: float, description: str | None = None) None
description: str | None = None
classmethod to_dataframe(transactions: List[AccountTransaction]) DataFrame[source]

Convert a list of AccountTransaction objects to a pandas DataFrame.

transaction_date: date
transaction_type: str
amount: float
class portfolio_toolkit.account.Account(name: str, currency: str, transactions: ~typing.List[~portfolio_toolkit.account.transaction.AccountTransaction] = <factory>)[source]

Bases: object

Represents an account with a list of transactions.

__init__(name: str, currency: str, transactions: ~typing.List[~portfolio_toolkit.account.transaction.AccountTransaction] = <factory>) None
add_transaction(transaction: AccountTransaction)[source]

Adds a transaction to the account.

Parameters:

transaction (AccountTransaction) – The transaction to add.

add_transaction_from_assets_dict(transaction_dict: dict)[source]

Adds a transaction to the account from a dictionary.

Parameters:

transaction_dict (dict) – Dictionary containing transaction details.

add_transaction_from_dict(transaction_dict: dict)[source]

Adds a transaction to the account from a dictionary.

Parameters:

transaction_dict (dict) – Dictionary containing transaction details.

add_transaction_from_split_dict(split_dict: dict, amount: float = 0.0)[source]

Adds a transaction to the account from a stock split dictionary.

Parameters:

split_dict (dict) – Dictionary containing split information with keys: - date: Split date (str) - ticker: Ticker symbol of the asset - split_factor: Split ratio as float (e.g., 2.0 for 2:1 split, 0.1 for 1:10 reverse split) - amount: Amount of the asset affected by the split (default is 0.0)

get_amount() float[source]

Calculates the total amount of all transactions in the account.

Returns:

Total amount of all transactions.

Return type:

float

sort_transactions()[source]

Sorts the account transactions by date.

classmethod to_dataframe(account: Account) DataFrame[source]

Converts the account transactions to a pandas DataFrame.

Returns:

DataFrame containing the account transactions.

Return type:

pd.DataFrame

name: str
currency: str
transactions: List[AccountTransaction]