From 0ec04143762d8d54af2c50f241a9138e2d1c854e Mon Sep 17 00:00:00 2001 From: Abigail Charime Date: Sat, 3 Apr 2021 12:52:49 -0700 Subject: [PATCH 1/6] Created Vendor and Item classes and created methods add, remove, and get_by_category/Wave01 and Wave02 --- swap_meet/clothing.py | 0 swap_meet/decor.py | 0 swap_meet/electronics.py | 0 swap_meet/item.py | 6 ++++++ swap_meet/vendor.py | 27 +++++++++++++++++++++++++++ 5 files changed, 33 insertions(+) create mode 100644 swap_meet/clothing.py create mode 100644 swap_meet/decor.py create mode 100644 swap_meet/electronics.py create mode 100644 swap_meet/item.py create mode 100644 swap_meet/vendor.py diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py new file mode 100644 index 000000000..e69de29bb diff --git a/swap_meet/decor.py b/swap_meet/decor.py new file mode 100644 index 000000000..e69de29bb diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py new file mode 100644 index 000000000..e69de29bb diff --git a/swap_meet/item.py b/swap_meet/item.py new file mode 100644 index 000000000..fab244adc --- /dev/null +++ b/swap_meet/item.py @@ -0,0 +1,6 @@ +class Item: + def __init__(self, category = ""): + if category == None: + self.category = "" + else: + self.category = category \ No newline at end of file diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py new file mode 100644 index 000000000..fdfb8119b --- /dev/null +++ b/swap_meet/vendor.py @@ -0,0 +1,27 @@ +from swap_meet.item import Item +class Vendor: + def __init__(self, inventory = None): + if inventory == None: + self.inventory = [] + else: + self.inventory = inventory + + def add(self, item): + result = self.inventory.append(item) + return item + + def remove(self, item): + if item in self.inventory: + result = self.inventory.remove(item) + return item + else: + return False + + def get_by_category(self, category): + item_list = [] + for item in self.inventory: + if item.category == category: + item_list.append(item) + return item_list + + From f23c13251d30a3b7a1b9b45a23403db115281f33 Mon Sep 17 00:00:00 2001 From: Abigail Charime Date: Sat, 3 Apr 2021 19:39:01 -0700 Subject: [PATCH 2/6] Added method swap_items to Vendor class and Added __str__ to Item class/ Wave03 --- swap_meet/item.py | 6 +++++- swap_meet/vendor.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index fab244adc..481c61f04 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -3,4 +3,8 @@ def __init__(self, category = ""): if category == None: self.category = "" else: - self.category = category \ No newline at end of file + self.category = category + + def __str__(self): + return "Hello World!" + diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index fdfb8119b..dad998447 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -24,4 +24,16 @@ def get_by_category(self, category): item_list.append(item) return item_list - + def swap_items(self, other_vendor, vendor_item, other_vendor_item): + if vendor_item not in self.inventory or other_vendor_item not in other_vendor.inventory: + return False + else: + for item in other_vendor.inventory: + if item == other_vendor_item: + self.inventory.append(item) + other_vendor.inventory.remove(item) + for item in self.inventory: + if item == vendor_item: + other_vendor.inventory.append(item) + self.inventory.remove(item) + return True \ No newline at end of file From a6f904456afc4c625ba4b17866e4f72fa7434695 Mon Sep 17 00:00:00 2001 From: Abigail Charime Date: Mon, 5 Apr 2021 15:33:42 -0700 Subject: [PATCH 3/6] Created three child classes Clothing,Decor, and Electronics with the Parent Class being Item / Wave05 --- swap_meet/clothing.py | 8 ++++++++ swap_meet/decor.py | 11 +++++++++++ swap_meet/electronics.py | 9 +++++++++ swap_meet/item.py | 12 ++++++++++-- swap_meet/vendor.py | 19 +++++++++++++++++++ 5 files changed, 57 insertions(+), 2 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index e69de29bb..8933b7c0f 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -0,0 +1,8 @@ + +from swap_meet.item import Item +class Clothing(Item): + def __init__(self, category = "", condition = 0): + self.category = "Clothing" + self.condition = condition + def __str__(self): + return "The finest clothing you could wear." diff --git a/swap_meet/decor.py b/swap_meet/decor.py index e69de29bb..62307753f 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -0,0 +1,11 @@ + +from swap_meet.item import Item + +class Decor(Item): + def __init__(self, category = "", condition = 0): + self.category = "Decor" + self.condition = condition + + def __str__(self): + return "Something to decorate your space." + diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index e69de29bb..93546cc6b 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -0,0 +1,9 @@ + +from swap_meet.item import Item + +class Electronics(Item): + def __init__(self, category = "", condition = 0): + self.category = "Electronics" + self.condition = condition + def __str__(self): + return "A gadget full of buttons and secrets." \ No newline at end of file diff --git a/swap_meet/item.py b/swap_meet/item.py index 481c61f04..6c4c322f0 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -1,10 +1,18 @@ class Item: - def __init__(self, category = ""): + def __init__(self, category = "", condition = 0): if category == None: self.category = "" else: self.category = category - + self.condition = condition def __str__(self): return "Hello World!" + + def condition_description(self): + if self.condition == 5: + five_condition_description = "Great Condition" + return five_condition_description + elif self.condition == 1: + one_condition_description = 'Poor Condition' + return one_condition_description diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index dad998447..c7c571b0f 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -1,4 +1,5 @@ from swap_meet.item import Item + class Vendor: def __init__(self, inventory = None): if inventory == None: @@ -36,4 +37,22 @@ def swap_items(self, other_vendor, vendor_item, other_vendor_item): if item == vendor_item: other_vendor.inventory.append(item) self.inventory.remove(item) + return True + + def swap_first_item(self, other_vendor): + # first vendor is self.inventory + # second vendor is other_vendor.inventory + # You could potentially use super here or call the + # swap_items method because it is similar? + if self.inventory == [] or other_vendor.inventory == []: + return False + else: + for item in self.inventory: + if item == self.inventory[0]: + other_vendor.inventory.append(item) + self.inventory.remove(item) + for item in other_vendor.inventory: + if item == other_vendor.inventory[0]: + self.inventory.append(item) + other_vendor.inventory.remove(item) return True \ No newline at end of file From 9fd6311b940793c9eaf7d1ea8d43c1e949b252d1 Mon Sep 17 00:00:00 2001 From: Abigail Charime Date: Tue, 6 Apr 2021 10:52:27 -0700 Subject: [PATCH 4/6] Added get_best_by_category method andswap_best_by_category method / Wave06 --- swap_meet/clothing.py | 1 + swap_meet/electronics.py | 1 + swap_meet/item.py | 3 ++- swap_meet/vendor.py | 32 +++++++++++++++++++++++++++----- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index 8933b7c0f..52ead1856 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -4,5 +4,6 @@ class Clothing(Item): def __init__(self, category = "", condition = 0): self.category = "Clothing" self.condition = condition + def __str__(self): return "The finest clothing you could wear." diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 93546cc6b..091b0b25f 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -5,5 +5,6 @@ class Electronics(Item): def __init__(self, category = "", condition = 0): self.category = "Electronics" self.condition = condition + def __str__(self): return "A gadget full of buttons and secrets." \ No newline at end of file diff --git a/swap_meet/item.py b/swap_meet/item.py index 6c4c322f0..f52d94552 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -5,12 +5,13 @@ def __init__(self, category = "", condition = 0): else: self.category = category self.condition = condition + def __str__(self): return "Hello World!" def condition_description(self): if self.condition == 5: - five_condition_description = "Great Condition" + five_condition_description = "Great Condition" return five_condition_description elif self.condition == 1: one_condition_description = 'Poor Condition' diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index c7c571b0f..1380724bd 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -6,7 +6,7 @@ def __init__(self, inventory = None): self.inventory = [] else: self.inventory = inventory - + def add(self, item): result = self.inventory.append(item) return item @@ -40,10 +40,6 @@ def swap_items(self, other_vendor, vendor_item, other_vendor_item): return True def swap_first_item(self, other_vendor): - # first vendor is self.inventory - # second vendor is other_vendor.inventory - # You could potentially use super here or call the - # swap_items method because it is similar? if self.inventory == [] or other_vendor.inventory == []: return False else: @@ -55,4 +51,30 @@ def swap_first_item(self, other_vendor): if item == other_vendor.inventory[0]: self.inventory.append(item) other_vendor.inventory.remove(item) + return True + + def get_best_by_category(self, category): + largest_num = 0 + largest_item = None + for item in self.inventory: + if category == item.category: + if item.condition > largest_num: + largest_num = item.condition + largest_item = item + return largest_item + + def swap_best_by_category(self, other, my_priority, their_priority): + + if self.inventory == [] or other.inventory == []: + return False + else: + vendor_item = other.get_best_by_category(my_priority) + other_item = self.get_best_by_category(their_priority) + + self.inventory.append(vendor_item) + other.inventory.append(other_item) + + self.inventory.remove(other_item) + other.inventory.remove(vendor_item) + return True \ No newline at end of file From 1ad1d28fdca4fefcf22eab55d3802ba7a0054db7 Mon Sep 17 00:00:00 2001 From: Abigail Charime Date: Tue, 6 Apr 2021 15:45:26 -0700 Subject: [PATCH 5/6] Refractored code by using swap item method inside swap_first_item and swap_best_by_category methods --- swap_meet/item.py | 11 ++++++++++- swap_meet/vendor.py | 16 ++-------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index f52d94552..8e63e50e6 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -13,7 +13,16 @@ def condition_description(self): if self.condition == 5: five_condition_description = "Great Condition" return five_condition_description + elif self.condition == 4: + four_condition_description = "Good Condition" + return one_condition_description + elif self.condition == 3: + three_condition_description = "Okay Condition" + return one_condition_description + elif self.condition == 2: + two_condition_description = "Poor Condition" + return one_condition_description elif self.condition == 1: - one_condition_description = 'Poor Condition' + one_condition_description = "Very Poor Condition" return one_condition_description diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 1380724bd..cf4cf869e 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -43,14 +43,7 @@ def swap_first_item(self, other_vendor): if self.inventory == [] or other_vendor.inventory == []: return False else: - for item in self.inventory: - if item == self.inventory[0]: - other_vendor.inventory.append(item) - self.inventory.remove(item) - for item in other_vendor.inventory: - if item == other_vendor.inventory[0]: - self.inventory.append(item) - other_vendor.inventory.remove(item) + self.swap_items(other_vendor,self.inventory[0],other_vendor.inventory[0]) return True def get_best_by_category(self, category): @@ -70,11 +63,6 @@ def swap_best_by_category(self, other, my_priority, their_priority): else: vendor_item = other.get_best_by_category(my_priority) other_item = self.get_best_by_category(their_priority) - - self.inventory.append(vendor_item) - other.inventory.append(other_item) - - self.inventory.remove(other_item) - other.inventory.remove(vendor_item) + self.swap_items(other, other_item, vendor_item) return True \ No newline at end of file From 20aeddb936467c6c5a8f3156098a9da12aa1fb3c Mon Sep 17 00:00:00 2001 From: Abigail Charime Date: Tue, 6 Apr 2021 23:21:50 -0700 Subject: [PATCH 6/6] Added Docstrings and comments to code --- swap_meet/clothing.py | 3 +++ swap_meet/decor.py | 3 +++ swap_meet/electronics.py | 3 +++ swap_meet/item.py | 7 ++++++ swap_meet/vendor.py | 47 ++++++++++++++++++++++++++++++++++++++-- 5 files changed, 61 insertions(+), 2 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index 52ead1856..bcb0b42c1 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -6,4 +6,7 @@ def __init__(self, category = "", condition = 0): self.condition = condition def __str__(self): + ''' + reassigns the stringified item + ''' return "The finest clothing you could wear." diff --git a/swap_meet/decor.py b/swap_meet/decor.py index 62307753f..7c5c6acbb 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -7,5 +7,8 @@ def __init__(self, category = "", condition = 0): self.condition = condition def __str__(self): + ''' + reassigns the stringified item + ''' return "Something to decorate your space." diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 091b0b25f..4012cddec 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -7,4 +7,7 @@ def __init__(self, category = "", condition = 0): self.condition = condition def __str__(self): + ''' + reassigns the stringified item + ''' return "A gadget full of buttons and secrets." \ No newline at end of file diff --git a/swap_meet/item.py b/swap_meet/item.py index 8e63e50e6..cdc871d12 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -7,9 +7,16 @@ def __init__(self, category = "", condition = 0): self.condition = condition def __str__(self): + ''' + reassigns the stringified item + ''' return "Hello World!" def condition_description(self): + ''' + based on the condition number outputs + the appropriate condition description for the item. + ''' if self.condition == 5: five_condition_description = "Great Condition" return five_condition_description diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index cf4cf869e..7320165f8 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -8,10 +8,19 @@ def __init__(self, inventory = None): self.inventory = inventory def add(self, item): + ''' + Input: an item + Output: the Input item that was added to the inventory + ''' result = self.inventory.append(item) return item def remove(self, item): + ''' + Input: an item + Output: Either the the Input item that was + removed from the inventory or False + ''' if item in self.inventory: result = self.inventory.remove(item) return item @@ -19,6 +28,10 @@ def remove(self, item): return False def get_by_category(self, category): + ''' + Input: a category used to help get an item by category + Output: a list of items within the same category + ''' item_list = [] for item in self.inventory: if item.category == category: @@ -26,7 +39,17 @@ def get_by_category(self, category): return item_list def swap_items(self, other_vendor, vendor_item, other_vendor_item): - if vendor_item not in self.inventory or other_vendor_item not in other_vendor.inventory: + ''' + Input: the vendor to swap with, + the orginal vendor's item and the other vendor's item + + Output: Returns False if the items are not in either vendors inventory. + If if both items are avialble the code returns True and switches + other_vendor_item with vendor_item and vis versa. + Also removes the items switched from each inventory. + ''' + if (vendor_item not in self.inventory or + other_vendor_item not in other_vendor.inventory): return False else: for item in other_vendor.inventory: @@ -40,6 +63,13 @@ def swap_items(self, other_vendor, vendor_item, other_vendor_item): return True def swap_first_item(self, other_vendor): + ''' + Input: the vendor to swap with. + Output: Returns False if either the vendor or other_vendor + inventory is an empty list. If neither are empty lists the code + implements the swap.item method to swap the first item of each + inventory with the other and removes the items from their orginal lists. + ''' if self.inventory == [] or other_vendor.inventory == []: return False else: @@ -47,6 +77,11 @@ def swap_first_item(self, other_vendor): return True def get_best_by_category(self, category): + ''' + Input: the category to filer by. + Output: Returns the item with the largest condition + and that matches the same type of category as the input. + ''' largest_num = 0 largest_item = None for item in self.inventory: @@ -57,7 +92,15 @@ def get_best_by_category(self, category): return largest_item def swap_best_by_category(self, other, my_priority, their_priority): - + ''' + Input: the vendor to swap with, + the orginal vendor's item and the other vendor's item + + Output: Returns False if either vendor or other's inventory are empty lists. + If both inventories are not empty lists the code returns True and uses the method + get_best_category and the approprate argument to find the best condition. + The code and uses the method swap_item to swap my_priority and their_priority. + ''' if self.inventory == [] or other.inventory == []: return False else: