From a513e09985be1495097d8e03c262508f8a9d6e05 Mon Sep 17 00:00:00 2001
From: "Hock, Martin" <martin.hock@fst.tu-darmstadt.de>
Date: Wed, 1 Mar 2023 20:09:56 +0100
Subject: [PATCH] Fix some merge fails

---
 ausarbeitung.ipynb        |  32 ++---
 datasheets/axles.json     |  74 +++++++++++
 datasheets/batteries.json |  68 ++++++++++
 datasheets/frame.json     | 272 ++++++++++++++++++++++++++++++++++++++
 datasheets/gears.json     |  74 +++++++++++
 datasheets/motors.json    |  14 ++
 datasheets/wheels.json    |  68 ++++++++++
 functions/classes.py      |  14 +-
 8 files changed, 588 insertions(+), 28 deletions(-)
 create mode 100644 datasheets/axles.json
 create mode 100644 datasheets/batteries.json
 create mode 100644 datasheets/frame.json
 create mode 100644 datasheets/gears.json
 create mode 100644 datasheets/motors.json
 create mode 100644 datasheets/wheels.json

diff --git a/ausarbeitung.ipynb b/ausarbeitung.ipynb
index 51ae5a0..264e2c7 100644
--- a/ausarbeitung.ipynb
+++ b/ausarbeitung.ipynb
@@ -54,16 +54,18 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "{'item description': 'Axle 5 studs', 'category': 'axle', 'price [Euro]': 0.001, 'mass [g]': 0.66, 'delivery time [days]': 3, 'Abmessung [studs]': 5}\n",
-      "front axle\n",
-      "{'Abmessung [studs]': 5,\n",
-      " 'category': 'axle',\n",
-      " 'color': 'grey',\n",
-      " 'delivery time [days]': 3,\n",
-      " 'item description': 'Axle 5 studs',\n",
-      " 'mass [g]': 0.66,\n",
-      " 'name': 'front axle',\n",
-      " 'price [Euro]': 0.001}\n"
+      "{'item number.1': 32073, 'item description': 'Axle 5 studs', 'category': 'axle', 'price [Euro]': 0.001, 'mass [g]': 0.66, 'delivery time [days]': 3, 'Abmessung [studs]': 5}\n"
+     ]
+    },
+    {
+     "ename": "KeyError",
+     "evalue": "'name'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
+      "Cell \u001b[1;32mIn[1], line 18\u001b[0m\n\u001b[0;32m     16\u001b[0m front_axle \u001b[39m=\u001b[39m classes\u001b[39m.\u001b[39mLegoComponent(\u001b[39m'\u001b[39m\u001b[39mfront axle\u001b[39m\u001b[39m'\u001b[39m,axles[\u001b[39m'\u001b[39m\u001b[39m32073\u001b[39m\u001b[39m'\u001b[39m])\n\u001b[0;32m     17\u001b[0m \u001b[39m# Both name and the data dict are optional parameters. You can view, add or edit the properties just any dict:\u001b[39;00m\n\u001b[1;32m---> 18\u001b[0m \u001b[39mprint\u001b[39m(front_axle\u001b[39m.\u001b[39;49mproperties[\u001b[39m'\u001b[39;49m\u001b[39mname\u001b[39;49m\u001b[39m'\u001b[39;49m])\n\u001b[0;32m     19\u001b[0m front_axle\u001b[39m.\u001b[39mproperties[\u001b[39m'\u001b[39m\u001b[39mcolor\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39mgrey\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m     20\u001b[0m \u001b[39m# Viewing dicts in one line is not easy to read, a better output comes with pretty print (pprint): \u001b[39;00m\n",
+      "\u001b[1;31mKeyError\u001b[0m: 'name'"
      ]
     }
    ],
@@ -84,15 +86,15 @@
     "\n",
     "# Create the component with the dict:\n",
     "front_axle = classes.LegoComponent('front axle',axles['32073'])\n",
-    "# Both name and the data dict are optional parameters. You can view, add or edit the properties just any dict:\n",
-    "print(front_axle.properties['name'])\n",
+    "# Both label and the data dict are optional parameters. You can view, add or edit the properties just any dict:\n",
+    "print(front_axle.properties['label'])\n",
     "front_axle.properties['color']= 'grey'\n",
     "# Viewing dicts in one line is not easy to read, a better output comes with pretty print (pprint): \n",
     "pprint.pprint(front_axle.properties)\n",
     "\n",
     "# Create the second axle\n",
     "back_axle = classes.LegoComponent()\n",
-    "back_axle.properties['name'] = 'back axle'\n",
+    "back_axle.properties['label'] = 'back axle'\n",
     "back_axle.properties.update(axles['32073']) \n",
     "# Do not use = here, otherwise you'd overwrite existing properties.\n",
     "back_axle.properties['color'] = 'grey'\n"
@@ -100,7 +102,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 7,
    "id": "b4a8e8c8",
    "metadata": {},
    "outputs": [
@@ -109,11 +111,11 @@
      "output_type": "stream",
      "text": [
       "{'category': 'wheel',\n",
-      " 'color': 'yellow',\n",
       " 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=2903c02#T=C',\n",
       " 'delivery time [days]': 5,\n",
       " 'diameter [mm]': 81.6,\n",
       " 'item description': 'wheel 81,6',\n",
+      " 'item number.1': 2903,\n",
       " 'mass [g]': 30.0,\n",
       " 'name': 'front wheel',\n",
       " 'paint': 'glossy',\n",
diff --git a/datasheets/axles.json b/datasheets/axles.json
new file mode 100644
index 0000000..98a0be2
--- /dev/null
+++ b/datasheets/axles.json
@@ -0,0 +1,74 @@
+{
+    "32073":{
+        "item number":32073,
+        "item description":"Axle 5 studs",
+        "category":"axle",
+        "price [Euro]":0.001,
+        "mass [g]":0.66,
+        "delivery time [days]":3,
+        "Abmessung [studs]":5
+    },
+    "44294":{
+        "item number":44294,
+        "item description":"Axle 7 studs",
+        "category":"axle",
+        "price [Euro]":0.01,
+        "mass [g]":1.05,
+        "delivery time [days]":3,
+        "Abmessung [studs]":7
+    },
+    "3707":{
+        "item number":3707,
+        "item description":"Axle 8 studs",
+        "category":"axle",
+        "price [Euro]":0.01,
+        "mass [g]":1.18,
+        "delivery time [days]":3,
+        "Abmessung [studs]":8
+    },
+    "60485":{
+        "item number":60485,
+        "item description":"Axle 9 studs",
+        "category":"axle",
+        "price [Euro]":0.01,
+        "mass [g]":1.3,
+        "delivery time [days]":7,
+        "Abmessung [studs]":9
+    },
+    "3737":{
+        "item number":3737,
+        "item description":"Axle 10 studs",
+        "category":"axle",
+        "price [Euro]":0.01,
+        "mass [g]":1.49,
+        "delivery time [days]":7,
+        "Abmessung [studs]":10
+    },
+    "23948":{
+        "item number":23948,
+        "item description":"Axle 11 studs",
+        "category":"axle",
+        "price [Euro]":0.15,
+        "mass [g]":1.65,
+        "delivery time [days]":3,
+        "Abmessung [studs]":11
+    },
+    "3708":{
+        "item number":3708,
+        "item description":"Axle 12 studs",
+        "category":"axle",
+        "price [Euro]":0.02,
+        "mass [g]":1.82,
+        "delivery time [days]":7,
+        "Abmessung [studs]":12
+    },
+    "50451":{
+        "item number":50451,
+        "item description":"Axle 16 studs",
+        "category":"axle",
+        "price [Euro]":0.75,
+        "mass [g]":2.37,
+        "delivery time [days]":3,
+        "Abmessung [studs]":16
+    }
+}
\ No newline at end of file
diff --git a/datasheets/batteries.json b/datasheets/batteries.json
new file mode 100644
index 0000000..13a4765
--- /dev/null
+++ b/datasheets/batteries.json
@@ -0,0 +1,68 @@
+{
+    "8878-1":{
+        "item number":"8878-1",
+        "item description":"Power Functions Rechargeable Battery Box",
+        "category":"battery",
+        "price [Euro]":55,
+        "mass [g] [g]":83.94,
+        "delivery time [days]":8,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?S=8878-1#T=S&O={%22iconly%22:0}",
+        "output voltage [V]":7.4,
+        "dimensions [cm]":"15 x 15 x 3,5"
+    },
+    "8881-1":{
+        "item number":"8881-1",
+        "item description":"Power Functions Battery Box",
+        "category":"battery",
+        "price [Euro]":12,
+        "mass [g] [g]":179.4,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?S=8881-1#T=S&O={%22iconly%22:0}",
+        "output voltage [V]":9.0,
+        "dimensions [cm]":"8,8 x 6,3 x 3,2"
+    },
+    "88000-1":{
+        "item number":"88000-1",
+        "item description":"Lego AAA Battery Box",
+        "category":"battery",
+        "price [Euro]":30,
+        "mass [g] [g]":97.24,
+        "delivery time [days]":6,
+        "data source":"https:\/\/www.brickowl.de\/catalog\/lego-aaa-battery-box-set-88000",
+        "output voltage [V]":9.0,
+        "dimensions [cm]":"15,3 x 15,1 x 3,9"
+    },
+    "2847c01":{
+        "item number":"2847c01",
+        "item description":"Electric 9V Battery Box",
+        "category":"battery",
+        "price [Euro]":2,
+        "mass [g] [g]":172.7,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=2847c01&name=Electric%209V%20Battery%20Box%204%20x%2014%20x%204%20with%20Red%20Buttons%20and%20Contact%20Plate%20with%20Dark%20Gray%20Base%20(2846%20\/%202847c00)&category=%5BElectric,%20Battery%20Box%5D#T=S&O={%22iconly%22:0}",
+        "output voltage [V]":9.0,
+        "dimensions [cm]":"11,2 x 3,2 x 3,2"
+    },
+    "59510":{
+        "item number":59510,
+        "item description":"LEGO Power Functions Battery Box ",
+        "category":"battery",
+        "price [Euro]":18,
+        "mass [g] [g]":165.3,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.brickowl.de\/catalog\/lego-power-functions-battery-box-with-beam-connectors-with-on-off-sticker-59510",
+        "output voltage [V]":9.0,
+        "dimensions [cm]":"8,8 x 6,4 x 3,2"
+    },
+    "84599":{
+        "item number":84599,
+        "item description":"Electric 9V Power Functions Battery Box (Rechargeable)",
+        "category":"battery",
+        "price [Euro]":120,
+        "mass [g] [g]":82.0,
+        "delivery time [days]":8,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=84599&name=Electric%209V%20Battery%20Box%20Power%20Functions%20(Rechargeable)%20with%20Dark%20Bluish%20Gray%20Bottom&category=%5BElectric,%20Battery%20Box%5D#T=S&O={%22iconly%22:0}",
+        "output voltage [V]":9.0,
+        "dimensions [cm]":"15 x 15 x 3,5"
+    }
+}
\ No newline at end of file
diff --git a/datasheets/frame.json b/datasheets/frame.json
new file mode 100644
index 0000000..1361bdf
--- /dev/null
+++ b/datasheets/frame.json
@@ -0,0 +1,272 @@
+{
+    "39790":{
+        "item number":39790,
+        "item description":"Technic, Liftarm, Modified Frame Thick 11 x 15 Open Center",
+        "category":"frame",
+        "price [Euro]":2.19,
+        "mass [g]":12.96,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=39790#T=C",
+        "Abmessung [studs]":"11 x 15 x 1"
+    },
+    "32532":{
+        "item number":32532,
+        "item description":"Technic, Brick 6 x 8 Open Center",
+        "category":"frame",
+        "price [Euro]":0.18,
+        "mass [g]":8.0,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32532#T=C",
+        "Abmessung [studs]":"6 x 8 x 1"
+    },
+    "32531":{
+        "item number":32531,
+        "item description":"Technic, Brick 4 x 6 Open Center",
+        "category":"frame",
+        "price [Euro]":0.1,
+        "mass [g]":5.0,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32531&idColor=11#T=C&C=11",
+        "Abmessung [studs]":"4 x 6 x 1"
+    },
+    "3700":{
+        "item number":3700,
+        "item description":"Technic, Brick 1 x 2 with Hole",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.82,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3700#T=C",
+        "Abmessung [studs]":"1 x 2"
+    },
+    "3701":{
+        "item number":3701,
+        "item description":"Technic, Brick 1 x 4 with Holes",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":1.46,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3701#T=C",
+        "Abmessung [studs]":"1 x 4 x 1"
+    },
+    "3702":{
+        "item number":3702,
+        "item description":"Technic, Brick 1 x 8 with Holes",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":2.85,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3702#T=C",
+        "Abmessung [studs]":"1 x 8 x 1"
+    },
+    "2730":{
+        "item number":2730,
+        "item description":"Technic, Brick 1 x 10 with Holes",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":3.67,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=2730#T=C",
+        "Abmessung [studs]":"1 x 10 x 1"
+    },
+    "3895":{
+        "item number":3895,
+        "item description":"Technic, Brick 1 x 12 with Holes",
+        "category":"frame",
+        "price [Euro]":0.03,
+        "mass [g]":4.2,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3895#T=C",
+        "Abmessung [studs]":"1 x 12 x 1"
+    },
+    "32018":{
+        "item number":32018,
+        "item description":"Technic, Brick 1 x 14 with Holes",
+        "category":"frame",
+        "price [Euro]":0.03,
+        "mass [g]":4.92,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32018#T=C",
+        "Abmessung [studs]":"1 x 14 x 1"
+    },
+    "3703":{
+        "item number":3703,
+        "item description":"Technic, Brick 1 x 16 with Holes",
+        "category":"frame",
+        "price [Euro]":0.07,
+        "mass [g]":5.87,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3703#T=C",
+        "Abmessung [studs]":"1 x 16 x 1"
+    },
+    "32524":{
+        "item number":32524,
+        "item description":"Technic, Liftarm Thick 1 x 7",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":1.79,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32524&name=Technic,%20Liftarm%20Thick%201%20x%207&category=%5BTechnic,%20Liftarm%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"1 x 7"
+    },
+    "40490":{
+        "item number":40490,
+        "item description":"Technic, Liftarm Thick 1 x 9",
+        "category":"frame",
+        "price [Euro]":0.02,
+        "mass [g]":2.59,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=40490&name=Technic,%20Liftarm%20Thick%201%20x%209&category=%5BTechnic,%20Liftarm%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"1 x 9"
+    },
+    "32525":{
+        "item number":32525,
+        "item description":"Technic, Liftarm Thick 1 x 11",
+        "category":"frame",
+        "price [Euro]":0.02,
+        "mass [g]":2.8,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32525&name=Technic,%20Liftarm%20Thick%201%20x%2011&category=%5BTechnic,%20Liftarm%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"1 x 11"
+    },
+    "41239":{
+        "item number":41239,
+        "item description":"Technic, Liftarm Thick 1 x 13",
+        "category":"frame",
+        "price [Euro]":0.05,
+        "mass [g]":3.3,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=41239&name=Technic,%20Liftarm%20Thick%201%20x%2013&category=%5BTechnic,%20Liftarm%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"1 x 13"
+    },
+    "32278":{
+        "item number":32278,
+        "item description":"Technic, Liftarm Thick 1 x 15",
+        "category":"frame",
+        "price [Euro]":0.05,
+        "mass [g]":4.0,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32278&name=Technic,%20Liftarm%20Thick%201%20x%2015&category=%5BTechnic,%20Liftarm%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"1 x 15"
+    },
+    "3713":{
+        "item number":3713,
+        "item description":"Technic Bush",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.14,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3713&name=Technic%20Bush&category=%5BTechnic%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":1
+    },
+    "32123":{
+        "item number":32123,
+        "item description":"Technic Bush 1\/2 Smooth",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.01,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=4265c&name=Technic%20Bush%201\/2%20Smooth&category=%5BTechnic%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":1
+    },
+    "3749":{
+        "item number":3749,
+        "item description":"Technic, Axle 1L with Pin without Friction Ridges",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.22,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3749&name=Technic,%20Axle%20%201L%20with%20Pin%20without%20Friction%20Ridges&category=%5BTechnic,%20Axle%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"0,75 x 2 x 0,55"
+    },
+    "6538":{
+        "item number":6538,
+        "item description":"Technic, Axle Connector 2L (Ridged Undetermined Type)",
+        "category":"frame",
+        "price [Euro]":0.03,
+        "mass [g]":0.4,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=6538#T=C",
+        "Abmessung [studs]":"?"
+    },
+    "6536":{
+        "item number":6536,
+        "item description":"Technic, Axle and Pin Connector Perpendicular",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.39,
+        "delivery time [days]":7,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=6536&name=Technic,%20Axle%20and%20Pin%20Connector%20Perpendicular&category=%5BTechnic,%20Connector%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"1x 2 x 1"
+    },
+    "32138":{
+        "item number":32138,
+        "item description":"Technic, Pin Double with Axle Hole",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.96,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32138&name=Technic,%20Pin%20Double%20with%20Axle%20Hole&category=%5BTechnic,%20Pin%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"?"
+    },
+    "14720":{
+        "item number":14720,
+        "item description":"Technic, Liftarm, Modified H-Shape Thick 3 x 5 Perpendicular",
+        "category":"frame",
+        "price [Euro]":0.08,
+        "mass [g]":2.29,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=14720&name=Technic,%20Liftarm,%20Modified%20H-Shape%20Thick%203%20x%205%20Perpendicular&category=%5BTechnic,%20Liftarm%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"3 x 5 x 1"
+    },
+    "48989":{
+        "item number":48989,
+        "item description":"Technic, Pin Connector Perpendicular 3L with 4 Pins",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":1.22,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=48989&name=Technic,%20Pin%20Connector%20Perpendicular%203L%20with%204%20Pins&category=%5BTechnic,%20Connector%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"3 x 3 x 1"
+    },
+    "55615":{
+        "item number":55615,
+        "item description":"Technic, Pin Connector Perpendicular 3 x 3 Bent with 4 Pins",
+        "category":"frame",
+        "price [Euro]":0.1,
+        "mass [g]":1.9,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=55615&name=Technic,%20Pin%20Connector%20Perpendicular%203%20x%203%20Bent%20with%204%20Pins&category=%5BTechnic,%20Connector%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":"4 x 4 x 1"
+    },
+    "32556":{
+        "item number":32556,
+        "item description":"Technic, Pin 3L without Friction Ridges",
+        "category":"frame",
+        "price [Euro]":0.1,
+        "mass [g]":0.25,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32556&name=Technic,%20Pin%203L%20without%20Friction%20Ridges&category=%5BTechnic,%20Pin%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":1
+    },
+    "3673":{
+        "item number":3673,
+        "item description":"Technic, Pin without Friction Ridges",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.16,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3673&name=Technic,%20Pin%20without%20Friction%20Ridges&category=%5BTechnic,%20Pin%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":1
+    },
+    "32054":{
+        "item number":32054,
+        "item description":"Technic, Pin 4L with Friction Ridges and Stop Bush",
+        "category":"frame",
+        "price [Euro]":0.01,
+        "mass [g]":0.33,
+        "delivery time [days]":3,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32054&name=Technic,%20Pin%203L%20with%20Friction%20Ridges%20and%20Stop%20Bush&category=%5BTechnic,%20Pin%5D#T=S&O={%22iconly%22:0}",
+        "Abmessung [studs]":1
+    }
+}
\ No newline at end of file
diff --git a/datasheets/gears.json b/datasheets/gears.json
new file mode 100644
index 0000000..db6e1c8
--- /dev/null
+++ b/datasheets/gears.json
@@ -0,0 +1,74 @@
+{
+    "3647":{
+        "item number":3647,
+        "item description":"Gear 8 Tooth",
+        "category":"gear",
+        "price [Euro]":0.14,
+        "mass [g]":0.16,
+        "delivery time [days]":11
+    },
+    "94925":{
+        "item number":94925,
+        "item description":"Gear 16 Tooth",
+        "category":"gear",
+        "price [Euro]":0.2,
+        "mass [g]":0.7,
+        "delivery time [days]":12
+    },
+    "32269":{
+        "item number":32269,
+        "item description":"Gear 20 Tooth",
+        "category":"gear",
+        "price [Euro]":0.36,
+        "mass [g]":1.4,
+        "delivery time [days]":13
+    },
+    "3648":{
+        "item number":3648,
+        "item description":"Gear 24 Tooth",
+        "category":"gear",
+        "price [Euro]":0.32,
+        "mass [g]":1.17,
+        "delivery time [days]":11
+    },
+    "3650":{
+        "item number":3650,
+        "item description":"Gear 24 Tooth Crown",
+        "category":"gear",
+        "price [Euro]":0.09,
+        "mass [g]":1.03,
+        "delivery time [days]":13
+    },
+    "3649":{
+        "item number":3649,
+        "item description":"Gear 40 Tooth",
+        "category":"gear",
+        "price [Euro]":0.81,
+        "mass [g]":3.76,
+        "delivery time [days]":11
+    },
+    "32498":{
+        "item number":32498,
+        "item description":"Gear 36 Tooth",
+        "category":"gear",
+        "price [Euro]":0.88,
+        "mass [g]":3.5,
+        "delivery time [days]":12
+    },
+    "6588":{
+        "item number":6588,
+        "item description":"Gear Worm Gearbox",
+        "category":"gear",
+        "price [Euro]":1.63,
+        "mass [g]":4.5,
+        "delivery time [days]":11
+    },
+    "4716":{
+        "item number":4716,
+        "item description":"Gear Worm Screw",
+        "category":"gear",
+        "price [Euro]":0.54,
+        "mass [g]":0.6,
+        "delivery time [days]":12
+    }
+}
\ No newline at end of file
diff --git a/datasheets/motors.json b/datasheets/motors.json
new file mode 100644
index 0000000..3109efa
--- /dev/null
+++ b/datasheets/motors.json
@@ -0,0 +1,14 @@
+{
+    "8882-1":{
+        "input voltage [V]":9
+    },
+    "8883-1":{
+        "input voltage [V]":9
+    },
+    "88003-1":{
+        "input voltage [V]":9
+    },
+    "nan":{
+        "input voltage [V]":9
+    }
+}
\ No newline at end of file
diff --git a/datasheets/wheels.json b/datasheets/wheels.json
new file mode 100644
index 0000000..6f1736b
--- /dev/null
+++ b/datasheets/wheels.json
@@ -0,0 +1,68 @@
+{
+    "4265":{
+        "item number":4265,
+        "item description":"wheel 14",
+        "category":"wheel",
+        "related items":59895,
+        "price [Euro]":0.02,
+        "mass [g]":0.5,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=4265cc01#T=C",
+        "diameter [mm]":14.0
+    },
+    "3482":{
+        "item number":3482,
+        "item description":"wheel 24",
+        "category":"wheel",
+        "related items":3483,
+        "price [Euro]":0.01,
+        "mass [g]":3.0,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3482c01#T=C",
+        "diameter [mm]":24.0
+    },
+    "56904":{
+        "item number":56904,
+        "item description":"wheel 43,2",
+        "category":"wheel",
+        "related items":30699,
+        "price [Euro]":0.11,
+        "mass [g]":13.0,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=56904c02#T=C",
+        "diameter [mm]":43.2
+    },
+    "41896":{
+        "item number":41896,
+        "item description":"wheel 56",
+        "category":"wheel",
+        "related items":41897,
+        "price [Euro]":0.45,
+        "mass [g]":23.0,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=41896c04#T=C",
+        "diameter [mm]":56.0
+    },
+    "2903":{
+        "item number":2903,
+        "item description":"wheel 81,6",
+        "category":"wheel",
+        "related items":2902,
+        "price [Euro]":1.31,
+        "mass [g]":30.0,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=2903c02#T=C",
+        "diameter [mm]":81.6
+    },
+    "88517":{
+        "item number":88517,
+        "item description":"wheel 100,6",
+        "category":"wheel",
+        "related items":11957,
+        "price [Euro]":1.25,
+        "mass [g]":40.0,
+        "delivery time [days]":5,
+        "data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=88517c02#T=C",
+        "diameter [mm]":100.6
+    }
+}
\ No newline at end of file
diff --git a/functions/classes.py b/functions/classes.py
index 309bb87..3a51f00 100644
--- a/functions/classes.py
+++ b/functions/classes.py
@@ -6,14 +6,13 @@ from enum import Enum, auto
 import uuid
 from typing import List, Dict, Optional
 import json
-import copy
-import operator
 
 
 # TODO
 # - Docstrings
 # - Beschreibung von Teilen (-> properties) -> Raus aus dem Konstruktor rein in ein dict. (Deep-Copy)
 #   - Erstmal als Shallow Copy umgesetzt, wir verwenden momentan keine nested dicts
+#   - Deep Copy erstmal beibehalten auf branch dev-bh
 # - Minimalbeispiel für KPIs -> halb umgesetzt -> mit get_components veranschaulichen
 # - Änderungen an Beispiel umsetzen
 
@@ -23,16 +22,6 @@ import operator
 # - Export als GraphViz -> Nä Semeseter
 
 
-
-class ComponentCategory(Enum):
-    BATTERY = auto()
-    MOTOR = auto()
-    FRAME = auto()
-    WHEEL = auto()
-    AXLE = auto()
-    GEAR = auto()
-
-
 class AggregationLayer(Enum):
     SYSTEM = auto()
     ASSEMBLY = auto()
@@ -50,7 +39,6 @@ class LegoComponent:
             self.properties['label'] = label
         if datasheet is not None:
             self.properties.update(datasheet)
-            self.properties[]
         for prop in more_properties:
             if isinstance(prop, dict):
                 self.properties.update(prop)
-- 
GitLab