diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..1c2fda5 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..57f05a3 Binary files /dev/null and b/requirements.txt differ diff --git a/sample/file_handling/add_to_csv.py b/sample/file_handling/add_to_csv.py new file mode 100644 index 0000000..12f3b5f --- /dev/null +++ b/sample/file_handling/add_to_csv.py @@ -0,0 +1,23 @@ +import csv +from itertools import zip_longest +from file_handling import read_csv +import pandas as pd + + +def add_list_to_empty_csv(file, set_list): + rows = zip_longest(*set_list, fillvalue="") + with open(file, "w", encoding="ISO-8859-1", newline='') as file: + writer = csv.writer(file) + writer.writerows(rows) + file.close() + + +def add_df_to_empty_csv(file, setlist_df): + setlist_df.to_csv(file, index=False) + + +def append_df_csv(file, setlist_df): + csv_list = read_csv.return_csv_as_df(file) + setlist_df["Quantity"] = setlist_df["Quantity"].astype(int) + df = pd.concat([csv_list, setlist_df]).groupby(["Part number", "Name"], as_index=False)["Quantity"].sum() + df.to_csv(file, index=False) diff --git a/sample/file_handling/create_basic_csv.py b/sample/file_handling/create_basic_csv.py new file mode 100644 index 0000000..19de6a5 --- /dev/null +++ b/sample/file_handling/create_basic_csv.py @@ -0,0 +1,8 @@ +import csv + + +def basic_csv(file): + with open(file, "w", encoding="ISO-8859-1", newline='') as file: + writer = csv.writer(file) + writer.writerow(("Part number", "Name", "Quantity")) + file.close() diff --git a/sample/file_handling/merge_csvs.py b/sample/file_handling/merge_csvs.py new file mode 100644 index 0000000..e69de29 diff --git a/sample/file_handling/read_csv.py b/sample/file_handling/read_csv.py new file mode 100644 index 0000000..ae7c3b7 --- /dev/null +++ b/sample/file_handling/read_csv.py @@ -0,0 +1,13 @@ +import csv +import pandas as pd + + +def return_csv_as_df(csv_file): + return pd.read_csv(csv_file) + + +def print_csv(csv_file): + with open(csv_file, "r") as file: + reader = csv.reader(file) + for row in reader: + print(row) \ No newline at end of file diff --git a/sample/main.py b/sample/main.py new file mode 100644 index 0000000..156b293 --- /dev/null +++ b/sample/main.py @@ -0,0 +1,30 @@ +import query.query_set +from query.query_set import return_as_df as df +from query.query_set import return_as_list +from util.util import get_items +from query.query_part_quantity import get_part_quantity, __find_parts_quantity +from file_handling import read_csv, add_to_csv + +url00 = "https://www.bricklink.com/CatalogItemInv.asp?S=75979-1" +url01 = "https://www.bricklink.com/CatalogItemInv.asp?S=76387-1" +url02 = "https://www.bricklink.com/CatalogItemInv.asp?S=75308-1" +url03 = "https://www.bricklink.com/CatalogItemInv.asp?S=75192-1" # <-- 7000+ pieces + +#lists = get_items(url00) +#parts = __find_parts_quantity(lists, 184) #185 +#print(parts) + + +lists = get_part_quantity(url00) + +with open("test.txt", "w") as file: + for items in lists: + file.writelines([items]) +file.close() + +# set_list = return_as_list(url00) +# add_to_csv.append_df_csv("test01.csv", df) + +# add_to_csv.add_list_to_empty_csv("test.csv", set_list) + +# print(df.to_string(index=False)) diff --git a/sample/query/query_part_names.py b/sample/query/query_part_names.py new file mode 100644 index 0000000..2fce28e --- /dev/null +++ b/sample/query/query_part_names.py @@ -0,0 +1,19 @@ +from sample.util.util import findnth, get_items + + +def __find_part_name(parts_list, idx): + return parts_list[idx][(parts_list[idx].find('') + 7):findnth(parts_list[idx], '', 1)] + + +def get_part_names(url): + items = get_items(url) + part_numbers = [] + + for i in range(len(items)): + current_part = __find_part_name(items, i) + if "<" in current_part: + continue + elif i >= 4: + part_numbers.append(current_part) + + return part_numbers \ No newline at end of file diff --git a/sample/query/query_part_quantity.py b/sample/query/query_part_quantity.py new file mode 100644 index 0000000..c580378 --- /dev/null +++ b/sample/query/query_part_quantity.py @@ -0,0 +1,27 @@ +from sample.util.util import findnth, get_items + + +def __find_parts_quantity(parts_list, idx): + return parts_list[idx][(parts_list[idx].find('') + 19):findnth(parts_list[idx], '', 1) - 1] + # current_part = parts_list[idx][(parts_list[idx].find('') + 19): + # findnth(parts_list[idx], '', 1) - 1] + # if current_part == '>Counterparts: