Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test-classes.ipynb 4.40 KiB
In [2]:
# import functions.lego_classes as lego_classes
from functions.classes import LegoItem
from functions.classes import LegoComponent
In [2]:
# Test manually creating some item and components

item1 = LegoItem(1,0.10,10)
item2 = LegoItem(3,0.30,30)
item3 = LegoItem(2, 0.2,20)



component1 = LegoComponent()
# component1.add_item(item1)
component2 = LegoComponent(item2) 

componentall = LegoComponent([component1,component2]) # This will be saved as items for some reasaon
# component3 = LegoComponent(item3,component1)
# component3.add(item2) # Can't really use an item twice
# component3.add(component2)
print(componentall.items)
Out [2]:
[<functions.lego_classes.LegoComponent object at 0x000002720F4BF7F0>, <functions.lego_classes.LegoComponent object at 0x000002720F4BF790>]
In [9]:
## Let's test the json stuff
import json
# import tkinter as tk
In [10]:
# First level list handling

def read_json(file_path):
    with open(file_path, 'r') as f:
        data = json.load(f)
    return data
json_list_data = read_json('example_item_data_list.json')
# that produces a list, we'd prefer a dict

# Clever way to just create an item for each listed element
def create_all_items(data):
    items = []
    for item_data in data:
        item_number = item_data.get('item_number')
        mass = item_data.get('mass')
        delivery_time = item_data.get('delivery_time')
        # specific_data = item_data.get('specific_data', {})
        item = LegoItem(item_number, mass, delivery_time)
        items.append(item)
    return items

all_items = create_all_items(json_list_data)    

# How to get entries for a specific item
def get_item_by_number(data, item_number):
    datasheet = [item for item in data if item['item_number' ] == item_number] 
    return datasheet

sheet1 = get_item_by_number(json_list_data, 2) # this is a list? meh

In [14]:
# vs first level dict handling

with open('example_item_data_dict.json') as json_file:
    json_dict = json.load(json_file)
    print(type(json_dict))
    print(json_dict["1"])

sheet2_from_dict = json_dict["2"]
# Create an item for this:
def create_item_from_sheet(dict):
    item_number = dict["item_number"]
    mass = dict["mass"]
    delivery_time =["delivery_time"]
    item = LegoItem(item_number, mass, delivery_time)
    return item

itemfromdict = create_item_from_sheet(sheet2_from_dict)

Out [14]:
<class 'dict'>
{'item_number': 1, 'mass': 10, 'delivery_time': 1}