Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • philip.mahouttchi-hosseini/quality-kpi-final
  • boris.dasgupta/quality-kpi
  • hani.husseini/quality-kpi
  • tolga.guelec/quality-kpi
  • eva.schlott/quality-kpi
  • artashes.manukyan/quality-kpi
  • reinhart.tjahjadi/quality-kpi-reinhart-jason-tjahjadi
  • sotiris.giovannis/quality-kpi-giovanns
  • luis.gleich/quality-kpi
  • julius.damm/quality-kpi
  • gaganpreet.singh/quality-kpi
  • felix.fassler/aufgabe-1-felixf
  • benjamin.gross/quality-kpi
  • yixing.tao/quality-kpi-2024
  • louis.randa/quality-kpi
  • konstantinos.boiadjiev/quality-kpi
  • ammon.wuendisch/quality-kpi
  • tarish.kalra/quality-kpi
  • constantin.messingfeld/quality-kpi
  • manuel.kaster/quality-kpi
  • rafi.noordin/quality-kpi-rafinoordin
  • fst-tuda/public/lehre/quality-kpi
  • robert.schaefer1/quality-kpi
  • luca_tobias.nuecker/quality-kpi
  • calvin.weide/quality-kpi
  • maximilian.gross1/quality-kpi
  • christoph.froehlich/quality-kpi
  • young-min.kong/quality-kpi
  • thomas.gruber/quality-kpi
  • dennis.dibbern/quality-kpi
  • luca.sommer/quality-kpi
  • tushar.sharma/quality-kpi
  • philipp.schmidt2/quality-kpi
  • jakob.knoblach/quality-kpi
  • diogo.fernandes_costa/quality-kpi
  • zidane.buermann/quality-kpi
  • elias.rausch/quality-kpi
  • vincent.jestaedt/quality-kpi
  • santiago.ramirez_saldana/quality-kpi
  • jan.wech/quality-kpi
  • noah.michel1/lerneinheit-1-noah-michel
  • bastian.bickel/quality-kpi
  • linus.schuette/quality-kpi
  • henrik.buechs/quality-kpi
  • florian.weiss/quality-kpi
  • julie.kickstein/quality-kpi
  • paul.zuendel/quality-kpi
  • valentin.kaemmerer/quality-kpi
  • erwin.durasow/quality-kpi
  • david.buening/quality-kpi
  • keanu.engel/engel-keanu-auto
  • leo.mensler/quality-kpi
  • tahsin.ahmad/quality-kpi
  • moritz.roth/moritz-roth
  • jonathan.kollmann/quality-kpi
  • noah.waltmann/quality-kpi
  • daniel.burgos/quality-kpi
  • nilay.kuslugil/quality-kpi
  • yvan.ngoune/quality-kpi
  • eric.hahn/quality-kpi
  • andy.zheng/quality-kpi
  • junghyun.seo/quality-kpi
  • fabian.roesch1/quality-kpi
  • ole.quiring/quality-kpi
  • jonas.dietrich/quality-kpi
  • marius.stumpe/quality-kpi
  • maurizio.fell/quality-kpi
  • harry.kristanto/quality-kpi-prakdig-hk
  • paul.bobrinskoy/quality-kpi
  • vladimir.pascari/quality-kpi-vladimir-pascari
  • paul_konrad.braun/quality-kpi
  • leon.dawkins/quality-kpi
  • noel.schwibus/quality-kpi
  • bianca.beer/quality-kpi
  • pascal.pohlenz/quality-kpi
  • martin.cao/quality-kpi
  • malte.kramp/quality-kpi
  • jannik.hoffmann/quality-kpi
  • ishwor.kapri/quality-kpi
  • dhiraj.baral/quality-kpi
  • tobias.erdmann/quality-kpi
  • naveen.mohan/quality-kpi
  • filip.fetzer/quality-kpi
  • jakob.koch/quality-kpi
  • sascha.lamm/quality-kpi
  • lilly.laubenheimer/quality-kpi
  • amen.bouzouraa/quality-kpi
  • louis.senff/quality-kpi
  • francisco.flores/quality-kpi
  • benit.iberhysaj/quality-kpi
  • daniel.vratnjan/quality-kpi
  • henri.sprickmann/quality-kpi
  • tim.ostendorf/quality-kpi
  • maximilian.kopp1/lerneinheit-i-quality-kpi
  • zineb.karri/quality-kpi
  • bryan.lauren/quality-kpi
  • leon.herz/quality-kpi
  • zhibo.zhao/quality-kpi
  • samuel.neidert/quality-kpi
  • jiacheng.wang/quality-kpi
  • lucas.czarnecki/quality-kpi
  • lukas.ripp/quality-kpi
  • nikolai.brueckner/quality-kpi-nikolai-brueckner
  • niklas.ulmer/quality-kpi
  • lea_sophie.heering/quality-kpi
  • julia.kipp/quality-kpi
  • andres.rivera/quality-kpi
  • felix.meyners/quality-kpi
  • paul.sipp/quality-kpi
  • pascal.grym/quality-kpi
  • simon.peters/quality-kpi
  • justus.naewie/quality-kpi
  • alicia.sachs/quality-kpi
  • pascal.schraut/quality-kpi
  • jonas.dissinger/quality-kpi
  • mattheo.beyer/quality-kpi
  • adonay.johannes/quality-kpi
  • konrad.winkhaus/winkhaus-konrad-2809351-64-le-1
  • miko.boml/quality-kpi
  • bob.putz/quality-kpi
  • buesra.akkaya/quality-kpi
  • anton.littmann/quality-kpi
  • julian.volgmann/quality-kpi
  • soner.elbudak/quality-kpi
  • ilhan_mert.dumlupinar/quality-kpi
  • ibrahim.alsaleh/quality-kpi
  • amina.anizi/quality-kpi
  • Philipp.List/quality-kpi
  • greta.kirchhoff/quality-kpi
  • rowie.samuel/quality-kpi
130 results
Show changes
Commits on Source (47)
Showing
with 806 additions and 930 deletions
__pycache__/
\ No newline at end of file
# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Python.gitlab-ci.yml
# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/python/tags/
image: python:latest
# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
# Pip's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/topics/caching/
#
# If you want to also cache the installed packages, you have to install
# them in a virtualenv and cache it as well.
cache:
paths:
- .cache/pip
- venv/
before_script:
- python --version # For debugging
- pip install virtualenv
- virtualenv venv
- source venv/bin/activate
- which python
test:
tags:
- env:docker
script:
#- python setup.py test
- pip install flake8==5.0.4 flake8-nb==0.5.2 # you can also use tox
- pwd
- ls -lh
- flake8 --max-line-length 88 ./functions/*.py
- flake8-nb --max-line-length 88 ausarbeitung.ipynb
#run:
#tags:
#- env:docker
#script:
#- pip install -r requirements.txt
#- python trial_json.py
# an alternative approach is to install and run:
# - pip install dist/*
# run the command here
# artifacts:
# paths:
# - dist/*.whl
#pages:
# tags:
# - env:docker
# script:
# - pip install sphinx sphinx-rtd-theme
# - cd doc
# - make html
# - mv build/html/ ../public/
# artifacts:
# paths:
# - public
# rules:
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
0
0 Name: New Model.ldr
0 Author:
1 71 180 -48 0 1 0 0 0 1 0 0 0 1 56904.dat
1 0 180 -48 0 1 0 0 0 1 0 0 0 1 30699.dat
1 4 260 -57.8657 -50 1 0 0 0 1 0 0 0 1 2730.dat
1 71 180 -48 -30 0 0 1 0 1 0 -1 0 0 32073.dat
1 47 180 -48 -30 1 0 0 0 1 0 0 0 1 3713.dat
1 47 180 -48 -70 1 0 0 0 1 0 0 0 1 3713.dat
1 71 340 -48 0 1 0 0 0 1 0 0 0 1 56904.dat
1 0 340 -48 0 1 0 0 0 1 0 0 0 1 30699.dat
1 71 340 -48 -30 0 0 1 0 1 0 -1 0 0 32073.dat
1 47 340 -48 -30 1 0 0 0 1 0 0 0 1 3713.dat
1 47 340 -48 -70 1 0 0 0 1 0 0 0 1 3713.dat
1 47 220 -128 -70 1 0 0 0 0 1 0 -1 0 40490.dat
1 47 220 -208 -70 0 0 1 0 1 0 -1 0 0 32073.dat
1 47 220 -208 -25 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -35 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -45 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -55 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -85 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -95 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -105 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -208 -115 -1 0 0 0 1 0 0 0 -1 32123.dat
1 47 220 -48 -60 0 0 1 0 -1 0 1 0 0 3673.dat
File added
# Lerneinheit FAIRe Qualitäts-KPIs
## Einführung
Siehe Aufgabenstellung in Moodle.
Siehe Skript und Aufgabenstellung in [moodle](https://moodle.tu-darmstadt.de/course/view.php?id=36368&section=3#tabs-tree-start).
## Materialien
Die Aufgabenstellung im PDF-Format steht in Moodle bereit.
In diesem GitLab Repo finden Sie:
- Package *functions* (`functions/`): Beinhaltet die Module *classes* und *calculation_rules*
- Modul classes (`functions/classes.py`): Werkzeuge zum Aufbau und zur Bearbeitung der LEGO Konstruktionen
- Modul calculation_rules (`functions/calculation_rules.py`): Funktionen zum Berechnen der FAIR Quality KPIs
- Datenblätter (`datasheets/`): Datenblätter ausgewählter LEGO Komponenten im JSON-Format
- Jupyter Notebook (`ausarbeitung.ipynb`): Zur Bearbeitung der Aufgaben und Abgabe. Beinhaltet ein Minimalbeispiel zur Verwendung der Werkzeuge.
- Package functions (`functions/`): Beinhaltet die Module `classes` und `calculation_rules`
- Modul classes (`functions/classes.py`): Werkzeuge zum Aufbau und zur Bearbeitung der LEGO-Konstruktionen
- Modul calculation_rules (`functions/calculation_rules.py`): Funktionen zum Berechnen der FAIRen
Qualitäts-KPIs
- Python-Hilfsdatei (`functions/__init__.py`): Notwendige Datei für die Erzeugung eines Python-Pakets
- Datenblätter (`datasheets/`): Datenblätter ausgewählter LEGO-Komponenten im JSON-Format
- Teilebibliothek (`LeoCAD/library.bin`): Teilebibliothek für das Programm LeoCAD
- Abbildungsordner (`figures`): Ordner zum Ablegen der LeoCAD-Screenshots
- Beispiel-Notebook (`minimalbeispiel.ipynb`): Einführendes Beispiel zur Verwendung der Werkzeuge
- Ausarbeitungs-Notebook (`ausarbeitung.ipynb`): Vorlage zur Bearbeitung der Aufgaben und Abgabe
## Ausarbeitung
Die Ausarbeitung erfolgt im Notebook `ausarbeitung.ipynb`. In diesem ist bereits eine Gliederung vorgegeben.
## Abgabe
Die Abgabe erfolgt über moodle.
Die Abgabe erfolgt über [moodle](https://moodle.tu-darmstadt.de/mod/assign/view.php?id=1249192). Committen und pushen Sie zunächst Ihre Änderungen auf GitLab und laden Sie von dort Ihr gesamtes Repo als .zip-Datei herunter (ein direkter Download vom JupyterHub ist leider nicht möglich). Benennen Sie die .zip-Datei nach dem folgenden Schema:
<p style="text-align: center;"> &lt;Nachname&gt;_&lt;Vorname&gt;_&lt;MATR-NR&gt;_&lt;GRUPPEN-NR&gt;_le_1.zip</p>
Abgaben, die diese Namenskonvention nicht erfüllen, können in der Bewertung nicht berücksichtigt werden.
Laden Sie diese .zip-Datei in moodle hoch. Insbesondere sollten vorhanden sein:
- Jupyter Notebook mit Erklärungen und Darstellungen von LeoCAD
- Python-Funktionen für die Berechnung der KPIs
- Die exportierte(n) JSON-Datei(en) des Fahrzeuges (inkl. der hinzugefügten KPIs)
\ No newline at end of file
This diff is collapsed.
......@@ -5,8 +5,9 @@
"category":"axle",
"price [Euro]":0.001,
"mass [g]":0.66,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32073#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32073",
"dimension [studs]":5
},
"44294":{
......@@ -15,8 +16,9 @@
"category":"axle",
"price [Euro]":0.01,
"mass [g]":1.05,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=44294#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=44294",
"dimension [studs]":7
},
"3707":{
......@@ -25,8 +27,9 @@
"category":"axle",
"price [Euro]":0.01,
"mass [g]":1.18,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3707#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3707",
"dimension [studs]":8
},
"60485":{
......@@ -35,8 +38,9 @@
"category":"axle",
"price [Euro]":0.01,
"mass [g]":1.3,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":7,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=60485#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=60485",
"dimension [studs]":9
},
"3737":{
......@@ -45,8 +49,9 @@
"category":"axle",
"price [Euro]":0.01,
"mass [g]":1.49,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":7,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3737#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3737",
"dimension [studs]":10
},
"23948":{
......@@ -55,8 +60,9 @@
"category":"axle",
"price [Euro]":0.15,
"mass [g]":1.65,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=23948#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=23948",
"dimension [studs]":11
},
"3708":{
......@@ -65,8 +71,9 @@
"category":"axle",
"price [Euro]":0.02,
"mass [g]":1.82,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":7,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3708#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3708",
"dimension [studs]":12
},
"50451":{
......@@ -75,8 +82,9 @@
"category":"axle",
"price [Euro]":0.75,
"mass [g]":2.37,
"environmental impact [kg CO2e /kg]":11.03,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=50451#T=S&O={%22iconly%22:0}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=50451",
"dimension [studs]":16
}
}
\ No newline at end of file
{
"8878-1":{
"item number":"8878-1",
"item description":"Power Functions Rechargeable Battery Box",
"category":"battery",
"price [Euro]":55,
"mass [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",
"related items":"8882-1, 8883-1, 88003-1",
"price [Euro]":12,
"mass [g]":179.4,
"environmental impact [kg CO2e /kg]":6.95,
"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,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?S=8881-1",
"output voltage [V]":9,
"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]":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]":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]":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]":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
"""Create json metadata files from an excel file."""
import os
import sys
from collections import namedtuple
from typing import Dict, List, NamedTuple
import pandas as pd
# pandas is using another dependency called openpyxl
# both need to be installed
COLUMN_FOR_INDEX_IN_EXCEL = 0
KEYWORD_TO_IGNORE_COLUMN = "ignore"
KEYWORD_TO_IGNORE_SHEET = "ignore"
HELP_TXT = """
1. The source excel file. (e.g. test.xlsx)
2. The destination folder for the json file. (e.g. test_folder)
3. Override the folder if existing. (OPTIONAL, False)
Providing only '-- help' will show this text and exit.
"""
def read_terminal_arguments() -> NamedTuple:
"""Read terminal arguments.
1. File to read from.
2. Name of the folder to store the json files.
3. Override the destination folder if existing, defaults False.
"""
terminal_args = namedtuple(
"terminal_args",
["source", "destination", "override"],
defaults=["test.xlsx", "test", True]
)
if len(sys.argv) == 1: # No arguments passed.
return terminal_args() # noqa
if sys.argv[1] in ["help", "--help", "-h", "?", "h"]:
print(HELP_TXT)
raise SystemExit
try:
arg_1 = sys.argv[1]
except IndexError:
raise SystemExit
try:
arg_2 = sys.argv[2]
except IndexError:
raise SystemExit
try:
arg_3 = sys.argv[3]
except IndexError:
arg_3 = False
terminal_args = terminal_args(
source=arg_1,
destination=arg_2,
override=bool(arg_3)
)
return terminal_args
def read_excel_file(path: str) -> Dict[str, pd.DataFrame]:
"""Read the sheets of the Excel file into multiple dataframes."""
if not os.path.exists(path):
raise FileNotFoundError(
f"No file found at '{path}'"
)
sheets_as_dataframes = {}
with pd.ExcelFile(path) as xls:
for sheet_name in xls.sheet_names:
if sheet_name.startswith(KEYWORD_TO_IGNORE_SHEET):
continue
excel_file = pd.read_excel(
xls,
sheet_name,
index_col=COLUMN_FOR_INDEX_IN_EXCEL
)
sheets_as_dataframes.update({sheet_name: excel_file})
return sheets_as_dataframes
def make_json(dataframes: Dict[str, pd.DataFrame]) -> Dict[str, str]:
"""Create the json strings from the excel data."""
json_files = {}
for sheet_name, dataframe in dataframes.items():
dataframe.dropna(inplace=True, axis=1)
dropped_columns = [column for column in dataframe.columns
if column.startswith(KEYWORD_TO_IGNORE_COLUMN)]
dataframe.drop(dropped_columns, axis=1, inplace=True,
errors="ignore")
print(sheet_name)
json_string = dataframe.to_json(orient="index", indent=4, force_ascii=False)
json_files.update({sheet_name: json_string})
return json_files
def save_json_files(folder_name: str, jsons_files: Dict[str, str],
override_files: bool) -> None:
"""Save the json strings to a '.json' file format."""
path_to_json_folder = os.path.join(
os.path.abspath(__file__),
os.pardir,
folder_name
)
path_to_json_folder = os.path.abspath(path_to_json_folder)
path_exists = os.path.exists(path_to_json_folder)
if path_exists and not override_files:
raise FileExistsError(
f"Folder: {path_to_json_folder} exists. Pass override argument "
f"to override the folder. See --help for more."
)
if not path_exists:
os.mkdir(path_to_json_folder)
for json_name, json_sting in jsons_files.items():
file_name = f"{json_name}.json"
file_path = os.path.join(path_to_json_folder, file_name)
with open(file_path, "w") as f:
f.write(json_sting)
def main():
"""The main function."""
# Get terminal arguments.
terminal_arguments = read_terminal_arguments()
# Read the Excel file.
path_to_file = os.path.abspath(os.path.join(
os.path.abspath(__file__),
os.pardir,
terminal_arguments.source)
)
excel_sheets_as_dataframes = read_excel_file(path_to_file)
excel_sheets_as_json = make_json(excel_sheets_as_dataframes)
save_json_files(terminal_arguments.destination, excel_sheets_as_json,
terminal_arguments.override)
if __name__ == "__main__":
t = main()
......@@ -5,8 +5,9 @@
"category":"frame",
"price [Euro]":2.19,
"mass [g]":12.96,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=39790#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=39790",
"dimension [studs]":"11 x 15 x 1"
},
"32532":{
......@@ -15,8 +16,9 @@
"category":"frame",
"price [Euro]":0.18,
"mass [g]":8.0,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32532#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32532",
"dimension [studs]":"6 x 8 x 1"
},
"32531":{
......@@ -25,8 +27,9 @@
"category":"frame",
"price [Euro]":0.1,
"mass [g]":5.0,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32531&idColor=11#T=C&C=11",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32531",
"dimension [studs]":"4 x 6 x 1"
},
"3700":{
......@@ -35,8 +38,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.82,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3700#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3700",
"dimension [studs]":"1 x 2"
},
"3701":{
......@@ -45,8 +49,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":1.46,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3701#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3701",
"dimension [studs]":"1 x 4 x 1"
},
"3702":{
......@@ -55,8 +60,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":2.85,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":5,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3702#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3702",
"dimension [studs]":"1 x 8 x 1"
},
"2730":{
......@@ -65,8 +71,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":3.67,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":5,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=2730#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=2730",
"dimension [studs]":"1 x 10 x 1"
},
"3895":{
......@@ -75,8 +82,9 @@
"category":"frame",
"price [Euro]":0.03,
"mass [g]":4.2,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":5,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3895#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3895",
"dimension [studs]":"1 x 12 x 1"
},
"32018":{
......@@ -85,8 +93,9 @@
"category":"frame",
"price [Euro]":0.03,
"mass [g]":4.92,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":5,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32018#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32018",
"dimension [studs]":"1 x 14 x 1"
},
"3703":{
......@@ -95,8 +104,9 @@
"category":"frame",
"price [Euro]":0.07,
"mass [g]":5.87,
"environmental impact [kg CO2e /kg]":11.93,
"delivery time [days]":5,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3703#T=C",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3703",
"dimension [studs]":"1 x 16 x 1"
},
"32524":{
......@@ -105,8 +115,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":1.79,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32524",
"dimension [studs]":"1 x 7"
},
"40490":{
......@@ -115,18 +126,20 @@
"category":"frame",
"price [Euro]":0.02,
"mass [g]":2.59,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=40490",
"dimension [studs]":"1 x 9"
},
"32525":{
"item number":32525,
"64290":{
"item number":64290,
"item description":"Technic, Liftarm Thick 1 x 11",
"category":"frame",
"price [Euro]":0.02,
"mass [g]":2.8,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32525",
"dimension [studs]":"1 x 11"
},
"41239":{
......@@ -135,8 +148,9 @@
"category":"frame",
"price [Euro]":0.05,
"mass [g]":3.3,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=41239",
"dimension [studs]":"1 x 13"
},
"32278":{
......@@ -145,8 +159,9 @@
"category":"frame",
"price [Euro]":0.05,
"mass [g]":4.0,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32278",
"dimension [studs]":"1 x 15"
},
"3713":{
......@@ -155,18 +170,20 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.14,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3713",
"dimension [studs]":1
},
"32123":{
"item number":32123,
"item description":"Technic Bush 1\/2 Smooth",
"item description":"Technic Bush 1/2 Smooth",
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.01,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=4265c",
"dimension [studs]":1
},
"3749":{
......@@ -175,48 +192,31 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.22,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3749",
"dimension [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",
"dimension [studs]":"?"
},
"6536":{
"item number":6536,
"item description":"Technic, Axle and Pin Connector Perpendicular",
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.39,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=6536",
"dimension [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}",
"dimension [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,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=14720",
"dimension [studs]":"3 x 5 x 1"
},
"48989":{
......@@ -225,8 +225,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":1.22,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=48989",
"dimension [studs]":"3 x 3 x 1"
},
"55615":{
......@@ -235,8 +236,9 @@
"category":"frame",
"price [Euro]":0.1,
"mass [g]":1.9,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=55615",
"dimension [studs]":"4 x 4 x 1"
},
"32556":{
......@@ -245,8 +247,9 @@
"category":"frame",
"price [Euro]":0.1,
"mass [g]":0.25,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32556",
"dimension [studs]":1
},
"3673":{
......@@ -255,8 +258,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.16,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3673",
"dimension [studs]":1
},
"32054":{
......@@ -265,8 +269,9 @@
"category":"frame",
"price [Euro]":0.01,
"mass [g]":0.33,
"environmental impact [kg CO2e /kg]":11.93,
"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}",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32054",
"dimension [studs]":1
}
}
\ No newline at end of file
{
"3647":{
"item number":3647,
"item description":"Gear 8 Tooth",
"6589":{
"item number":6589,
"item description":"Gear 12 Tooth Bevel",
"category":"gear",
"price [Euro]":0.14,
"mass [g]":0.16,
"price [Euro]":0.01,
"mass [g]":0.29,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":12,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=6589"
},
"10928":{
"item number":10928,
"item description":"Gear 8 Tooth with Dual Face",
"category":"gear",
"price [Euro]":0.01,
"mass [g]":0.22,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":11,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3647#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=10928"
},
"94925":{
"item number":94925,
......@@ -14,44 +25,39 @@
"category":"gear",
"price [Euro]":0.2,
"mass [g]":0.7,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":12,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=94925#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=94925"
},
"32269":{
"item number":32269,
"item description":"Gear 20 Tooth",
"18575":{
"item number":18575,
"item description":"Gear 20 Tooth Double Bevel",
"category":"gear",
"price [Euro]":0.36,
"mass [g]":1.4,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":13,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32269#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32269"
},
"3648":{
"item number":3648,
"24505":{
"item number":24505,
"item description":"Gear 24 Tooth",
"category":"gear",
"price [Euro]":0.32,
"mass [g]":1.17,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":11,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3648#T=C"
},
"3650":{
"item number":3650,
"item description":"Gear 24 Tooth Crown",
"category":"gear",
"price [Euro]":0.09,
"mass [g]":1.03,
"delivery time [days]":13,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3650#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3648"
},
"3649":{
"item number":3649,
"34432":{
"item number":34432,
"item description":"Gear 40 Tooth",
"category":"gear",
"price [Euro]":0.81,
"mass [g]":3.76,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":11,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=3649#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3649"
},
"32498":{
"item number":32498,
......@@ -59,8 +65,9 @@
"category":"gear",
"price [Euro]":0.88,
"mass [g]":3.5,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":12,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=32498#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=32498"
},
"6588":{
"item number":6588,
......@@ -68,8 +75,9 @@
"category":"gear",
"price [Euro]":1.63,
"mass [g]":4.5,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":11,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=6588#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=6588#T=C"
},
"4716":{
"item number":4716,
......@@ -77,7 +85,8 @@
"category":"gear",
"price [Euro]":0.54,
"mass [g]":0.6,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":12,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?P=4716#T=C"
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=4716#T=C"
}
}
\ No newline at end of file
File deleted
File deleted
......@@ -3,15 +3,15 @@
"item number":"8882-1",
"item description":"Power Functions XL-Motor",
"category":"motor",
"related items":8881,
"related items":"8881-1",
"idle current [mA]":80,
"idle speed [rev per min]":220,
"locking torque [Ncm]":40,
"price [Euro]":30,
"mass [g]":72.85,
"environmental impact [kg CO2e /kg]":15.84,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?S=8882-1&name=Power%20Functions%20XL-Motor&category=%5BPower%20Functions%5D#T=S&O={%22iconly%22:0}",
"compatible battery":8881,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?S=8882-1",
"input voltage [V]":9,
"dimensions [cm]":"13.6 x 12.2 x 3.9"
},
......@@ -19,15 +19,15 @@
"item number":"8883-1",
"item description":"Power Functions M-Motor",
"category":"motor",
"related items":"8881, 8878, 45517, 88000",
"related items":"8881-1",
"idle current [mA]":65,
"idle speed [rev per min]":405,
"locking torque [Ncm]":11,
"price [Euro]":20,
"mass [g]":35.0,
"environmental impact [kg CO2e /kg]":15.84,
"delivery time [days]":5,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?S=8883-1&name=Power%20Functions%20M-Motor&category=%5BPower%20Functions%5D#T=S&O={%22iconly%22:0}",
"compatible battery":"8881, 8878, 45517, 88000",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?S=8883-1",
"input voltage [V]":9,
"dimensions [cm]":"13.8 x 11.9 x 2.3"
},
......@@ -35,15 +35,15 @@
"item number":"88003-1",
"item description":"Power Functions L-Motor",
"category":"motor",
"related items":"8881, 8878, 88000",
"related items":"8881-1",
"idle current [mA]":120,
"idle speed [rev per min]":390,
"locking torque [Ncm]":18,
"price [Euro]":15,
"mass [g]":48.0,
"environmental impact [kg CO2e /kg]":15.84,
"delivery time [days]":3,
"data source":"https:\/\/www.bricklink.com\/v2\/catalog\/catalogitem.page?S=88003-1&name=Power%20Functions%20L-Motor&category=%5BPower%20Functions%5D#T=S&O={%22iconly%22:0}",
"compatible battery":"8881, 8878, 88000",
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?S=88003-1",
"input voltage [V]":9,
"dimensions [cm]":"13 x 11 x 2.5"
}
......
{
"3482":{
"item number":3482,
"item description":"Wheel with Split Axle Hole",
"category":"rim",
"related items":3483,
"diameter [mm]":17.5,
"price [Euro]":0.01,
"mass [g]":0.88,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3482"
},
"6014":{
"item number":6014,
"item description":"Wheel 11mm D. x 12mm, Hole Round for Wheels Holder Pin",
"category":"rim",
"related items":6015,
"diameter [mm]":11.0,
"price [Euro]":0.0045,
"mass [g]":0.6,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=6014a"
},
"18976":{
"item number":18976,
"item description":"Wheel 18mm D. x 12mm with Axle Hole and Stud, Solid Brake Rotor Lines",
"category":"rim",
"related items":30391,
"diameter [mm]":18.0,
"price [Euro]":0.01,
"mass [g]":1.4,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=18976"
},
"56904":{
"item number":56904,
"item description":"Wheel 30mm D. x 14mm",
"category":"rim",
"related items":30699,
"diameter [mm]":30.0,
"price [Euro]":0.01,
"mass [g]":4.1,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=56904"
},
"56908":{
"item number":56908,
"item description":"Wheel 43.2mm D. x 26mm Technic Racing Small, 6 Pin Holes",
"category":"rim",
"related items":"41897, 61480",
"diameter [mm]":43.2,
"price [Euro]":0.05,
"mass [g]":9.0,
"environmental impact [kg CO2e /kg]":32.06,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=56908"
}
}
\ No newline at end of file
{
"3483":{
"item number":3483,
"item description":"Tire 24mm D. x 8mm Offset Tread - Interior Ridges",
"category":"tire",
"related items":3482,
"inner diameter [mm]":17,
"outer diameter [mm]":24.0,
"price [Euro]":0.0025,
"mass [g]":1.69,
"environmental impact [kg CO2e /kg]":8.97,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=3483"
},
"6015":{
"item number":6015,
"item description":"Tire 21mm D. x 12mm - Offset Tread Small Wide",
"category":"tire",
"related items":6014,
"inner diameter [mm]":11,
"outer diameter [mm]":21.0,
"price [Euro]":0.0004,
"mass [g]":2.0,
"environmental impact [kg CO2e /kg]":8.97,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=6015"
},
"30391":{
"item number":30391,
"item description":"Tire 30.4 x 14 Offset Tread",
"category":"tire",
"related items":18976,
"inner diameter [mm]":17,
"outer diameter [mm]":30.4,
"price [Euro]":0.0027,
"mass [g]":6.5,
"environmental impact [kg CO2e /kg]":8.97,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=30391"
},
"30699":{
"item number":30699,
"item description":"Tire 43.2 x 14 Solid",
"category":"tire",
"related items":56904,
"inner diameter [mm]":30,
"outer diameter [mm]":43.2,
"price [Euro]":0.06,
"mass [g]":8.25,
"environmental impact [kg CO2e /kg]":8.97,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=30699"
},
"41897":{
"item number":41897,
"item description":"Tire 56 x 28 ZR Street",
"category":"tire",
"related items":56908,
"inner diameter [mm]":43,
"outer diameter [mm]":56.0,
"price [Euro]":0.29,
"mass [g]":13.98,
"environmental impact [kg CO2e /kg]":8.97,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=41897"
},
"61480":{
"item number":61480,
"item description":"Tire 68.7 x 34 R",
"category":"tire",
"related items":56908,
"inner diameter [mm]":43,
"outer diameter [mm]":68.7,
"price [Euro]":0.02,
"mass [g]":20.0,
"environmental impact [kg CO2e /kg]":8.97,
"delivery time [days]":5,
"data source":"https://www.bricklink.com/v2/catalog/catalogitem.page?P=61480"
}
}
\ No newline at end of file
{
"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
figures/leocad_screenshot_cut.png

220 KiB

......@@ -2,42 +2,35 @@
File consists of several functions for the calculation rules of FAIR Quality KPIs
"""
from functions.classes import *
def test_function():
"""Test function to check module functionality"""
print("You called the test function.")
def kpi_sum(*args):
def kpi_mass(system: LegoAssembly)->float:
"""
Calculates the sum of one or more integers or lists.
Calculates the total mass of the system
Args:
*args: One or more integers or lists.
system (LegoAssembly): LegoAssembly object that represents the system
Returns:
total (int): The sum of all given integers and/or the sum
of all items in all given lists.
total_mass (float): Sum of masses of all components in the system in g
Raises:
TypeError: If an argument with unsupported type is passed
(i.e. anything other than int or list).
(i.e. anything other than LegoAssembly).
"""
total = 0
for arg in args:
if isinstance(arg, int): # Check if argument is an integer
total += arg
elif isinstance(arg, list): # Check if argument is a list
total += sum(arg)
else:
raise TypeError(
f"Unsupported type {type(arg)} passed to kpi_sum()")
return total
# if arguments are handed over not as a list: sum(list(args))
if not isinstance(system, LegoAssembly):
raise TypeError(f"Unsupported type {type(system)} passed to kpi_mass()")
total_mass = 0
for c in system.get_component_list(-1):
total_mass += c.properties["mass [g]"]
return total_mass # alternative: sum(c.properties["mass [g]"] for c in system.get_component_list(-1))
# Add new functions for calculating some real complicated metrics
# Add new functions for calculating metrics
if __name__ == "__main__":
......
This diff is collapsed.