From f127328227128613d0c962c4281cad33cbbccd32 Mon Sep 17 00:00:00 2001 From: counterweight Date: Wed, 6 Sep 2023 14:33:03 +0200 Subject: [PATCH] Some improvement on constants naming --- camisatoshi_wordpress_reports/constants.py | 27 +++++++++--------- camisatoshi_wordpress_reports/controllers.py | 13 +++++---- camisatoshi_wordpress_reports/order.py | 30 ++++++++++---------- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/camisatoshi_wordpress_reports/constants.py b/camisatoshi_wordpress_reports/constants.py index fce09a6..652c7f3 100644 --- a/camisatoshi_wordpress_reports/constants.py +++ b/camisatoshi_wordpress_reports/constants.py @@ -6,22 +6,23 @@ DEFAULT_DOTENV_FILEPATH = ".camisatoshi-wordpress-reports/.env" ### Order keys -order_keys = SimpleNamespace() -order_keys.meta_data = "meta_data" -order_keys.total = "total" -order_keys.line_items = "line_items" +ORDER_KEYS = SimpleNamespace() +ORDER_KEYS.id = "id" +ORDER_KEYS.meta_data = "meta_data" +ORDER_KEYS.total = "total" +ORDER_KEYS.line_items = "line_items" -order_keys.line_item_keys = SimpleNamespace() -order_keys.line_item_keys.sku = "sku" -order_keys.line_item_keys.quantity = "quantity" -order_keys.line_item_keys.total = "total" +ORDER_KEYS.line_item_keys = SimpleNamespace() +ORDER_KEYS.line_item_keys.sku = "sku" +ORDER_KEYS.line_item_keys.quantity = "quantity" +ORDER_KEYS.line_item_keys.total = "total" -custom_meta_data_keys = SimpleNamespace() -custom_meta_data_keys.is_settled_um = "is_settled_um" -custom_meta_data_keys.sats_received = "sats_received" +CUSTOM_META_DATA_KEYS = SimpleNamespace() +CUSTOM_META_DATA_KEYS.is_settled_um = "is_settled_um" +CUSTOM_META_DATA_KEYS.sats_received = "sats_received" ### Other -um_first_agreement_percentage = 0.5 -bbo_royalty_fee = 0.2 +UM_FIRST_AGREEMENT_PERCENTAGE = 0.5 +BBO_ROYALTY_FEE_PERCENTAGE = 0.2 diff --git a/camisatoshi_wordpress_reports/controllers.py b/camisatoshi_wordpress_reports/controllers.py index 09656dc..cb8f906 100644 --- a/camisatoshi_wordpress_reports/controllers.py +++ b/camisatoshi_wordpress_reports/controllers.py @@ -9,9 +9,10 @@ from woocommerce import API from camisatoshi_wordpress_reports.order import Order, Orders from camisatoshi_wordpress_reports.constants import ( - um_first_agreement_percentage, + ORDER_KEYS, + UM_FIRST_AGREEMENT_PERCENTAGE, DEFAULT_DOTENV_FILEPATH, - bbo_royalty_fee, + BBO_ROYALTY_FEE_PERCENTAGE, ) from camisatoshi_wordpress_reports.report_building import ( OrderObtentionChainBuilder, @@ -109,16 +110,16 @@ def generate_um_report( for order in unsettled_orders: report.append( { - "order_id": order["id"], + "order_id": order[ORDER_KEYS.id], "sku": relevant_sku, "units_sold": order.units_of_sku(relevant_sku), "eur_income": order.sales_of_sku(relevant_sku), "sats_income": order.sats_received_for_sku(relevant_sku), "sats_owed_to_um": ( order.sats_received_for_sku(relevant_sku) - * (1 - bbo_royalty_fee) + * (1 - BBO_ROYALTY_FEE_PERCENTAGE) ) - * um_first_agreement_percentage, + * UM_FIRST_AGREEMENT_PERCENTAGE, } ) logger.info("Report generated.") @@ -157,7 +158,7 @@ def generate_sku_report(start_date, end_date, sku): for order in relevant_orders: report.append( { - "order_id": order["id"], + "order_id": order[ORDER_KEYS.id], "sku": sku, "units_sold": order.units_of_sku(sku), "eur_income": order.sales_of_sku(sku), diff --git a/camisatoshi_wordpress_reports/order.py b/camisatoshi_wordpress_reports/order.py index edce067..353787d 100644 --- a/camisatoshi_wordpress_reports/order.py +++ b/camisatoshi_wordpress_reports/order.py @@ -2,8 +2,8 @@ import logging from typing import Dict, Collection from camisatoshi_wordpress_reports.constants import ( - order_keys, - custom_meta_data_keys, + ORDER_KEYS, + CUSTOM_META_DATA_KEYS, ) from camisatoshi_wordpress_reports.utils import safe_zero_division @@ -19,32 +19,32 @@ class Order: def meta_data_entries(self): return { meta_data_entry["key"]: meta_data_entry["value"] - for meta_data_entry in self.raw_data[order_keys.meta_data] + for meta_data_entry in self.raw_data[ORDER_KEYS.meta_data] } def units_of_sku(self, sku: str) -> int: units = 0 - for line in self[order_keys.line_items]: - if line[order_keys.line_item_keys.sku] == sku: - units += line[order_keys.line_item_keys.quantity] + for line in self[ORDER_KEYS.line_items]: + if line[ORDER_KEYS.line_item_keys.sku] == sku: + units += line[ORDER_KEYS.line_item_keys.quantity] return units def sales_of_sku(self, sku: str) -> float: sales = 0 - for line in self[order_keys.line_items]: - if line[order_keys.line_item_keys.sku] == sku: - sales += float(line[order_keys.line_item_keys.total]) + for line in self[ORDER_KEYS.line_items]: + if line[ORDER_KEYS.line_item_keys.sku] == sku: + sales += float(line[ORDER_KEYS.line_item_keys.total]) return sales def sats_received_for_sku(self, sku: str) -> float: - total_order_eur = float(self[order_keys.total]) + total_order_eur = float(self[ORDER_KEYS.total]) eur_of_sku = self.sales_of_sku(sku) monetary_weight_of_sku_in_order = safe_zero_division( eur_of_sku, total_order_eur ) total_order_sats_received = float( - self.meta_data_entries[custom_meta_data_keys.sats_received] + self.meta_data_entries[CUSTOM_META_DATA_KEYS.sats_received] ) sats_received_for_sku = ( monetary_weight_of_sku_in_order * total_order_sats_received @@ -53,8 +53,8 @@ class Order: return sats_received_for_sku def contains_sku(self, sku: str) -> bool: - for item in self[order_keys.line_items]: - if item[order_keys.line_item_keys.sku] == sku: + for item in self[ORDER_KEYS.line_items]: + if item[ORDER_KEYS.line_item_keys.sku] == sku: return True return False @@ -65,7 +65,7 @@ class Order: def is_settled_with_um(self): is_settled = self.meta_data_entries.get( - custom_meta_data_keys.is_settled_um, None + CUSTOM_META_DATA_KEYS.is_settled_um, None ) return bool(is_settled) @@ -107,7 +107,7 @@ class Orders: for order in self: if not order.contains_meta_data_entry( - custom_meta_data_keys.sats_received + CUSTOM_META_DATA_KEYS.sats_received ): orders_without_sats_received.append(order) continue