From 899c02caecf0606f6e94874694fb8cfd77da4244 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Fri, 2 Apr 2021 18:42:58 -0700 Subject: [PATCH 01/13] module for wave 1 complete- tests passes --- swap_meet/item.py | 0 swap_meet/vendor.py | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 swap_meet/item.py create mode 100644 swap_meet/vendor.py diff --git a/swap_meet/item.py b/swap_meet/item.py new file mode 100644 index 000000000..e69de29bb diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py new file mode 100644 index 000000000..f4723446d --- /dev/null +++ b/swap_meet/vendor.py @@ -0,0 +1,21 @@ + + +class Vendor: + + def __init__(self, inventory = None): + if inventory: + self.inventory = inventory + else: + self.inventory = [] + + def add(self, new_item): + + self.inventory.append(new_item) + return new_item + + def remove(self, item_to_remove): + for item in self.inventory: + if item == item_to_remove: + self.inventory.remove(item_to_remove) + return item_to_remove + return False From f31c20e2bddb4e554154f3170c52730be63f7940 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Fri, 2 Apr 2021 19:03:30 -0700 Subject: [PATCH 02/13] Item constructor complete- test in wave 2 passed --- swap_meet/item.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/swap_meet/item.py b/swap_meet/item.py index e69de29bb..55f412c10 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -0,0 +1,10 @@ + + +class Item: + + def __init__(self, category = None): + if category: + self.category = category + else: + self.category = "" + From 443b06e94713ca31381a0a7269465720c91f3bd6 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Fri, 2 Apr 2021 19:17:02 -0700 Subject: [PATCH 03/13] get_by_category method added to vendor class- all tests in wave 2 passed --- swap_meet/vendor.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index f4723446d..7abaa5c2a 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -19,3 +19,10 @@ def remove(self, item_to_remove): self.inventory.remove(item_to_remove) return item_to_remove return False + + def get_by_category(self, category): + items_list = [] + for item in self.inventory: + if item.category == category: + items_list.append(item) + return items_list From d4dc02ac178300b56594d68fc04c88cbca124e5f Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Fri, 2 Apr 2021 19:28:46 -0700 Subject: [PATCH 04/13] new method of __str__ added to item class 1 test in wave 3 passed --- swap_meet/item.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swap_meet/item.py b/swap_meet/item.py index 55f412c10..c75e8450c 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -8,3 +8,5 @@ def __init__(self, category = None): else: self.category = "" + def __str__(self): + return "Hello World!" \ No newline at end of file From fe5e3e6c4a218b3d8fcd7ddd226099e69c6816fd Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Sun, 4 Apr 2021 19:03:22 -0700 Subject: [PATCH 05/13] swap_items method added, all tests in wave 3 passed --- swap_meet/vendor.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 7abaa5c2a..6aa45ece1 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -13,6 +13,7 @@ def add(self, new_item): self.inventory.append(new_item) return new_item +#removes item_to_remove from self's inventory def remove(self, item_to_remove): for item in self.inventory: if item == item_to_remove: @@ -26,3 +27,13 @@ def get_by_category(self, category): if item.category == category: items_list.append(item) return items_list + + def swap_items(self, vendor_friend, my_item, their_item): + if self.remove(my_item): + if vendor_friend.remove(their_item): + vendor_friend.add(my_item) + self.add(their_item) + return True + else: + self.add(my_item) + return False From a41c1eebd8ffa95de71d29a8475a04d1b1ef2bdb Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Sun, 4 Apr 2021 19:25:33 -0700 Subject: [PATCH 06/13] method swap_first_item added. all tests in wave 4 passed --- swap_meet/vendor.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 6aa45ece1..fd9ce2576 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -37,3 +37,13 @@ def swap_items(self, vendor_friend, my_item, their_item): else: self.add(my_item) return False + + + def swap_first_item(self, vendor_friend): + if len(self.inventory) != 0 and len(vendor_friend.inventory) != 0: + first_item = self.inventory.pop(0) + friend_first_item = vendor_friend.inventory.pop(0) + self.add(friend_first_item) + vendor_friend.add(first_item) + return True + return False From aee0e0ee443fba117f74e5209b0528b03666c0d7 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Sun, 4 Apr 2021 21:47:32 -0700 Subject: [PATCH 07/13] new clothing, decor, and electronics classes created with str methods --- swap_meet/clothing.py | 6 ++++++ swap_meet/decor.py | 6 ++++++ swap_meet/electronics.py | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 swap_meet/clothing.py create mode 100644 swap_meet/decor.py create mode 100644 swap_meet/electronics.py diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py new file mode 100644 index 000000000..d7ac766c5 --- /dev/null +++ b/swap_meet/clothing.py @@ -0,0 +1,6 @@ +from swap_meet.item import Item + +class Clothing(Item): + + def __str__(self): + return "The finest clothing you could wear." diff --git a/swap_meet/decor.py b/swap_meet/decor.py new file mode 100644 index 000000000..a2da6ddce --- /dev/null +++ b/swap_meet/decor.py @@ -0,0 +1,6 @@ +from swap_meet.item import Item + +class Decor(Item): + + def __str__(self): + return "Something to decorate your space." \ No newline at end of file diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py new file mode 100644 index 000000000..7adc17d83 --- /dev/null +++ b/swap_meet/electronics.py @@ -0,0 +1,7 @@ +from swap_meet.item import Item + +class Electronics(Item): + + + def __str__(self): + return "A gadget full of buttons and secrets." \ No newline at end of file From 0ce30948f17844c13a5dbd172bf907afbbc16b33 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Sun, 4 Apr 2021 21:59:02 -0700 Subject: [PATCH 08/13] children classes -new __init__ method added, 3 wave 5 tests passed --- swap_meet/clothing.py | 3 +++ swap_meet/decor.py | 4 ++++ swap_meet/electronics.py | 3 +++ 3 files changed, 10 insertions(+) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index d7ac766c5..ee40f4541 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -2,5 +2,8 @@ class Clothing(Item): + def __init__(self): + self.category = "Clothing" + def __str__(self): return "The finest clothing you could wear." diff --git a/swap_meet/decor.py b/swap_meet/decor.py index a2da6ddce..b8b8ef668 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -2,5 +2,9 @@ class Decor(Item): + + def __init__(self): + self.category = "Decor" + def __str__(self): return "Something to decorate your space." \ No newline at end of file diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 7adc17d83..1768f6f60 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -3,5 +3,8 @@ class Electronics(Item): + def __init__(self): + self.category = "Electronics" + def __str__(self): return "A gadget full of buttons and secrets." \ No newline at end of file From 85a356cd1b12eec26c37870ed8fbcfffc90b3101 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Sun, 4 Apr 2021 23:04:16 -0700 Subject: [PATCH 09/13] condition attribute added, 4 out of 5 wave 5 tests passed --- swap_meet/clothing.py | 6 +++++- swap_meet/decor.py | 6 +++++- swap_meet/electronics.py | 7 ++++++- swap_meet/item.py | 27 +++++++++++++++++++++++++-- 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index ee40f4541..57b9b0b78 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -2,8 +2,12 @@ class Clothing(Item): - def __init__(self): + def __init__(self, condition = None ): self.category = "Clothing" + if condition: + self.condition = float(condition) + else: + self.condition = 0 def __str__(self): return "The finest clothing you could wear." diff --git a/swap_meet/decor.py b/swap_meet/decor.py index b8b8ef668..8dd30a03b 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -3,8 +3,12 @@ class Decor(Item): - def __init__(self): + def __init__(self, condition = None): self.category = "Decor" + if condition: + self.condition = float(condition) + else: + self.condition = "" def __str__(self): return "Something to decorate your space." \ No newline at end of file diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 1768f6f60..22107567b 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -3,8 +3,13 @@ class Electronics(Item): - def __init__(self): + def __init__(self, condition = None): self.category = "Electronics" + if condition: + self.condition = float(condition) + else: + self.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 c75e8450c..a90b4c8b2 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -2,11 +2,34 @@ class Item: - def __init__(self, category = None): + def __init__(self, category = None, condition = None): if category: self.category = category else: self.category = "" + if condition: + self.condition = float(condition) + else: + self.condition = "" +\ + + + + def __str__(self): - return "Hello World!" \ No newline at end of file + return "Hello World!" + + + + def condition_description(self): + if self.condtion > 4.0 : + return "super duper best condition" + elif self.conditon > 3.0 : + return "pretty alright!" + elif self.conditon > 2.0 : + return "Has seen better days" + elif self.condition > 1.0 : + return "maybe wash it once you get home" + elif self.conditon >= 0.0 : + return "pretty terrible!!!" \ No newline at end of file From c04eb8d6b30242c64e4a35731c6ed003210ad836 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Mon, 5 Apr 2021 17:58:51 -0700 Subject: [PATCH 10/13] all tests in wave 5 passed, new wave 6 methods created --- swap_meet/clothing.py | 8 ++------ swap_meet/decor.py | 7 ++----- swap_meet/electronics.py | 6 +----- swap_meet/item.py | 13 +++++-------- swap_meet/vendor.py | 23 +++++++++++++++++++++++ 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index 57b9b0b78..a610e885f 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -3,11 +3,7 @@ class Clothing(Item): def __init__(self, condition = None ): - self.category = "Clothing" - if condition: - self.condition = float(condition) - else: - self.condition = 0 - + super().__init__("Clothing", condition) + def __str__(self): return "The finest clothing you could wear." diff --git a/swap_meet/decor.py b/swap_meet/decor.py index 8dd30a03b..8a12bafd5 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -4,11 +4,8 @@ class Decor(Item): def __init__(self, condition = None): - self.category = "Decor" - if condition: - self.condition = float(condition) - else: - self.condition = "" + super().__init__("Decor", condition) + def __str__(self): return "Something to decorate your space." \ No newline at end of file diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 22107567b..27e4e475b 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -4,11 +4,7 @@ class Electronics(Item): def __init__(self, condition = None): - self.category = "Electronics" - if condition: - self.condition = float(condition) - else: - self.condition = "" + super().__init__("Electronics", condition) def __str__(self): diff --git a/swap_meet/item.py b/swap_meet/item.py index a90b4c8b2..a8844d93f 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -11,10 +11,7 @@ def __init__(self, category = None, condition = None): if condition: self.condition = float(condition) else: - self.condition = "" -\ - - + self.condition = 0 def __str__(self): @@ -23,13 +20,13 @@ def __str__(self): def condition_description(self): - if self.condtion > 4.0 : + if self.condition > 4.0 : return "super duper best condition" - elif self.conditon > 3.0 : + elif self.condition > 3.0 : return "pretty alright!" - elif self.conditon > 2.0 : + elif self.condition > 2.0 : return "Has seen better days" elif self.condition > 1.0 : return "maybe wash it once you get home" - elif self.conditon >= 0.0 : + elif self.condition >= 0.0 : return "pretty terrible!!!" \ No newline at end of file diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index fd9ce2576..73af300da 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -47,3 +47,26 @@ def swap_first_item(self, vendor_friend): vendor_friend.add(first_item) return True return False + + def get_best_by_category(self, category): + category_list = self.get_by_category(category) + if len(category_list) >= 1: + best_condition_item = category_list[0] + for item in category_list: + if item.condition > best_condition_item.condition: + best_condition_item = item + return best_condition_item + else: + return None + + def swap_best_by_category(self, other, my_priority, their_priority): + my_best_item = self.get_best_by_category(my_priority) + their_best_item = other.get_best_by_category(their_priority) + + if my_best_item and their_best_item: + self.swap_items(other, my_best_item, their_best_item) + return True + else: + return False + + From 0d54db581a2f8d3ffdba1fc88f890450e5e33344 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Mon, 5 Apr 2021 19:54:01 -0700 Subject: [PATCH 11/13] all tests in all waves passed --- swap_meet/vendor.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 73af300da..b63efa9fa 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -23,9 +23,13 @@ def remove(self, item_to_remove): def get_by_category(self, category): items_list = [] + print(category) for item in self.inventory: - if item.category == category: + #print(item.category) + if str(item.category) == str(category): + print(item.category) items_list.append(item) + print(items_list) return items_list def swap_items(self, vendor_friend, my_item, their_item): @@ -50,19 +54,26 @@ def swap_first_item(self, vendor_friend): def get_best_by_category(self, category): category_list = self.get_by_category(category) + #print(category_list) if len(category_list) >= 1: best_condition_item = category_list[0] for item in category_list: if item.condition > best_condition_item.condition: best_condition_item = item + #print(best_condition_item) return best_condition_item else: return None def swap_best_by_category(self, other, my_priority, their_priority): - my_best_item = self.get_best_by_category(my_priority) - their_best_item = other.get_best_by_category(their_priority) + #print(my_priority, their_priority) + my_best_item = self.get_best_by_category(their_priority) + their_best_item = other.get_best_by_category(my_priority) + + # print(my_best_item) + # print(their_best_item) + if my_best_item and their_best_item: self.swap_items(other, my_best_item, their_best_item) return True From abd481b96174349d6c06194dee88384aae5333d6 Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Tue, 6 Apr 2021 19:05:16 -0700 Subject: [PATCH 12/13] refactored code for method swap_first_item --- swap_meet/vendor.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index b63efa9fa..3b6b1bac0 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -9,7 +9,6 @@ def __init__(self, inventory = None): self.inventory = [] def add(self, new_item): - self.inventory.append(new_item) return new_item @@ -25,7 +24,6 @@ def get_by_category(self, category): items_list = [] print(category) for item in self.inventory: - #print(item.category) if str(item.category) == str(category): print(item.category) items_list.append(item) @@ -45,34 +43,24 @@ def swap_items(self, vendor_friend, my_item, their_item): def swap_first_item(self, vendor_friend): if len(self.inventory) != 0 and len(vendor_friend.inventory) != 0: - first_item = self.inventory.pop(0) - friend_first_item = vendor_friend.inventory.pop(0) - self.add(friend_first_item) - vendor_friend.add(first_item) + self.swap_items(vendor_friend, self.inventory[0], vendor_friend.inventory[0]) return True return False def get_best_by_category(self, category): category_list = self.get_by_category(category) - #print(category_list) if len(category_list) >= 1: best_condition_item = category_list[0] for item in category_list: if item.condition > best_condition_item.condition: best_condition_item = item - #print(best_condition_item) return best_condition_item else: return None def swap_best_by_category(self, other, my_priority, their_priority): - #print(my_priority, their_priority) my_best_item = self.get_best_by_category(their_priority) their_best_item = other.get_best_by_category(my_priority) - - - # print(my_best_item) - # print(their_best_item) if my_best_item and their_best_item: self.swap_items(other, my_best_item, their_best_item) From 27b1b9f19678d68acb9c56709c4b35a2bc84526c Mon Sep 17 00:00:00 2001 From: Daniela Sanchez Date: Tue, 6 Apr 2021 19:21:28 -0700 Subject: [PATCH 13/13] refactored methods in vendor class --- swap_meet/vendor.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 3b6b1bac0..440c042fd 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -22,12 +22,9 @@ def remove(self, item_to_remove): def get_by_category(self, category): items_list = [] - print(category) for item in self.inventory: - if str(item.category) == str(category): - print(item.category) + if item.category == category: items_list.append(item) - print(items_list) return items_list def swap_items(self, vendor_friend, my_item, their_item): @@ -55,17 +52,14 @@ def get_best_by_category(self, category): if item.condition > best_condition_item.condition: best_condition_item = item return best_condition_item - else: - return None + return None def swap_best_by_category(self, other, my_priority, their_priority): my_best_item = self.get_best_by_category(their_priority) their_best_item = other.get_best_by_category(my_priority) - if my_best_item and their_best_item: self.swap_items(other, my_best_item, their_best_item) return True - else: - return False + return False