From d81515d4c5b8b5861ca2d42444d914c812b339ac Mon Sep 17 00:00:00 2001 From: Jadowyne Ulve Date: Sat, 28 Jun 2025 21:04:07 -0500 Subject: [PATCH] Updated Transaction Scanner to poe app --- application/items/templates/transaction.html | 43 +- application/poe/poe_api.py | 132 ++ .../poe/static/js/transactionHandler.js | 166 ++ application/poe/templates/scanner.html | 147 ++ process.log | 988 ------------ test.txt | 1401 ----------------- webserver.py | 4 +- 7 files changed, 451 insertions(+), 2430 deletions(-) create mode 100644 application/poe/poe_api.py create mode 100644 application/poe/static/js/transactionHandler.js create mode 100644 application/poe/templates/scanner.html delete mode 100644 process.log delete mode 100644 test.txt diff --git a/application/items/templates/transaction.html b/application/items/templates/transaction.html index b5b35f3..55d7159 100644 --- a/application/items/templates/transaction.html +++ b/application/items/templates/transaction.html @@ -115,7 +115,6 @@ @@ -202,40 +201,6 @@ -
-
-

Using this method of entering transaction receipts does so by transacting a single UOM of the barcode scanned. Its important that you have the - Barcode input focused and use a scanner that places the characters into the field before it finishes up with a press of the ENTER key. -

-
-
-
- - -
-
- -
-
-
- - - - - - - - - - - - -
StatusBarcodeNameTypeLocation
-
-

Using this method of entering receipts does so by adding each barcode to a list and once the receipt has been built the @@ -280,7 +245,7 @@

- +

Select Item

@@ -314,7 +279,7 @@
- +

Item Locations

@@ -331,7 +296,7 @@
- +

Edit Line...

@@ -384,6 +349,6 @@ {% assets "js_all" %} {% endassets %} - + \ No newline at end of file diff --git a/application/poe/poe_api.py b/application/poe/poe_api.py new file mode 100644 index 0000000..46ad57c --- /dev/null +++ b/application/poe/poe_api.py @@ -0,0 +1,132 @@ +from flask import Blueprint, request, render_template, redirect, session, url_for, send_file, jsonify, Response +import psycopg2, math, json, datetime, main, copy, requests, process, database, pprint, MyDataclasses +from config import config, sites_config +from main import unfoldCostLayers +from threading import Thread +from queue import Queue +import time, process +from user_api import login_required +import webpush + +point_of_ease = Blueprint('poe', __name__, template_folder="templates", static_folder="static") + + +@point_of_ease.route('/scanner', methods=["GET"]) +def scannerEndpoint(): + sites = [site[1] for site in main.get_sites(session['user']['sites'])] + return render_template('scanner.html', current_site=session['selected_site'], + sites=sites) + + + +@point_of_ease.route('/getItemLocations', methods=["GET"]) +def getItemLocations(): + recordset = [] + count = 0 + if request.method == "GET": + item_id = int(request.args.get('id', 1)) + page = int(request.args.get('page', 1)) + limit = int(request.args.get('limit', 10)) + site_name = session['selected_site'] + offset = (page - 1) * limit + database_config = config() + with psycopg2.connect(**database_config) as conn: + recordset, count = database.getItemLocations(conn, site_name, (item_id, limit, offset), convert=True) + return jsonify({"locations":recordset, "end":math.ceil(count/limit), "error":False, "message":"item fetched succesfully!"}) + return jsonify({"locations":recordset, "end": math.ceil(count/limit), "error":True, "message":"There was an error with this GET statement"}) + + +# in item api +@point_of_ease.route('/getItem', methods=["GET"]) +def getItem(): + record = {} + if request.method == "GET": + item_id = int(request.args.get('id', 1)) + site_name = session['selected_site'] + database_config = config() + with psycopg2.connect(**database_config) as conn: + record = database.getItemAllByID(conn, site_name, (item_id, ), convert=True) + return jsonify({"item":record, "error":False, "message":"item fetched succesfully!"}) + return jsonify({"item":record, "error":True, "message":"There was an error with this GET statement"}) + +@point_of_ease.route('/getItem/barcode', methods=["GET"]) +def getItemBarcode(): + record = {} + if request.method == "GET": + item_barcode = f"%{str(request.args.get('barcode', 1))}%" + site_name = session['selected_site'] + database_config = config() + with psycopg2.connect(**database_config) as conn: + record = database.getItemAllByBarcode(conn, site_name, (item_barcode, ), convert=True) + if record == {}: + return jsonify({"item":None, "error":True, "message":"Item either does not exist or there was a larger problem!"}) + else: + return jsonify({"item":record, "error":False, "message":"item fetched succesfully!"}) + return jsonify({"item":record, "error":True, "message":"There was an error with this GET statement"}) + +# in items api +@point_of_ease.route('/getModalItems', methods=["GET"]) +@login_required +def getModalItems(): + recordset = [] + count = {'count': 0} + if request.method == "GET": + page = int(request.args.get('page', 1)) + limit = int(request.args.get('limit', 10)) + search_string = request.args.get('search_string', '') + site_name = session['selected_site'] + offset = (page - 1) * limit + database_config = config() + with psycopg2.connect(**database_config) as conn: + payload = (search_string, limit, offset) + recordset, count = database.getItemsForModal(conn, site_name, payload, convert=True) + return jsonify({"items":recordset, "end":math.ceil(count['count']/limit), "error":False, "message":"items fetched succesfully!"}) + return jsonify({"items":recordset, "end":math.ceil(count['count']/limit), "error":True, "message":"There was an error with this GET statement"}) + +@point_of_ease.route('/postTransaction', methods=["POST"]) +def post_transaction(): + if request.method == "POST": + database_config = config() + with psycopg2.connect(**database_config) as conn: + result = process.postTransaction( + conn=conn, + site_name=session['selected_site'], + user_id=session['user_id'], + data=dict(request.json) + ) + return jsonify(result) + return jsonify({"error":True, "message":"There was an error with this POST statement"}) + + +@point_of_ease.route('/postReceipt', methods=["POST"]) +def post_receipt(): + if request.method == "POST": + site_name = session['selected_site'] + user_id = session['user_id'] + database_config = config() + with psycopg2.connect(**database_config) as conn: + items = request.json['items'] + receipt_id = database.request_receipt_id(conn, site_name) + receipt_id = f"SIR-{receipt_id}" + receipt = MyDataclasses.ReceiptPayload( + receipt_id=receipt_id, + submitted_by=user_id + ) + receipt = database.insertReceiptsTuple(conn, site_name, receipt.payload(), convert=True) + + for item in items: + + receipt_item = MyDataclasses.ReceiptItemPayload( + type=item['type'], + receipt_id=receipt['id'], + barcode=item['item']['barcode'], + name=item['item']['item_name'], + qty=item['item']['qty'], + uom=item['item']['uom'], + data=item['item']['data'] + ) + database.insertReceiptItemsTuple(conn, site_name, receipt_item.payload()) + #webpush.push_notifications('New Receipt', f"Receipt {receipt['receipt_id']} was added to Site -> {site_name}!") + webpush.push_ntfy('New Receipt', f"Receipt {receipt['receipt_id']} was added to Site -> {site_name}!") + return jsonify({"error":False, "message":"Transaction Complete!"}) + return jsonify({"error":True, "message":"There was an error with this POST statement"}) \ No newline at end of file diff --git a/application/poe/static/js/transactionHandler.js b/application/poe/static/js/transactionHandler.js new file mode 100644 index 0000000..472a337 --- /dev/null +++ b/application/poe/static/js/transactionHandler.js @@ -0,0 +1,166 @@ +async function changeSite(site){ + console.log(site) + const response = await fetch(`/changeSite`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + site: site, + }), + }); + data = await response.json(); + transaction_status = "success" + if (data.error){ + transaction_status = "danger" + } + + UIkit.notification({ + message: data.message, + status: transaction_status, + pos: 'top-right', + timeout: 5000 + }); + location.reload(true) +} + +var scannedItems = Array(); +const queueLimit = 49; // 49 should be default + +async function addToQueue(event) { + if (event.key == "Enter"){ + let data = await getItemBarcode(document.getElementById('barcode-scan').value) + let scannedItem = data.item + if(data.error){ + UIkit.notification({ + message: data.message, + status: "danger", + pos: 'top-right', + timeout: 5000 + }); + } + if(scannedItems.length > queueLimit){ + scannedItems.shift() + } + if(!Array.isArray(scannedItem) && !data.error){ + let status = await submitScanTransaction(scannedItem) + scannedItems.push({'item': scannedItem, 'type': `${document.getElementById('scan_trans_type').value}`, 'error': status}) + document.getElementById('barcode-scan').value = "" + } + } + await replenishScanTable() +} + +async function getItemBarcode(barcode) { + console.log(`selected item: ${barcode}`) + const url = new URL('/poe/getItem/barcode', window.location.origin); + url.searchParams.append('barcode', barcode); + const response = await fetch(url); + data = await response.json(); + return data; +} + +async function submitScanTransaction(scannedItem) { + /// I need to find the location that matches the items auto issue location id + + let trans_type = document.getElementById('scan_trans_type').value + let scan_transaction_item_location_id = 0 + let comparator = 0 + + if (trans_type === "Adjust In"){ + comparator = scannedItem.logistics_info.primary_location.id + } else if (trans_type === "Adjust Out"){ + comparator = scannedItem.logistics_info.auto_issue_location.id + } + + for (let i = 0; i < scannedItem.item_locations.length; i++){ + if (scannedItem.item_locations[i].location_id === comparator){ + scan_transaction_item_location_id = scannedItem.item_locations[i].id + } + } + + const response = await fetch(`/poe/postTransaction`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + item_id: scannedItem.id, + logistics_info_id: scannedItem.logistics_info_id, + barcode: scannedItem.barcode, + item_name: scannedItem.item_name, + transaction_type: document.getElementById('scan_trans_type').value, + quantity: scannedItem.item_info.uom_quantity, + description: "", + cost: parseFloat(scannedItem.item_info.cost), + vendor: 0, + expires: null, + location_id: scan_transaction_item_location_id + }), + }); + data = await response.json(); + transaction_status = "success" + if (data.error){ + transaction_status = "danger" + } + + UIkit.notification({ + message: data.message, + status: transaction_status, + pos: 'top-right', + timeout: 5000 + }); + + return data.error + +} + +async function replenishScanTable() { + let scanTableBody = document.getElementById("scanTableBody") + scanTableBody.innerHTML = "" + + let reversedScannedItems = scannedItems.slice().reverse() + + for(let i = 0; i < reversedScannedItems.length; i++){ + let tableRow = document.createElement('tr') + + let icon = `` + if(reversedScannedItems[i].error){ + icon = `` + } + + let statusCell = document.createElement('td') + statusCell.innerHTML = icon + let barcodeCell = document.createElement('td') + barcodeCell.innerHTML = reversedScannedItems[i].item.barcode + let nameCell = document.createElement('td') + nameCell.innerHTML = reversedScannedItems[i].item.item_name + let typeCell = document.createElement('td') + typeCell.innerHTML = reversedScannedItems[i].type + let locationCell = document.createElement('td') + if (reversedScannedItems[i].type === "Adjust In"){ + locationCell.innerHTML = reversedScannedItems[i].item.logistics_info.primary_location.uuid + } else { + locationCell.innerHTML = reversedScannedItems[i].item.logistics_info.auto_issue_location.uuid + } + + tableRow.append(statusCell, barcodeCell, nameCell, typeCell, locationCell) + scanTableBody.append(tableRow) + } +} + +var mode = false +async function toggleDarkMode() { + let darkMode = document.getElementById("dark-mode"); + darkMode.disabled = !darkMode.disabled; + mode = !mode; + if(mode){ + document.getElementById('modeToggle').innerHTML = "light_mode" + document.getElementById('main_html').classList.add('uk-light') + } else { + document.getElementById('modeToggle').innerHTML = "dark_mode" + document.getElementById('main_html').classList.remove('uk-light') + + } + +} \ No newline at end of file diff --git a/application/poe/templates/scanner.html b/application/poe/templates/scanner.html new file mode 100644 index 0000000..c948d26 --- /dev/null +++ b/application/poe/templates/scanner.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+

Using this method of entering transaction receipts does so by transacting a single UOM of the barcode scanned. Its important that you have the + Barcode input focused and use a scanner that places the characters into the field before it finishes up with a press of the ENTER key. +

+
+
+
+ + +
+
+ +
+
+
+ + + + + + + + + + + + +
StatusBarcodeNameTypeLocation
+
+
+
+ + {% assets "js_all" %} + + {% endassets %} + + \ No newline at end of file diff --git a/process.log b/process.log deleted file mode 100644 index b4bf39d..0000000 --- a/process.log +++ /dev/null @@ -1,988 +0,0 @@ - -2025-04-07 18:07:48.193728 --- CAUTION --- 0 - {"Plural": "pinches", " Single": " pinch", " Fullname": " Pinch", " Description": " Less than 1/8 teaspoon."} -2025-04-07 18:07:48.198811 --- CAUTION --- 0 - {"Plural": "tsp", " Single": " tsp", " Fullname": " Teaspoon", " Description": " 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US."} -2025-04-07 18:07:48.202723 --- CAUTION --- 0 - {"Plural": "dsp", " Single": " dsp", " Fullname": " Dessertspoon", " Description": " 10 millilitres in Australia."} -2025-04-07 18:07:48.205733 --- CAUTION --- 0 - {"Plural": "tbsp", " Single": " tbsp", " Fullname": " Tablespoon", " Description": " 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US."} -2025-04-07 18:07:48.208306 --- CAUTION --- 0 - {"Plural": "fl oz", " Single": " fl oz", " Fullname": " Fluid ounce", " Description": " 28.41 millilitres in the UK or approximately 29.57 millilitres in the US."} -2025-04-07 18:07:48.212832 --- CAUTION --- 0 - {"Plural": "cups", " Single": " cup", " Fullname": " Cup", " Description": " 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US."} -2025-04-07 18:07:48.215843 --- CAUTION --- 0 - {"Plural": "pt", " Single": " pt", " Fullname": " Pint", " Description": " 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US."} -2025-04-07 18:07:48.219306 --- CAUTION --- 0 - {"Plural": "qt", " Single": " qt", " Fullname": " Quart", " Description": " Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US."} -2025-04-07 18:07:48.222204 --- CAUTION --- 0 - {"Plural": "gal", " Single": " gal", " Fullname": " Gallon", " Description": " Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US."} -2025-04-07 18:07:48.226717 --- CAUTION --- 0 - {"Plural": "jiggers", " Single": " jigger", " Fullname": " Jigger", " Description": " 1.5 fluid ounces."} -2025-04-07 18:07:48.230038 --- CAUTION --- 0 - {"Plural": "oz", " Single": " oz", " Fullname": " Ounce", " Description": " 1/4 lb for butter which can also be measured as 3 tablespoons."} -2025-04-07 18:07:48.233496 --- CAUTION --- 0 - {"Plural": "L", " Single": " L", " Fullname": " Liter", " Description": " Commonly used for volume measurement in the metric system."} -2025-04-07 18:07:48.236507 --- CAUTION --- 0 - {"Plural": "mL", " Single": " mL", " Fullname": " Milliliter", " Description": " Commonly used for volume measurement in the metric system."} -2025-04-07 18:07:48.240296 --- CAUTION --- 0 - {"Plural": "dm3", " Single": " dm3", " Fullname": " Cubic decimeter", " Description": " Equivalent to 1 liter."} -2025-04-07 18:07:48.242309 --- CAUTION --- 0 - {"Plural": "g", " Single": " g", " Fullname": " Gram", " Description": " Commonly used for weight measurement in the metric system."} -2025-04-07 18:07:48.246896 --- CAUTION --- 0 - {"Plural": "kg", " Single": " kg", " Fullname": " Kilogram", " Description": " Commonly used for weight measurement in the metric system."} -2025-04-07 18:07:48.250308 --- CAUTION --- 0 - {"Plural": "lbs", " Single": " lb", " Fullname": " Pound", " Description": " Used for weight measurement in the US."} -2025-04-07 18:07:48.253557 --- CAUTION --- 0 - {"Plural": "fluid scruples", " Single": " fluid scruple", " Fullname": " Fluid scruple", " Description": " A unit used in the apothecaries' system but not commonly used in cooking."} -2025-04-07 18:07:48.257236 --- CAUTION --- 0 - {"Plural": "cm3", " Single": " cm3", " Fullname": " Cubic centimeter", " Description": " Equivalent to 1 milliliter."} -2025-04-07 18:07:48.261287 --- CAUTION --- 0 - {"Plural": "breakfast cups", " Single": " breakfast cup", " Fullname": " Breakfast cup", " Description": " Similar in size to the US customary cup and the metric cup."} -2025-04-07 18:07:48.263881 --- CAUTION --- 0 - {"Plural": "tumblers", " Single": " tumbler", " Fullname": " Tumblerful", " Description": " A unit used in British cookery books and recipes."} -2025-04-07 18:07:48.266919 --- CAUTION --- 0 - {"Plural": "winefulls", " Single": " winefull", " Fullname": " Wineglassful", " Description": " A unit used in British cookery books and recipes."} -2025-04-07 18:07:48.270307 --- CAUTION --- 0 - {"Plural": "coffee cups", " Single": " coffee cup", " Fullname": " Coffee cup", " Description": " Can vary from 100 to 200 millilitres."} -2025-04-07 18:07:48.273839 --- CAUTION --- 0 - {"Plural": "sticks of butter", " Single": " stick of butter", " Fullname": " Stick of butter", " Description": " 1/4 lb or 3 tablespoons."} -2025-04-07 18:07:48.277370 --- CAUTION --- 0 - {"Plural": "smidgens", " Single": " smidgen", " Fullname": " Smidgen", " Description": " An approximate unit of measure."} -2025-04-07 18:07:48.280470 --- CAUTION --- 0 - {"Plural": "dashes", " Single": " dash", " Fullname": " Dash", " Description": " An approximate unit of measure."} -2025-04-07 18:07:48.283908 --- CAUTION --- 0 - {"Plural": "drops", " Single": " drop", " Fullname": " Drop", " Description": " An approximate unit of measure."} -2025-04-07 18:07:48.286954 --- CAUTION --- 0 - {"Plural": "eaches", " Single": " each", " Fullname": " Each", " Description": " A single unit."} -2025-04-07 18:07:48.290199 --- CAUTION --- 0 - {"Plural": "boxes", " Single": " box", " Fullname": " Box", " Description": " A Single box of a unit."} -2025-04-07 18:07:48.293848 --- CAUTION --- 0 - {"Plural": "crates", " Single": " crate", " Fullname": " Crate", " Description": " a single crate of a unit."} -2025-04-07 18:07:48.297999 --- CAUTION --- 0 - {"Plural": "jars", " Single": " jar", " Fullname": " Jar", " Description": " A single Jar of a unit."} -2025-04-07 18:07:48.301330 --- CAUTION --- 0 - {"Plural": "cans", " Single": " can", " Fullname": " Can", " Description": " A Single Can of a unit."} -2025-04-07 18:07:48.304665 --- CAUTION --- 0 - {"Plural": "bars", " Single": " bar", " Fullname": " Bars", " Description": " A Single bar of a unit."} -2025-04-07 18:07:48.307969 --- CAUTION --- 0 - {"Plural": "loaves", " Single": " loaf", " Fullname": " Loaf", " Description": " A single loaf of a unit."} -2025-04-07 18:07:48.311119 --- CAUTION --- 0 - {"Plural": "packs", " Single": " pack", " Fullname": " Pack", " Description": " A Single Pack of a unit."} -2025-04-07 18:08:49.486023 --- CAUTION --- 0 - {"Plural": "pinches", " Single": " pinch", " Fullname": " Pinch", " Description": " Less than 1/8 teaspoon."} -2025-04-07 18:08:49.492309 --- CAUTION --- 0 - {"Plural": "tsp", " Single": " tsp", " Fullname": " Teaspoon", " Description": " 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US."} -2025-04-07 18:08:49.496834 --- CAUTION --- 0 - {"Plural": "dsp", " Single": " dsp", " Fullname": " Dessertspoon", " Description": " 10 millilitres in Australia."} -2025-04-07 18:08:49.500191 --- CAUTION --- 0 - {"Plural": "tbsp", " Single": " tbsp", " Fullname": " Tablespoon", " Description": " 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US."} -2025-04-07 18:08:49.504607 --- CAUTION --- 0 - {"Plural": "fl oz", " Single": " fl oz", " Fullname": " Fluid ounce", " Description": " 28.41 millilitres in the UK or approximately 29.57 millilitres in the US."} -2025-04-07 18:08:49.508006 --- CAUTION --- 0 - {"Plural": "cups", " Single": " cup", " Fullname": " Cup", " Description": " 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US."} -2025-04-07 18:08:49.512009 --- CAUTION --- 0 - {"Plural": "pt", " Single": " pt", " Fullname": " Pint", " Description": " 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US."} -2025-04-07 18:08:49.514519 --- CAUTION --- 0 - {"Plural": "qt", " Single": " qt", " Fullname": " Quart", " Description": " Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US."} -2025-04-07 18:08:49.519512 --- CAUTION --- 0 - {"Plural": "gal", " Single": " gal", " Fullname": " Gallon", " Description": " Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US."} -2025-04-07 18:08:49.522787 --- CAUTION --- 0 - {"Plural": "jiggers", " Single": " jigger", " Fullname": " Jigger", " Description": " 1.5 fluid ounces."} -2025-04-07 18:08:49.526796 --- CAUTION --- 0 - {"Plural": "oz", " Single": " oz", " Fullname": " Ounce", " Description": " 1/4 lb for butter which can also be measured as 3 tablespoons."} -2025-04-07 18:08:49.529796 --- CAUTION --- 0 - {"Plural": "L", " Single": " L", " Fullname": " Liter", " Description": " Commonly used for volume measurement in the metric system."} -2025-04-07 18:08:49.533807 --- CAUTION --- 0 - {"Plural": "mL", " Single": " mL", " Fullname": " Milliliter", " Description": " Commonly used for volume measurement in the metric system."} -2025-04-07 18:08:49.537268 --- CAUTION --- 0 - {"Plural": "dm3", " Single": " dm3", " Fullname": " Cubic decimeter", " Description": " Equivalent to 1 liter."} -2025-04-07 18:08:49.541002 --- CAUTION --- 0 - {"Plural": "g", " Single": " g", " Fullname": " Gram", " Description": " Commonly used for weight measurement in the metric system."} -2025-04-07 18:08:49.544953 --- CAUTION --- 0 - {"Plural": "kg", " Single": " kg", " Fullname": " Kilogram", " Description": " Commonly used for weight measurement in the metric system."} -2025-04-07 18:08:49.548961 --- CAUTION --- 0 - {"Plural": "lbs", " Single": " lb", " Fullname": " Pound", " Description": " Used for weight measurement in the US."} -2025-04-07 18:08:49.551999 --- CAUTION --- 0 - {"Plural": "fluid scruples", " Single": " fluid scruple", " Fullname": " Fluid scruple", " Description": " A unit used in the apothecaries' system but not commonly used in cooking."} -2025-04-07 18:08:49.556000 --- CAUTION --- 0 - {"Plural": "cm3", " Single": " cm3", " Fullname": " Cubic centimeter", " Description": " Equivalent to 1 milliliter."} -2025-04-07 18:08:49.560003 --- CAUTION --- 0 - {"Plural": "breakfast cups", " Single": " breakfast cup", " Fullname": " Breakfast cup", " Description": " Similar in size to the US customary cup and the metric cup."} -2025-04-07 18:08:49.564002 --- CAUTION --- 0 - {"Plural": "tumblers", " Single": " tumbler", " Fullname": " Tumblerful", " Description": " A unit used in British cookery books and recipes."} -2025-04-07 18:08:49.567064 --- CAUTION --- 0 - {"Plural": "winefulls", " Single": " winefull", " Fullname": " Wineglassful", " Description": " A unit used in British cookery books and recipes."} -2025-04-07 18:08:49.571455 --- CAUTION --- 0 - {"Plural": "coffee cups", " Single": " coffee cup", " Fullname": " Coffee cup", " Description": " Can vary from 100 to 200 millilitres."} -2025-04-07 18:08:49.574950 --- CAUTION --- 0 - {"Plural": "sticks of butter", " Single": " stick of butter", " Fullname": " Stick of butter", " Description": " 1/4 lb or 3 tablespoons."} -2025-04-07 18:08:49.578958 --- CAUTION --- 0 - {"Plural": "smidgens", " Single": " smidgen", " Fullname": " Smidgen", " Description": " An approximate unit of measure."} -2025-04-07 18:08:49.582103 --- CAUTION --- 0 - {"Plural": "dashes", " Single": " dash", " Fullname": " Dash", " Description": " An approximate unit of measure."} -2025-04-07 18:08:49.584615 --- CAUTION --- 0 - {"Plural": "drops", " Single": " drop", " Fullname": " Drop", " Description": " An approximate unit of measure."} -2025-04-07 18:08:49.589280 --- CAUTION --- 0 - {"Plural": "eaches", " Single": " each", " Fullname": " Each", " Description": " A single unit."} -2025-04-07 18:08:49.592278 --- CAUTION --- 0 - {"Plural": "boxes", " Single": " box", " Fullname": " Box", " Description": " A Single box of a unit."} -2025-04-07 18:08:49.595790 --- CAUTION --- 0 - {"Plural": "crates", " Single": " crate", " Fullname": " Crate", " Description": " a single crate of a unit."} -2025-04-07 18:08:49.599333 --- CAUTION --- 0 - {"Plural": "jars", " Single": " jar", " Fullname": " Jar", " Description": " A single Jar of a unit."} -2025-04-07 18:08:49.603568 --- CAUTION --- 0 - {"Plural": "cans", " Single": " can", " Fullname": " Can", " Description": " A Single Can of a unit."} -2025-04-07 18:08:49.607011 --- CAUTION --- 0 - {"Plural": "bars", " Single": " bar", " Fullname": " Bars", " Description": " A Single bar of a unit."} -2025-04-07 18:08:49.611167 --- CAUTION --- 0 - {"Plural": "loaves", " Single": " loaf", " Fullname": " Loaf", " Description": " A single loaf of a unit."} -2025-04-07 18:08:49.614706 --- CAUTION --- 0 - {"Plural": "packs", " Single": " pack", " Fullname": " Pack", " Description": " A Single Pack of a unit."} -2025-04-07 18:10:43.995134 --- CAUTION --- DatabaseError(message='duplicate key value violates unique constraint "units_plural_key"DETAIL: Key (plural)=(pinches) already exists.', payload=('pinches', ' pinch', ' Pinch', ' Less than 1/8 teaspoon.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["pinches", " pinch", " Pinch", " Less than 1/8 teaspoon."] -2025-04-07 18:10:44.005096 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tsp', ' tsp', ' Teaspoon', ' 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tsp", " tsp", " Teaspoon", " 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US."] -2025-04-07 18:10:44.012695 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dsp', ' dsp', ' Dessertspoon', ' 10 millilitres in Australia.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dsp", " dsp", " Dessertspoon", " 10 millilitres in Australia."] -2025-04-07 18:10:44.020587 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tbsp', ' tbsp', ' Tablespoon', ' 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tbsp", " tbsp", " Tablespoon", " 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US."] -2025-04-07 18:10:44.027752 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fl oz', ' fl oz', ' Fluid ounce', ' 28.41 millilitres in the UK or approximately 29.57 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fl oz", " fl oz", " Fluid ounce", " 28.41 millilitres in the UK or approximately 29.57 millilitres in the US."] -2025-04-07 18:10:44.036113 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cups', ' cup', ' Cup', ' 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cups", " cup", " Cup", " 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US."] -2025-04-07 18:10:44.043799 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('pt', ' pt', ' Pint', ' 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["pt", " pt", " Pint", " 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US."] -2025-04-07 18:10:44.051856 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('qt', ' qt', ' Quart', ' Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["qt", " qt", " Quart", " Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US."] -2025-04-07 18:10:44.059206 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('gal', ' gal', ' Gallon', ' Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["gal", " gal", " Gallon", " Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US."] -2025-04-07 18:10:44.067014 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jiggers', ' jigger', ' Jigger', ' 1.5 fluid ounces.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jiggers", " jigger", " Jigger", " 1.5 fluid ounces."] -2025-04-07 18:10:44.074033 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('oz', ' oz', ' Ounce', ' 1/4 lb for butter which can also be measured as 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["oz", " oz", " Ounce", " 1/4 lb for butter which can also be measured as 3 tablespoons."] -2025-04-07 18:10:44.081603 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('L', ' L', ' Liter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["L", " L", " Liter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:10:44.089592 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('mL', ' mL', ' Milliliter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["mL", " mL", " Milliliter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:10:44.097342 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dm3', ' dm3', ' Cubic decimeter', ' Equivalent to 1 liter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dm3", " dm3", " Cubic decimeter", " Equivalent to 1 liter."] -2025-04-07 18:10:44.104724 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('g', ' g', ' Gram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["g", " g", " Gram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:10:44.112144 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('kg', ' kg', ' Kilogram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["kg", " kg", " Kilogram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:10:44.120135 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('lbs', ' lb', ' Pound', ' Used for weight measurement in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["lbs", " lb", " Pound", " Used for weight measurement in the US."] -2025-04-07 18:10:44.127804 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fluid scruples', ' fluid scruple', ' Fluid scruple', " A unit used in the apothecaries' system but not commonly used in cooking."), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fluid scruples", " fluid scruple", " Fluid scruple", " A unit used in the apothecaries' system but not commonly used in cooking."] -2025-04-07 18:10:44.135113 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cm3', ' cm3', ' Cubic centimeter', ' Equivalent to 1 milliliter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cm3", " cm3", " Cubic centimeter", " Equivalent to 1 milliliter."] -2025-04-07 18:10:44.142675 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('breakfast cups', ' breakfast cup', ' Breakfast cup', ' Similar in size to the US customary cup and the metric cup.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["breakfast cups", " breakfast cup", " Breakfast cup", " Similar in size to the US customary cup and the metric cup."] -2025-04-07 18:10:44.151374 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tumblers', ' tumbler', ' Tumblerful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tumblers", " tumbler", " Tumblerful", " A unit used in British cookery books and recipes."] -2025-04-07 18:10:44.158807 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('winefulls', ' winefull', ' Wineglassful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["winefulls", " winefull", " Wineglassful", " A unit used in British cookery books and recipes."] -2025-04-07 18:10:44.167004 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('coffee cups', ' coffee cup', ' Coffee cup', ' Can vary from 100 to 200 millilitres.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["coffee cups", " coffee cup", " Coffee cup", " Can vary from 100 to 200 millilitres."] -2025-04-07 18:10:44.174449 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('sticks of butter', ' stick of butter', ' Stick of butter', ' 1/4 lb or 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["sticks of butter", " stick of butter", " Stick of butter", " 1/4 lb or 3 tablespoons."] -2025-04-07 18:10:44.183729 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('smidgens', ' smidgen', ' Smidgen', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["smidgens", " smidgen", " Smidgen", " An approximate unit of measure."] -2025-04-07 18:10:44.191339 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dashes', ' dash', ' Dash', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dashes", " dash", " Dash", " An approximate unit of measure."] -2025-04-07 18:10:44.198886 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('drops', ' drop', ' Drop', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["drops", " drop", " Drop", " An approximate unit of measure."] -2025-04-07 18:10:44.206287 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('eaches', ' each', ' Each', ' A single unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["eaches", " each", " Each", " A single unit."] -2025-04-07 18:10:44.213758 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('boxes', ' box', ' Box', ' A Single box of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["boxes", " box", " Box", " A Single box of a unit."] -2025-04-07 18:10:44.221833 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('crates', ' crate', ' Crate', ' a single crate of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["crates", " crate", " Crate", " a single crate of a unit."] -2025-04-07 18:10:44.229839 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jars', ' jar', ' Jar', ' A single Jar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jars", " jar", " Jar", " A single Jar of a unit."] -2025-04-07 18:10:44.237064 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cans', ' can', ' Can', ' A Single Can of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cans", " can", " Can", " A Single Can of a unit."] -2025-04-07 18:10:44.244118 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('bars', ' bar', ' Bars', ' A Single bar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["bars", " bar", " Bars", " A Single bar of a unit."] -2025-04-07 18:10:44.252959 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('loaves', ' loaf', ' Loaf', ' A single loaf of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["loaves", " loaf", " Loaf", " A single loaf of a unit."] -2025-04-07 18:10:44.260249 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('packs', ' pack', ' Pack', ' A Single Pack of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["packs", " pack", " Pack", " A Single Pack of a unit."] -2025-04-07 18:11:11.901876 --- CAUTION --- DatabaseError(message='duplicate key value violates unique constraint "units_plural_key"DETAIL: Key (plural)=(pinches) already exists.', payload=('pinches', ' pinch', ' Pinch', ' Less than 1/8 teaspoon.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["pinches", " pinch", " Pinch", " Less than 1/8 teaspoon."] -2025-04-07 18:11:11.913095 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tsp', ' tsp', ' Teaspoon', ' 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tsp", " tsp", " Teaspoon", " 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US."] -2025-04-07 18:11:11.920834 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dsp', ' dsp', ' Dessertspoon', ' 10 millilitres in Australia.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dsp", " dsp", " Dessertspoon", " 10 millilitres in Australia."] -2025-04-07 18:11:11.928118 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tbsp', ' tbsp', ' Tablespoon', ' 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tbsp", " tbsp", " Tablespoon", " 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US."] -2025-04-07 18:11:11.935834 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fl oz', ' fl oz', ' Fluid ounce', ' 28.41 millilitres in the UK or approximately 29.57 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fl oz", " fl oz", " Fluid ounce", " 28.41 millilitres in the UK or approximately 29.57 millilitres in the US."] -2025-04-07 18:11:11.943995 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cups', ' cup', ' Cup', ' 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cups", " cup", " Cup", " 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US."] -2025-04-07 18:11:11.951271 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('pt', ' pt', ' Pint', ' 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["pt", " pt", " Pint", " 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US."] -2025-04-07 18:11:11.958833 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('qt', ' qt', ' Quart', ' Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["qt", " qt", " Quart", " Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US."] -2025-04-07 18:11:11.966926 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('gal', ' gal', ' Gallon', ' Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["gal", " gal", " Gallon", " Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US."] -2025-04-07 18:11:11.974434 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jiggers', ' jigger', ' Jigger', ' 1.5 fluid ounces.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jiggers", " jigger", " Jigger", " 1.5 fluid ounces."] -2025-04-07 18:11:11.982214 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('oz', ' oz', ' Ounce', ' 1/4 lb for butter which can also be measured as 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["oz", " oz", " Ounce", " 1/4 lb for butter which can also be measured as 3 tablespoons."] -2025-04-07 18:11:11.989518 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('L', ' L', ' Liter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["L", " L", " Liter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:11:11.997321 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('mL', ' mL', ' Milliliter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["mL", " mL", " Milliliter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:11:12.005157 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dm3', ' dm3', ' Cubic decimeter', ' Equivalent to 1 liter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dm3", " dm3", " Cubic decimeter", " Equivalent to 1 liter."] -2025-04-07 18:11:12.012662 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('g', ' g', ' Gram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["g", " g", " Gram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:11:12.020544 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('kg', ' kg', ' Kilogram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["kg", " kg", " Kilogram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:11:12.028832 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('lbs', ' lb', ' Pound', ' Used for weight measurement in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["lbs", " lb", " Pound", " Used for weight measurement in the US."] -2025-04-07 18:11:12.035928 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fluid scruples', ' fluid scruple', ' Fluid scruple', " A unit used in the apothecaries' system but not commonly used in cooking."), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fluid scruples", " fluid scruple", " Fluid scruple", " A unit used in the apothecaries' system but not commonly used in cooking."] -2025-04-07 18:11:12.044169 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cm3', ' cm3', ' Cubic centimeter', ' Equivalent to 1 milliliter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cm3", " cm3", " Cubic centimeter", " Equivalent to 1 milliliter."] -2025-04-07 18:11:12.051848 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('breakfast cups', ' breakfast cup', ' Breakfast cup', ' Similar in size to the US customary cup and the metric cup.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["breakfast cups", " breakfast cup", " Breakfast cup", " Similar in size to the US customary cup and the metric cup."] -2025-04-07 18:11:12.059081 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tumblers', ' tumbler', ' Tumblerful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tumblers", " tumbler", " Tumblerful", " A unit used in British cookery books and recipes."] -2025-04-07 18:11:12.067370 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('winefulls', ' winefull', ' Wineglassful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["winefulls", " winefull", " Wineglassful", " A unit used in British cookery books and recipes."] -2025-04-07 18:11:12.074897 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('coffee cups', ' coffee cup', ' Coffee cup', ' Can vary from 100 to 200 millilitres.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["coffee cups", " coffee cup", " Coffee cup", " Can vary from 100 to 200 millilitres."] -2025-04-07 18:11:12.082570 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('sticks of butter', ' stick of butter', ' Stick of butter', ' 1/4 lb or 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["sticks of butter", " stick of butter", " Stick of butter", " 1/4 lb or 3 tablespoons."] -2025-04-07 18:11:12.090585 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('smidgens', ' smidgen', ' Smidgen', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["smidgens", " smidgen", " Smidgen", " An approximate unit of measure."] -2025-04-07 18:11:12.099307 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dashes', ' dash', ' Dash', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dashes", " dash", " Dash", " An approximate unit of measure."] -2025-04-07 18:11:12.106924 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('drops', ' drop', ' Drop', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["drops", " drop", " Drop", " An approximate unit of measure."] -2025-04-07 18:11:12.114986 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('eaches', ' each', ' Each', ' A single unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["eaches", " each", " Each", " A single unit."] -2025-04-07 18:11:12.123785 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('boxes', ' box', ' Box', ' A Single box of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["boxes", " box", " Box", " A Single box of a unit."] -2025-04-07 18:11:12.132171 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('crates', ' crate', ' Crate', ' a single crate of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["crates", " crate", " Crate", " a single crate of a unit."] -2025-04-07 18:11:12.140032 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jars', ' jar', ' Jar', ' A single Jar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jars", " jar", " Jar", " A single Jar of a unit."] -2025-04-07 18:11:12.148143 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cans', ' can', ' Can', ' A Single Can of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cans", " can", " Can", " A Single Can of a unit."] -2025-04-07 18:11:12.157037 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('bars', ' bar', ' Bars', ' A Single bar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["bars", " bar", " Bars", " A Single bar of a unit."] -2025-04-07 18:11:12.165175 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('loaves', ' loaf', ' Loaf', ' A single loaf of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["loaves", " loaf", " Loaf", " A single loaf of a unit."] -2025-04-07 18:11:12.172983 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('packs', ' pack', ' Pack', ' A Single Pack of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["packs", " pack", " Pack", " A Single Pack of a unit."] -2025-04-07 18:12:49.005060 --- CAUTION --- DatabaseError(message='duplicate key value violates unique constraint "units_plural_key"DETAIL: Key (plural)=(Plural) already exists.', payload=('Plural', ' Single', ' Fullname', ' Description'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["Plural", " Single", " Fullname", " Description"] -2025-04-07 18:12:49.018692 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tsp', ' tsp', ' Teaspoon', ' 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tsp", " tsp", " Teaspoon", " 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US."] -2025-04-07 18:12:49.026767 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dsp', ' dsp', ' Dessertspoon', ' 10 millilitres in Australia.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dsp", " dsp", " Dessertspoon", " 10 millilitres in Australia."] -2025-04-07 18:12:49.035142 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tbsp', ' tbsp', ' Tablespoon', ' 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tbsp", " tbsp", " Tablespoon", " 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US."] -2025-04-07 18:12:49.043176 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fl oz', ' fl oz', ' Fluid ounce', ' 28.41 millilitres in the UK or approximately 29.57 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fl oz", " fl oz", " Fluid ounce", " 28.41 millilitres in the UK or approximately 29.57 millilitres in the US."] -2025-04-07 18:12:49.052311 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cups', ' cup', ' Cup', ' 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cups", " cup", " Cup", " 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US."] -2025-04-07 18:12:49.060527 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('pt', ' pt', ' Pint', ' 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["pt", " pt", " Pint", " 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US."] -2025-04-07 18:12:49.068511 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('qt', ' qt', ' Quart', ' Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["qt", " qt", " Quart", " Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US."] -2025-04-07 18:12:49.076951 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('gal', ' gal', ' Gallon', ' Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["gal", " gal", " Gallon", " Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US."] -2025-04-07 18:12:49.086062 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jiggers', ' jigger', ' Jigger', ' 1.5 fluid ounces.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jiggers", " jigger", " Jigger", " 1.5 fluid ounces."] -2025-04-07 18:12:49.095057 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('oz', ' oz', ' Ounce', ' 1/4 lb for butter which can also be measured as 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["oz", " oz", " Ounce", " 1/4 lb for butter which can also be measured as 3 tablespoons."] -2025-04-07 18:12:49.102906 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('L', ' L', ' Liter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["L", " L", " Liter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:12:49.111927 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('mL', ' mL', ' Milliliter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["mL", " mL", " Milliliter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:12:49.119508 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dm3', ' dm3', ' Cubic decimeter', ' Equivalent to 1 liter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dm3", " dm3", " Cubic decimeter", " Equivalent to 1 liter."] -2025-04-07 18:12:49.128094 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('g', ' g', ' Gram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["g", " g", " Gram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:12:49.136293 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('kg', ' kg', ' Kilogram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["kg", " kg", " Kilogram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:12:49.144897 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('lbs', ' lb', ' Pound', ' Used for weight measurement in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["lbs", " lb", " Pound", " Used for weight measurement in the US."] -2025-04-07 18:12:49.153354 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fluid scruples', ' fluid scruple', ' Fluid scruple', " A unit used in the apothecaries' system but not commonly used in cooking."), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fluid scruples", " fluid scruple", " Fluid scruple", " A unit used in the apothecaries' system but not commonly used in cooking."] -2025-04-07 18:12:49.162476 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cm3', ' cm3', ' Cubic centimeter', ' Equivalent to 1 milliliter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cm3", " cm3", " Cubic centimeter", " Equivalent to 1 milliliter."] -2025-04-07 18:12:49.170611 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('breakfast cups', ' breakfast cup', ' Breakfast cup', ' Similar in size to the US customary cup and the metric cup.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["breakfast cups", " breakfast cup", " Breakfast cup", " Similar in size to the US customary cup and the metric cup."] -2025-04-07 18:12:49.178357 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tumblers', ' tumbler', ' Tumblerful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tumblers", " tumbler", " Tumblerful", " A unit used in British cookery books and recipes."] -2025-04-07 18:12:49.186429 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('winefulls', ' winefull', ' Wineglassful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["winefulls", " winefull", " Wineglassful", " A unit used in British cookery books and recipes."] -2025-04-07 18:12:49.195941 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('coffee cups', ' coffee cup', ' Coffee cup', ' Can vary from 100 to 200 millilitres.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["coffee cups", " coffee cup", " Coffee cup", " Can vary from 100 to 200 millilitres."] -2025-04-07 18:12:49.205197 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('sticks of butter', ' stick of butter', ' Stick of butter', ' 1/4 lb or 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["sticks of butter", " stick of butter", " Stick of butter", " 1/4 lb or 3 tablespoons."] -2025-04-07 18:12:49.212492 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('smidgens', ' smidgen', ' Smidgen', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["smidgens", " smidgen", " Smidgen", " An approximate unit of measure."] -2025-04-07 18:12:49.221728 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dashes', ' dash', ' Dash', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dashes", " dash", " Dash", " An approximate unit of measure."] -2025-04-07 18:12:49.231128 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('drops', ' drop', ' Drop', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["drops", " drop", " Drop", " An approximate unit of measure."] -2025-04-07 18:12:49.239584 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('eaches', ' each', ' Each', ' A single unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["eaches", " each", " Each", " A single unit."] -2025-04-07 18:12:49.248671 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('boxes', ' box', ' Box', ' A Single box of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["boxes", " box", " Box", " A Single box of a unit."] -2025-04-07 18:12:49.257268 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('crates', ' crate', ' Crate', ' a single crate of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["crates", " crate", " Crate", " a single crate of a unit."] -2025-04-07 18:12:49.266294 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jars', ' jar', ' Jar', ' A single Jar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jars", " jar", " Jar", " A single Jar of a unit."] -2025-04-07 18:12:49.275199 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cans', ' can', ' Can', ' A Single Can of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cans", " can", " Can", " A Single Can of a unit."] -2025-04-07 18:12:49.282805 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('bars', ' bar', ' Bars', ' A Single bar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["bars", " bar", " Bars", " A Single bar of a unit."] -2025-04-07 18:12:49.291482 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('loaves', ' loaf', ' Loaf', ' A single loaf of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["loaves", " loaf", " Loaf", " A single loaf of a unit."] -2025-04-07 18:12:49.301205 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('packs', ' pack', ' Pack', ' A Single Pack of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["packs", " pack", " Pack", " A Single Pack of a unit."] -2025-04-07 18:13:10.286385 --- CAUTION --- DatabaseError(message='duplicate key value violates unique constraint "units_plural_key"DETAIL: Key (plural)=(Plural) already exists.', payload=('Plural', ' Single', ' Fullname', ' Description'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["Plural", " Single", " Fullname", " Description"] -2025-04-07 18:13:10.298389 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tsp', ' tsp', ' Teaspoon', ' 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tsp", " tsp", " Teaspoon", " 5 millilitres in Australia New Zealand UK Canada and the US but approximately 4.93 millilitres in the US."] -2025-04-07 18:13:10.307226 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dsp', ' dsp', ' Dessertspoon', ' 10 millilitres in Australia.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dsp", " dsp", " Dessertspoon", " 10 millilitres in Australia."] -2025-04-07 18:13:10.316278 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tbsp', ' tbsp', ' Tablespoon', ' 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tbsp", " tbsp", " Tablespoon", " 20 millilitres in Australia or 15 millilitres in New Zealand the UK Canada and the US."] -2025-04-07 18:13:10.324427 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fl oz', ' fl oz', ' Fluid ounce', ' 28.41 millilitres in the UK or approximately 29.57 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fl oz", " fl oz", " Fluid ounce", " 28.41 millilitres in the UK or approximately 29.57 millilitres in the US."] -2025-04-07 18:13:10.333981 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cups', ' cup', ' Cup', ' 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cups", " cup", " Cup", " 250 millilitres in Australia and New Zealand or approximately 170.48 millilitres in the UK or approximately 227.31 millilitres in Canada and approximately 236.59 millilitres in the US."] -2025-04-07 18:13:10.343232 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('pt', ' pt', ' Pint', ' 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["pt", " pt", " Pint", " 570 millilitres in Australia approximately 568.26 millilitres in New Zealand the UK and Canada and approximately 473.18 millilitres in the US."] -2025-04-07 18:13:10.350877 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('qt', ' qt', ' Quart', ' Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["qt", " qt", " Quart", " Approximately 1136.52 millilitres in Australia New Zealand the UK and Canada and approximately 946.35 millilitres in the US."] -2025-04-07 18:13:10.359701 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('gal', ' gal', ' Gallon', ' Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["gal", " gal", " Gallon", " Approximately 4546.09 millilitres in Australia New Zealand the UK and Canada and approximately 3785.41 millilitres in the US."] -2025-04-07 18:13:10.367839 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jiggers', ' jigger', ' Jigger', ' 1.5 fluid ounces.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jiggers", " jigger", " Jigger", " 1.5 fluid ounces."] -2025-04-07 18:13:10.376504 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('oz', ' oz', ' Ounce', ' 1/4 lb for butter which can also be measured as 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["oz", " oz", " Ounce", " 1/4 lb for butter which can also be measured as 3 tablespoons."] -2025-04-07 18:13:10.384509 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('L', ' L', ' Liter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["L", " L", " Liter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:13:10.392478 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('mL', ' mL', ' Milliliter', ' Commonly used for volume measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["mL", " mL", " Milliliter", " Commonly used for volume measurement in the metric system."] -2025-04-07 18:13:10.401408 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dm3', ' dm3', ' Cubic decimeter', ' Equivalent to 1 liter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dm3", " dm3", " Cubic decimeter", " Equivalent to 1 liter."] -2025-04-07 18:13:10.410222 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('g', ' g', ' Gram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["g", " g", " Gram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:13:10.418352 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('kg', ' kg', ' Kilogram', ' Commonly used for weight measurement in the metric system.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["kg", " kg", " Kilogram", " Commonly used for weight measurement in the metric system."] -2025-04-07 18:13:10.426544 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('lbs', ' lb', ' Pound', ' Used for weight measurement in the US.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["lbs", " lb", " Pound", " Used for weight measurement in the US."] -2025-04-07 18:13:10.435351 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('fluid scruples', ' fluid scruple', ' Fluid scruple', " A unit used in the apothecaries' system but not commonly used in cooking."), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["fluid scruples", " fluid scruple", " Fluid scruple", " A unit used in the apothecaries' system but not commonly used in cooking."] -2025-04-07 18:13:10.444346 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cm3', ' cm3', ' Cubic centimeter', ' Equivalent to 1 milliliter.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cm3", " cm3", " Cubic centimeter", " Equivalent to 1 milliliter."] -2025-04-07 18:13:10.452199 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('breakfast cups', ' breakfast cup', ' Breakfast cup', ' Similar in size to the US customary cup and the metric cup.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["breakfast cups", " breakfast cup", " Breakfast cup", " Similar in size to the US customary cup and the metric cup."] -2025-04-07 18:13:10.461058 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('tumblers', ' tumbler', ' Tumblerful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["tumblers", " tumbler", " Tumblerful", " A unit used in British cookery books and recipes."] -2025-04-07 18:13:10.469292 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('winefulls', ' winefull', ' Wineglassful', ' A unit used in British cookery books and recipes.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["winefulls", " winefull", " Wineglassful", " A unit used in British cookery books and recipes."] -2025-04-07 18:13:10.478094 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('coffee cups', ' coffee cup', ' Coffee cup', ' Can vary from 100 to 200 millilitres.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["coffee cups", " coffee cup", " Coffee cup", " Can vary from 100 to 200 millilitres."] -2025-04-07 18:13:10.486368 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('sticks of butter', ' stick of butter', ' Stick of butter', ' 1/4 lb or 3 tablespoons.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["sticks of butter", " stick of butter", " Stick of butter", " 1/4 lb or 3 tablespoons."] -2025-04-07 18:13:10.494021 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('smidgens', ' smidgen', ' Smidgen', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["smidgens", " smidgen", " Smidgen", " An approximate unit of measure."] -2025-04-07 18:13:10.502494 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('dashes', ' dash', ' Dash', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["dashes", " dash", " Dash", " An approximate unit of measure."] -2025-04-07 18:13:10.510827 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('drops', ' drop', ' Drop', ' An approximate unit of measure.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["drops", " drop", " Drop", " An approximate unit of measure."] -2025-04-07 18:13:10.519133 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('eaches', ' each', ' Each', ' A single unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["eaches", " each", " Each", " A single unit."] -2025-04-07 18:13:10.528226 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('boxes', ' box', ' Box', ' A Single box of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["boxes", " box", " Box", " A Single box of a unit."] -2025-04-07 18:13:10.537276 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('crates', ' crate', ' Crate', ' a single crate of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["crates", " crate", " Crate", " a single crate of a unit."] -2025-04-07 18:13:10.544973 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('jars', ' jar', ' Jar', ' A single Jar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["jars", " jar", " Jar", " A single Jar of a unit."] -2025-04-07 18:13:10.554072 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('cans', ' can', ' Can', ' A Single Can of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["cans", " can", " Can", " A Single Can of a unit."] -2025-04-07 18:13:10.561977 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('bars', ' bar', ' Bars', ' A Single bar of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["bars", " bar", " Bars", " A Single bar of a unit."] -2025-04-07 18:13:10.570396 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('loaves', ' loaf', ' Loaf', ' A single loaf of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["loaves", " loaf", " Loaf", " A single loaf of a unit."] -2025-04-07 18:13:10.579705 --- CAUTION --- DatabaseError(message='current transaction is aborted, commands ignored until end of transaction block', payload=('packs', ' pack', ' Pack', ' A Single Pack of a unit.'), sql='INSERT INTO units(plural, single, fullname, description) VALUES (%s, %s, %s, %s) RETURNING *;') - ["packs", " pack", " Pack", " A Single Pack of a unit."]2025-04-20 19:12:42.901904 --- INFO --- logins Created! -2025-04-20 19:12:42.907042 --- INFO --- sites Created! -2025-04-20 19:12:42.916090 --- INFO --- roles Created! -2025-04-20 19:12:42.924299 --- INFO --- units Created! -2025-04-20 19:12:42.936431 --- INFO --- cost_layers Created! -2025-04-20 19:12:42.948063 --- INFO --- linked_items Created! -2025-04-20 19:12:42.956357 --- INFO --- brands Created! -2025-04-20 19:12:42.965966 --- INFO --- food_info Created! -2025-04-20 19:12:42.978005 --- INFO --- item_info Created! -2025-04-20 19:12:42.989756 --- INFO --- zones Created! -2025-04-20 19:12:42.999753 --- INFO --- locations Created! -2025-04-20 19:12:43.010766 --- INFO --- logistics_info Created! -2025-04-20 19:12:43.020793 --- INFO --- transactions Created! -2025-04-20 19:12:43.032889 --- INFO --- item Created! -2025-04-20 19:12:43.042155 --- INFO --- vendors Created! -2025-04-20 19:12:43.052984 --- INFO --- groups Created! -2025-04-20 19:12:43.065257 --- INFO --- group_items Created! -2025-04-20 19:12:43.075250 --- INFO --- receipts Created! -2025-04-20 19:12:43.085279 --- INFO --- receipt_items Created! -2025-04-20 19:12:43.095708 --- INFO --- recipes Created! -2025-04-20 19:12:43.108432 --- INFO --- recipe_items Created! -2025-04-20 19:12:43.118248 --- INFO --- shopping_lists Created! -2025-04-20 19:12:43.130093 --- INFO --- shopping_list_items Created! -2025-04-20 19:12:43.142255 --- INFO --- item_locations Created! -2025-04-20 19:12:43.152766 --- INFO --- conversions Created! -2025-04-20 19:12:43.157756 --- INFO --- Admin User Created! -2025-04-20 19:12:43.173869 --- ERROR --- module 'MyDataclasses' has no attribute 'ZonePayload' -2025-04-20 19:13:09.179803 --- INFO --- logins Created! -2025-04-20 19:13:09.186834 --- INFO --- sites Created! -2025-04-20 19:13:09.191988 --- INFO --- roles Created! -2025-04-20 19:13:09.196031 --- INFO --- units Created! -2025-04-20 19:13:09.203142 --- INFO --- cost_layers Created! -2025-04-20 19:13:09.211122 --- INFO --- linked_items Created! -2025-04-20 19:13:09.217381 --- INFO --- brands Created! -2025-04-20 19:13:09.223367 --- INFO --- food_info Created! -2025-04-20 19:13:09.231980 --- INFO --- item_info Created! -2025-04-20 19:13:09.239962 --- INFO --- zones Created! -2025-04-20 19:13:09.247043 --- INFO --- locations Created! -2025-04-20 19:13:09.254389 --- INFO --- logistics_info Created! -2025-04-20 19:13:09.261528 --- INFO --- transactions Created! -2025-04-20 19:13:09.270171 --- INFO --- item Created! -2025-04-20 19:13:09.276674 --- INFO --- vendors Created! -2025-04-20 19:13:09.283569 --- INFO --- groups Created! -2025-04-20 19:13:09.291142 --- INFO --- group_items Created! -2025-04-20 19:13:09.300047 --- INFO --- receipts Created! -2025-04-20 19:13:09.307082 --- INFO --- receipt_items Created! -2025-04-20 19:13:09.314189 --- INFO --- recipes Created! -2025-04-20 19:13:09.323320 --- INFO --- recipe_items Created! -2025-04-20 19:13:09.331286 --- INFO --- shopping_lists Created! -2025-04-20 19:13:09.338671 --- INFO --- shopping_list_items Created! -2025-04-20 19:13:09.347666 --- INFO --- item_locations Created! -2025-04-20 19:13:09.354290 --- INFO --- conversions Created! -2025-04-20 19:13:09.358352 --- INFO --- Admin User Created! -2025-04-20 19:13:09.373201 --- ERROR --- module 'MyDataclasses' has no attribute 'ZonePayload' -2025-04-20 19:14:30.040093 --- INFO --- logins Created! -2025-04-20 19:14:30.047388 --- INFO --- sites Created! -2025-04-20 19:14:30.053137 --- INFO --- roles Created! -2025-04-20 19:14:30.058339 --- INFO --- units Created! -2025-04-20 19:14:30.066445 --- INFO --- cost_layers Created! -2025-04-20 19:14:30.074589 --- INFO --- linked_items Created! -2025-04-20 19:14:30.080372 --- INFO --- brands Created! -2025-04-20 19:14:30.088112 --- INFO --- food_info Created! -2025-04-20 19:14:30.095435 --- INFO --- item_info Created! -2025-04-20 19:14:30.104268 --- INFO --- zones Created! -2025-04-20 19:14:30.111070 --- INFO --- locations Created! -2025-04-20 19:14:30.118747 --- INFO --- logistics_info Created! -2025-04-20 19:14:30.126464 --- INFO --- transactions Created! -2025-04-20 19:14:30.136123 --- INFO --- item Created! -2025-04-20 19:14:30.142326 --- INFO --- vendors Created! -2025-04-20 19:14:30.150179 --- INFO --- groups Created! -2025-04-20 19:14:30.159002 --- INFO --- group_items Created! -2025-04-20 19:14:30.165728 --- INFO --- receipts Created! -2025-04-20 19:14:30.173195 --- INFO --- receipt_items Created! -2025-04-20 19:14:30.180307 --- INFO --- recipes Created! -2025-04-20 19:14:30.188377 --- INFO --- recipe_items Created! -2025-04-20 19:14:30.195275 --- INFO --- shopping_lists Created! -2025-04-20 19:14:30.204333 --- INFO --- shopping_list_items Created! -2025-04-20 19:14:30.212189 --- INFO --- item_locations Created! -2025-04-20 19:14:30.218980 --- INFO --- conversions Created! -2025-04-20 19:14:30.223144 --- INFO --- Admin User Created! -2025-04-20 19:14:30.237347 --- ERROR --- module 'MyDataclasses' has no attribute 'ZonePayload' -2025-04-20 19:15:37.294592 --- INFO --- logins Created! -2025-04-20 19:15:37.300684 --- INFO --- sites Created! -2025-04-20 19:15:37.306214 --- INFO --- roles Created! -2025-04-20 19:15:37.310743 --- INFO --- units Created! -2025-04-20 19:15:37.320253 --- INFO --- cost_layers Created! -2025-04-20 19:15:37.328204 --- INFO --- linked_items Created! -2025-04-20 19:15:37.334340 --- INFO --- brands Created! -2025-04-20 19:15:37.341236 --- INFO --- food_info Created! -2025-04-20 19:15:37.348720 --- INFO --- item_info Created! -2025-04-20 19:15:37.358766 --- INFO --- zones Created! -2025-04-20 19:15:37.365313 --- INFO --- locations Created! -2025-04-20 19:15:37.373227 --- INFO --- logistics_info Created! -2025-04-20 19:15:37.379296 --- INFO --- transactions Created! -2025-04-20 19:15:37.387641 --- INFO --- item Created! -2025-04-20 19:15:37.395209 --- INFO --- vendors Created! -2025-04-20 19:15:37.402427 --- INFO --- groups Created! -2025-04-20 19:15:37.410391 --- INFO --- group_items Created! -2025-04-20 19:15:37.418421 --- INFO --- receipts Created! -2025-04-20 19:15:37.425524 --- INFO --- receipt_items Created! -2025-04-20 19:15:37.432240 --- INFO --- recipes Created! -2025-04-20 19:15:37.441206 --- INFO --- recipe_items Created! -2025-04-20 19:15:37.448373 --- INFO --- shopping_lists Created! -2025-04-20 19:15:37.456919 --- INFO --- shopping_list_items Created! -2025-04-20 19:15:37.465857 --- INFO --- item_locations Created! -2025-04-20 19:15:37.471974 --- INFO --- conversions Created! -2025-04-20 19:15:37.477332 --- INFO --- Admin User Created! -2025-04-20 19:15:37.488490 --- ERROR --- module 'MyDataclasses' has no attribute 'ZonePayload' -2025-04-20 19:16:04.245426 --- INFO --- logins Created! -2025-04-20 19:16:04.252369 --- INFO --- sites Created! -2025-04-20 19:16:04.257457 --- INFO --- roles Created! -2025-04-20 19:16:04.262528 --- INFO --- units Created! -2025-04-20 19:16:04.268813 --- INFO --- cost_layers Created! -2025-04-20 19:16:04.277403 --- INFO --- linked_items Created! -2025-04-20 19:16:04.282454 --- INFO --- brands Created! -2025-04-20 19:16:04.289349 --- INFO --- food_info Created! -2025-04-20 19:16:04.297588 --- INFO --- item_info Created! -2025-04-20 19:16:04.304872 --- INFO --- zones Created! -2025-04-20 19:16:04.312242 --- INFO --- locations Created! -2025-04-20 19:16:04.320032 --- INFO --- logistics_info Created! -2025-04-20 19:16:04.327526 --- INFO --- transactions Created! -2025-04-20 19:16:04.336107 --- INFO --- item Created! -2025-04-20 19:16:04.342583 --- INFO --- vendors Created! -2025-04-20 19:16:04.350295 --- INFO --- groups Created! -2025-04-20 19:16:04.357531 --- INFO --- group_items Created! -2025-04-20 19:16:04.365626 --- INFO --- receipts Created! -2025-04-20 19:16:04.372230 --- INFO --- receipt_items Created! -2025-04-20 19:16:04.379414 --- INFO --- recipes Created! -2025-04-20 19:16:04.387527 --- INFO --- recipe_items Created! -2025-04-20 19:16:04.394398 --- INFO --- shopping_lists Created! -2025-04-20 19:16:04.403440 --- INFO --- shopping_list_items Created! -2025-04-20 19:16:04.410510 --- INFO --- item_locations Created! -2025-04-20 19:16:04.418073 --- INFO --- conversions Created! -2025-04-20 19:16:04.423218 --- INFO --- Admin User Created! -2025-04-20 19:16:04.436197 --- ERROR --- module 'MyDataclasses' has no attribute 'ZonePayload' -2025-04-20 19:16:58.466588 --- INFO --- logins Created! -2025-04-20 19:16:58.472688 --- INFO --- sites Created! -2025-04-20 19:16:58.477737 --- INFO --- roles Created! -2025-04-20 19:16:58.481251 --- INFO --- units Created! -2025-04-20 19:16:58.489772 --- INFO --- cost_layers Created! -2025-04-20 19:16:58.497672 --- INFO --- linked_items Created! -2025-04-20 19:16:58.502626 --- INFO --- brands Created! -2025-04-20 19:16:58.509339 --- INFO --- food_info Created! -2025-04-20 19:16:58.516796 --- INFO --- item_info Created! -2025-04-20 19:16:58.524536 --- INFO --- zones Created! -2025-04-20 19:16:58.532376 --- INFO --- locations Created! -2025-04-20 19:16:58.540104 --- INFO --- logistics_info Created! -2025-04-20 19:16:58.547122 --- INFO --- transactions Created! -2025-04-20 19:16:58.555955 --- INFO --- item Created! -2025-04-20 19:16:58.562475 --- INFO --- vendors Created! -2025-04-20 19:16:58.570565 --- INFO --- groups Created! -2025-04-20 19:16:58.578991 --- INFO --- group_items Created! -2025-04-20 19:16:58.586669 --- INFO --- receipts Created! -2025-04-20 19:16:58.594838 --- INFO --- receipt_items Created! -2025-04-20 19:16:58.601902 --- INFO --- recipes Created! -2025-04-20 19:16:58.608915 --- INFO --- recipe_items Created! -2025-04-20 19:16:58.617684 --- INFO --- shopping_lists Created! -2025-04-20 19:16:58.625427 --- INFO --- shopping_list_items Created! -2025-04-20 19:16:58.635479 --- INFO --- item_locations Created! -2025-04-20 19:16:58.642372 --- INFO --- conversions Created! -2025-04-20 19:16:58.646415 --- INFO --- Admin User Created! -2025-04-20 19:16:58.668418 --- ERROR --- module 'MyDataclasses' has no attribute 'VendorPayload' -2025-04-20 19:17:15.674844 --- INFO --- logins Created! -2025-04-20 19:17:15.682368 --- INFO --- sites Created! -2025-04-20 19:17:15.687761 --- INFO --- roles Created! -2025-04-20 19:17:15.692281 --- INFO --- units Created! -2025-04-20 19:17:15.700205 --- INFO --- cost_layers Created! -2025-04-20 19:17:15.707736 --- INFO --- linked_items Created! -2025-04-20 19:17:15.714280 --- INFO --- brands Created! -2025-04-20 19:17:15.720500 --- INFO --- food_info Created! -2025-04-20 19:17:15.728902 --- INFO --- item_info Created! -2025-04-20 19:17:15.735575 --- INFO --- zones Created! -2025-04-20 19:17:15.743577 --- INFO --- locations Created! -2025-04-20 19:17:15.750537 --- INFO --- logistics_info Created! -2025-04-20 19:17:15.757739 --- INFO --- transactions Created! -2025-04-20 19:17:15.767727 --- INFO --- item Created! -2025-04-20 19:17:15.773470 --- INFO --- vendors Created! -2025-04-20 19:17:15.781078 --- INFO --- groups Created! -2025-04-20 19:17:15.791354 --- INFO --- group_items Created! -2025-04-20 19:17:15.799134 --- INFO --- receipts Created! -2025-04-20 19:17:15.806841 --- INFO --- receipt_items Created! -2025-04-20 19:17:15.813370 --- INFO --- recipes Created! -2025-04-20 19:17:15.821296 --- INFO --- recipe_items Created! -2025-04-20 19:17:15.828999 --- INFO --- shopping_lists Created! -2025-04-20 19:17:15.837757 --- INFO --- shopping_list_items Created! -2025-04-20 19:17:15.846351 --- INFO --- item_locations Created! -2025-04-20 19:17:15.853372 --- INFO --- conversions Created! -2025-04-20 19:17:15.856625 --- INFO --- Admin User Created! -2025-04-20 19:17:15.871202 --- ERROR --- module 'MyDataclasses' has no attribute 'VendorPayload' -2025-04-20 19:17:59.229086 --- INFO --- logins Created! -2025-04-20 19:17:59.236178 --- INFO --- sites Created! -2025-04-20 19:17:59.241179 --- INFO --- roles Created! -2025-04-20 19:17:59.244639 --- INFO --- units Created! -2025-04-20 19:17:59.252556 --- INFO --- cost_layers Created! -2025-04-20 19:17:59.258931 --- INFO --- linked_items Created! -2025-04-20 19:17:59.265640 --- INFO --- brands Created! -2025-04-20 19:17:59.271635 --- INFO --- food_info Created! -2025-04-20 19:17:59.281402 --- INFO --- item_info Created! -2025-04-20 19:17:59.289153 --- INFO --- zones Created! -2025-04-20 19:17:59.295595 --- INFO --- locations Created! -2025-04-20 19:17:59.303510 --- INFO --- logistics_info Created! -2025-04-20 19:17:59.310620 --- INFO --- transactions Created! -2025-04-20 19:17:59.318745 --- INFO --- item Created! -2025-04-20 19:17:59.325400 --- INFO --- vendors Created! -2025-04-20 19:17:59.333182 --- INFO --- groups Created! -2025-04-20 19:17:59.341367 --- INFO --- group_items Created! -2025-04-20 19:17:59.348914 --- INFO --- receipts Created! -2025-04-20 19:17:59.355674 --- INFO --- receipt_items Created! -2025-04-20 19:17:59.363428 --- INFO --- recipes Created! -2025-04-20 19:17:59.371858 --- INFO --- recipe_items Created! -2025-04-20 19:17:59.378939 --- INFO --- shopping_lists Created! -2025-04-20 19:17:59.388138 --- INFO --- shopping_list_items Created! -2025-04-20 19:17:59.395999 --- INFO --- item_locations Created! -2025-04-20 19:17:59.402528 --- INFO --- conversions Created! -2025-04-20 19:17:59.406967 --- INFO --- Admin User Created! -2025-04-20 19:43:36.914652 --- INFO --- logins Created! -2025-04-20 19:43:36.922436 --- INFO --- sites Created! -2025-04-20 19:43:36.927458 --- INFO --- roles Created! -2025-04-20 19:43:36.931555 --- INFO --- units Created! -2025-04-20 19:43:36.939094 --- INFO --- cost_layers Created! -2025-04-20 19:43:36.947628 --- INFO --- linked_items Created! -2025-04-20 19:43:36.953631 --- INFO --- brands Created! -2025-04-20 19:43:36.959852 --- INFO --- food_info Created! -2025-04-20 19:43:36.968778 --- INFO --- item_info Created! -2025-04-20 19:43:36.976558 --- INFO --- zones Created! -2025-04-20 19:43:36.983310 --- INFO --- locations Created! -2025-04-20 19:43:36.990780 --- INFO --- logistics_info Created! -2025-04-20 19:43:36.998082 --- INFO --- transactions Created! -2025-04-20 19:43:37.005780 --- INFO --- item Created! -2025-04-20 19:43:37.013460 --- INFO --- vendors Created! -2025-04-20 19:43:37.020215 --- INFO --- groups Created! -2025-04-20 19:43:37.028782 --- INFO --- group_items Created! -2025-04-20 19:43:37.036257 --- INFO --- receipts Created! -2025-04-20 19:43:37.043565 --- INFO --- receipt_items Created! -2025-04-20 19:43:37.049814 --- INFO --- recipes Created! -2025-04-20 19:43:37.057702 --- INFO --- recipe_items Created! -2025-04-20 19:43:37.065761 --- INFO --- shopping_lists Created! -2025-04-20 19:43:37.073370 --- INFO --- shopping_list_items Created! -2025-04-20 19:43:37.081053 --- INFO --- item_locations Created! -2025-04-20 19:43:37.088088 --- INFO --- conversions Created! -2025-04-20 19:43:37.093156 --- INFO --- Admin User Created! -2025-04-20 19:45:44.395265 --- INFO --- item_info DROPPED! -2025-04-20 19:45:44.405900 --- INFO --- items DROPPED! -2025-04-20 19:45:44.414804 --- INFO --- cost_layers DROPPED! -2025-04-20 19:45:44.422703 --- INFO --- linked_items DROPPED! -2025-04-20 19:45:44.430346 --- INFO --- transactions DROPPED! -2025-04-20 19:45:44.437350 --- INFO --- brands DROPPED! -2025-04-20 19:45:44.444569 --- INFO --- food_info DROPPED! -2025-04-20 19:45:44.452885 --- INFO --- logistics_info DROPPED! -2025-04-20 19:48:31.583108 --- INFO --- item_info DROPPED! -2025-04-20 19:48:31.591460 --- INFO --- items DROPPED! -2025-04-20 19:48:31.596408 --- INFO --- cost_layers DROPPED! -2025-04-20 19:48:31.601566 --- INFO --- linked_items DROPPED! -2025-04-20 19:48:31.607329 --- INFO --- transactions DROPPED! -2025-04-20 19:48:31.611822 --- INFO --- brands DROPPED! -2025-04-20 19:48:31.615984 --- INFO --- food_info DROPPED! -2025-04-20 19:48:31.621444 --- INFO --- logistics_info DROPPED! -2025-04-20 19:51:08.211394 --- INFO --- item_info DROPPED! -2025-04-20 19:51:08.219628 --- INFO --- items DROPPED! -2025-04-20 19:51:08.225163 --- INFO --- cost_layers DROPPED! -2025-04-20 19:51:08.231236 --- INFO --- linked_items DROPPED! -2025-04-20 19:51:08.236599 --- INFO --- transactions DROPPED! -2025-04-20 19:51:08.241802 --- INFO --- brands DROPPED! -2025-04-20 19:51:08.247341 --- INFO --- food_info DROPPED! -2025-04-20 19:51:08.251883 --- INFO --- logistics_info DROPPED! -2025-04-20 19:52:54.948592 --- INFO --- item_info DROPPED! -2025-04-20 19:52:54.956447 --- INFO --- items DROPPED! -2025-04-20 19:52:54.962023 --- INFO --- cost_layers DROPPED! -2025-04-20 19:52:54.967556 --- INFO --- linked_items DROPPED! -2025-04-20 19:52:54.973165 --- INFO --- transactions DROPPED! -2025-04-20 19:52:54.976632 --- INFO --- brands DROPPED! -2025-04-20 19:52:54.981398 --- INFO --- food_info DROPPED! -2025-04-20 19:52:54.985072 --- INFO --- logistics_info DROPPED! -2025-04-20 19:52:54.989456 --- ERROR --- DatabaseError(message='table "testsite_zones" does not exist', payload=DROP TABLE TestSite_zones CASCADE;, sql='zones') -2025-04-20 19:56:25.272595 --- INFO --- item_info DROPPED! -2025-04-20 19:56:25.282064 --- INFO --- items DROPPED! -2025-04-20 19:56:25.287581 --- INFO --- cost_layers DROPPED! -2025-04-20 19:56:25.293563 --- INFO --- linked_items DROPPED! -2025-04-20 19:56:25.298578 --- INFO --- transactions DROPPED! -2025-04-20 19:56:25.303670 --- INFO --- brands DROPPED! -2025-04-20 19:56:25.307742 --- INFO --- food_info DROPPED! -2025-04-20 19:56:25.313677 --- INFO --- logistics_info DROPPED! -2025-04-20 19:56:25.317716 --- INFO --- zones DROPPED! -2025-04-20 19:56:25.325855 --- INFO --- locations DROPPED! -2025-04-20 19:56:25.330990 --- INFO --- vendors DROPPED! -2025-04-20 19:56:25.337850 --- INFO --- group_items DROPPED! -2025-04-20 19:56:25.346723 --- INFO --- groups DROPPED! -2025-04-20 19:56:25.354480 --- INFO --- receipt_items DROPPED! -2025-04-20 19:56:25.362108 --- INFO --- receipts DROPPED! -2025-04-20 19:56:25.369684 --- INFO --- recipe_items DROPPED! -2025-04-20 19:56:25.377807 --- INFO --- recipes DROPPED! -2025-04-20 19:56:25.385620 --- INFO --- shopping_list_items DROPPED! -2025-04-20 19:56:25.393541 --- INFO --- shopping_lists DROPPED! -2025-04-20 19:56:25.401384 --- INFO --- item_locations DROPPED! -2025-04-20 19:56:25.405523 --- INFO --- conversions DROPPED! -2025-04-20 19:58:10.901757 --- INFO --- item_info DROPPED! -2025-04-20 19:58:10.911845 --- INFO --- items DROPPED! -2025-04-20 19:58:10.917872 --- INFO --- cost_layers DROPPED! -2025-04-20 19:58:10.922065 --- INFO --- linked_items DROPPED! -2025-04-20 19:58:10.928478 --- INFO --- transactions DROPPED! -2025-04-20 19:58:10.932582 --- INFO --- brands DROPPED! -2025-04-20 19:58:10.936689 --- INFO --- food_info DROPPED! -2025-04-20 19:58:10.941754 --- INFO --- logistics_info DROPPED! -2025-04-20 19:58:36.985976 --- INFO --- item_info DROPPED! -2025-04-20 19:58:36.996149 --- INFO --- items DROPPED! -2025-04-20 19:58:37.001166 --- INFO --- cost_layers DROPPED! -2025-04-20 19:58:37.006862 --- INFO --- linked_items DROPPED! -2025-04-20 19:58:37.012179 --- INFO --- transactions DROPPED! -2025-04-20 19:58:37.016694 --- INFO --- brands DROPPED! -2025-04-20 19:58:37.020758 --- INFO --- food_info DROPPED! -2025-04-20 19:58:37.026061 --- INFO --- logistics_info DROPPED! -2025-04-20 20:07:37.732426 --- INFO --- item_info DROPPED! -2025-04-20 20:07:37.740467 --- INFO --- items DROPPED! -2025-04-20 20:07:37.745042 --- INFO --- cost_layers DROPPED! -2025-04-20 20:07:37.750893 --- INFO --- linked_items DROPPED! -2025-04-20 20:07:37.754429 --- INFO --- transactions DROPPED! -2025-04-20 20:07:37.758729 --- INFO --- brands DROPPED! -2025-04-20 20:07:37.763189 --- INFO --- food_info DROPPED! -2025-04-20 20:07:37.767020 --- INFO --- logistics_info DROPPED! -2025-04-20 20:07:37.771055 --- INFO --- zones DROPPED! -2025-04-20 20:07:37.775628 --- INFO --- locations DROPPED! -2025-04-20 20:07:37.779735 --- INFO --- vendors DROPPED! -2025-04-20 20:07:37.784456 --- INFO --- group_items DROPPED! -2025-04-20 20:07:37.788915 --- INFO --- groups DROPPED! -2025-04-20 20:07:37.793395 --- INFO --- receipt_items DROPPED! -2025-04-20 20:07:37.798563 --- INFO --- receipts DROPPED! -2025-04-20 20:07:37.803691 --- INFO --- recipe_items DROPPED! -2025-04-20 20:07:37.808903 --- INFO --- recipes DROPPED! -2025-04-20 20:07:37.813005 --- INFO --- shopping_list_items DROPPED! -2025-04-20 20:07:37.818899 --- INFO --- shopping_lists DROPPED! -2025-04-20 20:07:37.823062 --- INFO --- item_locations DROPPED! -2025-04-20 20:07:37.827577 --- INFO --- conversions DROPPED! -2025-04-20 20:10:51.725827 --- INFO --- item_info DROPPED! -2025-04-20 20:10:51.735709 --- INFO --- items DROPPED! -2025-04-20 20:10:51.741311 --- INFO --- cost_layers DROPPED! -2025-04-20 20:10:51.745890 --- INFO --- linked_items DROPPED! -2025-04-20 20:10:51.750915 --- INFO --- transactions DROPPED! -2025-04-20 20:10:51.755599 --- INFO --- brands DROPPED! -2025-04-20 20:10:51.761188 --- INFO --- food_info DROPPED! -2025-04-20 20:10:51.765063 --- INFO --- logistics_info DROPPED! -2025-04-20 20:10:51.769585 --- INFO --- zones DROPPED! -2025-04-20 20:10:51.774893 --- INFO --- locations DROPPED! -2025-04-20 20:10:51.779100 --- INFO --- vendors DROPPED! -2025-04-20 20:10:51.784704 --- INFO --- group_items DROPPED! -2025-04-20 20:10:51.789211 --- INFO --- groups DROPPED! -2025-04-20 20:10:51.793357 --- INFO --- receipt_items DROPPED! -2025-04-20 20:10:51.799194 --- INFO --- receipts DROPPED! -2025-04-20 20:10:51.803289 --- INFO --- recipe_items DROPPED! -2025-04-20 20:10:51.808076 --- INFO --- recipes DROPPED! -2025-04-20 20:10:51.813010 --- INFO --- shopping_list_items DROPPED! -2025-04-20 20:10:51.817596 --- INFO --- shopping_lists DROPPED! -2025-04-20 20:10:51.821643 --- INFO --- item_locations DROPPED! -2025-04-20 20:10:51.826587 --- INFO --- conversions DROPPED! -2025-04-20 20:11:14.056575 --- INFO --- logins Created! -2025-04-20 20:11:14.063971 --- INFO --- sites Created! -2025-04-20 20:11:14.069365 --- INFO --- roles Created! -2025-04-20 20:11:14.073411 --- INFO --- units Created! -2025-04-20 20:11:14.082962 --- INFO --- cost_layers Created! -2025-04-20 20:11:14.091859 --- INFO --- linked_items Created! -2025-04-20 20:11:14.096907 --- INFO --- brands Created! -2025-04-20 20:11:14.104713 --- INFO --- food_info Created! -2025-04-20 20:11:14.110843 --- INFO --- item_info Created! -2025-04-20 20:11:14.119202 --- INFO --- zones Created! -2025-04-20 20:11:14.125756 --- INFO --- locations Created! -2025-04-20 20:11:14.131825 --- INFO --- logistics_info Created! -2025-04-20 20:11:14.138848 --- INFO --- transactions Created! -2025-04-20 20:11:14.146927 --- INFO --- item Created! -2025-04-20 20:11:14.152932 --- INFO --- vendors Created! -2025-04-20 20:11:14.159374 --- INFO --- groups Created! -2025-04-20 20:11:14.166932 --- INFO --- group_items Created! -2025-04-20 20:11:14.174750 --- INFO --- receipts Created! -2025-04-20 20:11:14.181847 --- INFO --- receipt_items Created! -2025-04-20 20:11:14.186633 --- INFO --- recipes Created! -2025-04-20 20:11:14.194852 --- INFO --- recipe_items Created! -2025-04-20 20:11:14.201475 --- INFO --- shopping_lists Created! -2025-04-20 20:11:14.209506 --- INFO --- shopping_list_items Created! -2025-04-20 20:11:14.217085 --- INFO --- item_locations Created! -2025-04-20 20:11:14.224012 --- INFO --- conversions Created! -2025-04-20 20:11:14.227800 --- INFO --- Admin User Created! -2025-04-20 20:11:14.240274 --- ERROR --- DatabaseError(message='tuple index out of range', payload=('main', ''), sql='INSERT INTO testsite_zones(name, description, site_id) VALUES (%s, %s, %s) RETURNING *;') -2025-04-20 20:12:29.007584 --- INFO --- logins Created! -2025-04-20 20:12:29.015493 --- INFO --- sites Created! -2025-04-20 20:12:29.021142 --- INFO --- roles Created! -2025-04-20 20:12:29.025026 --- INFO --- units Created! -2025-04-20 20:12:29.032140 --- INFO --- cost_layers Created! -2025-04-20 20:12:29.039496 --- INFO --- linked_items Created! -2025-04-20 20:12:29.046115 --- INFO --- brands Created! -2025-04-20 20:12:29.052237 --- INFO --- food_info Created! -2025-04-20 20:12:29.060538 --- INFO --- item_info Created! -2025-04-20 20:12:29.066956 --- INFO --- zones Created! -2025-04-20 20:12:29.073431 --- INFO --- locations Created! -2025-04-20 20:12:29.082564 --- INFO --- logistics_info Created! -2025-04-20 20:12:29.090000 --- INFO --- transactions Created! -2025-04-20 20:12:29.098688 --- INFO --- item Created! -2025-04-20 20:12:29.104873 --- INFO --- vendors Created! -2025-04-20 20:12:29.112717 --- INFO --- groups Created! -2025-04-20 20:12:29.120101 --- INFO --- group_items Created! -2025-04-20 20:12:29.128686 --- INFO --- receipts Created! -2025-04-20 20:12:29.135147 --- INFO --- receipt_items Created! -2025-04-20 20:12:29.141797 --- INFO --- recipes Created! -2025-04-20 20:12:29.151352 --- INFO --- recipe_items Created! -2025-04-20 20:12:29.158714 --- INFO --- shopping_lists Created! -2025-04-20 20:12:29.166933 --- INFO --- shopping_list_items Created! -2025-04-20 20:12:29.175124 --- INFO --- item_locations Created! -2025-04-20 20:12:29.181717 --- INFO --- conversions Created! -2025-04-20 20:12:29.186271 --- INFO --- Admin User Created! -2025-04-20 20:12:38.923616 --- INFO --- item_info DROPPED! -2025-04-20 20:12:38.932843 --- INFO --- items DROPPED! -2025-04-20 20:12:38.937372 --- INFO --- cost_layers DROPPED! -2025-04-20 20:12:38.942503 --- INFO --- linked_items DROPPED! -2025-04-20 20:12:38.946721 --- INFO --- transactions DROPPED! -2025-04-20 20:12:38.951727 --- INFO --- brands DROPPED! -2025-04-20 20:12:38.955969 --- INFO --- food_info DROPPED! -2025-04-20 20:12:38.961360 --- INFO --- logistics_info DROPPED! -2025-04-20 20:12:38.966848 --- INFO --- zones DROPPED! -2025-04-20 20:12:38.970884 --- INFO --- locations DROPPED! -2025-04-20 20:12:38.975885 --- INFO --- vendors DROPPED! -2025-04-20 20:12:38.980966 --- INFO --- group_items DROPPED! -2025-04-20 20:12:38.985746 --- INFO --- groups DROPPED! -2025-04-20 20:12:38.989709 --- INFO --- receipt_items DROPPED! -2025-04-20 20:12:38.994949 --- INFO --- receipts DROPPED! -2025-04-20 20:12:38.998971 --- INFO --- recipe_items DROPPED! -2025-04-20 20:12:39.004057 --- INFO --- recipes DROPPED! -2025-04-20 20:12:39.009013 --- INFO --- shopping_list_items DROPPED! -2025-04-20 20:12:39.013298 --- INFO --- shopping_lists DROPPED! -2025-04-20 20:12:39.017813 --- INFO --- item_locations DROPPED! -2025-04-20 20:12:39.022064 --- INFO --- conversions DROPPED! -2025-04-20 20:32:27.356365 --- INFO --- logins Created! -2025-04-20 20:32:27.364095 --- INFO --- sites Created! -2025-04-20 20:32:27.368637 --- INFO --- roles Created! -2025-04-20 20:32:27.374196 --- INFO --- units Created! -2025-04-20 20:32:27.381877 --- INFO --- cost_layers Created! -2025-04-20 20:32:27.389138 --- INFO --- linked_items Created! -2025-04-20 20:32:27.395362 --- INFO --- brands Created! -2025-04-20 20:32:27.402835 --- INFO --- food_info Created! -2025-04-20 20:32:27.409510 --- INFO --- item_info Created! -2025-04-20 20:32:27.417471 --- INFO --- zones Created! -2025-04-20 20:32:27.424663 --- INFO --- locations Created! -2025-04-20 20:32:27.433133 --- INFO --- logistics_info Created! -2025-04-20 20:32:27.439780 --- INFO --- transactions Created! -2025-04-20 20:32:27.448585 --- INFO --- item Created! -2025-04-20 20:32:27.455303 --- INFO --- vendors Created! -2025-04-20 20:32:27.462869 --- INFO --- groups Created! -2025-04-20 20:32:27.470653 --- INFO --- group_items Created! -2025-04-20 20:32:27.478653 --- INFO --- receipts Created! -2025-04-20 20:32:27.486804 --- INFO --- receipt_items Created! -2025-04-20 20:32:27.493141 --- INFO --- recipes Created! -2025-04-20 20:32:27.500870 --- INFO --- recipe_items Created! -2025-04-20 20:32:27.507862 --- INFO --- shopping_lists Created! -2025-04-20 20:32:27.515340 --- INFO --- shopping_list_items Created! -2025-04-20 20:32:27.524287 --- INFO --- item_locations Created! -2025-04-20 20:32:27.532196 --- INFO --- conversions Created! -2025-04-20 20:32:27.535331 --- INFO --- Admin User Created! -2025-04-20 20:33:25.173233 --- INFO --- item_info DROPPED! -2025-04-20 20:33:25.182788 --- INFO --- items DROPPED! -2025-04-20 20:33:25.187318 --- INFO --- cost_layers DROPPED! -2025-04-20 20:33:25.193746 --- INFO --- linked_items DROPPED! -2025-04-20 20:33:25.197263 --- INFO --- transactions DROPPED! -2025-04-20 20:33:25.202565 --- INFO --- brands DROPPED! -2025-04-20 20:33:25.207124 --- INFO --- food_info DROPPED! -2025-04-20 20:33:25.213012 --- INFO --- logistics_info DROPPED! -2025-04-20 20:33:25.218554 --- INFO --- zones DROPPED! -2025-04-20 20:33:25.222613 --- INFO --- locations DROPPED! -2025-04-20 20:33:25.227136 --- INFO --- vendors DROPPED! -2025-04-20 20:33:25.232695 --- INFO --- group_items DROPPED! -2025-04-20 20:33:25.237264 --- INFO --- groups DROPPED! -2025-04-20 20:33:25.241580 --- INFO --- receipt_items DROPPED! -2025-04-20 20:33:25.246657 --- INFO --- receipts DROPPED! -2025-04-20 20:33:25.251050 --- INFO --- recipe_items DROPPED! -2025-04-20 20:33:25.255068 --- INFO --- recipes DROPPED! -2025-04-20 20:33:25.260690 --- INFO --- shopping_list_items DROPPED! -2025-04-20 20:33:25.265769 --- INFO --- shopping_lists DROPPED! -2025-04-20 20:33:25.269793 --- INFO --- item_locations DROPPED! -2025-04-20 20:33:25.273824 --- INFO --- conversions DROPPED! -2025-04-20 20:34:25.344816 --- INFO --- logins Created! -2025-04-20 20:34:25.352155 --- INFO --- sites Created! -2025-04-20 20:34:25.357696 --- INFO --- roles Created! -2025-04-20 20:34:25.363010 --- INFO --- units Created! -2025-04-20 20:34:25.370030 --- INFO --- cost_layers Created! -2025-04-20 20:34:25.377554 --- INFO --- linked_items Created! -2025-04-20 20:34:25.383668 --- INFO --- brands Created! -2025-04-20 20:34:25.390875 --- INFO --- food_info Created! -2025-04-20 20:34:25.397424 --- INFO --- item_info Created! -2025-04-20 20:34:25.405761 --- INFO --- zones Created! -2025-04-20 20:34:25.412801 --- INFO --- locations Created! -2025-04-20 20:34:25.420564 --- INFO --- logistics_info Created! -2025-04-20 20:34:25.427949 --- INFO --- transactions Created! -2025-04-20 20:34:25.435344 --- INFO --- item Created! -2025-04-20 20:34:25.442389 --- INFO --- vendors Created! -2025-04-20 20:34:25.449534 --- INFO --- groups Created! -2025-04-20 20:34:25.457550 --- INFO --- group_items Created! -2025-04-20 20:34:25.465405 --- INFO --- receipts Created! -2025-04-20 20:34:25.471947 --- INFO --- receipt_items Created! -2025-04-20 20:34:25.478815 --- INFO --- recipes Created! -2025-04-20 20:34:25.486803 --- INFO --- recipe_items Created! -2025-04-20 20:34:25.495032 --- INFO --- shopping_lists Created! -2025-04-20 20:34:25.503567 --- INFO --- shopping_list_items Created! -2025-04-20 20:34:25.511863 --- INFO --- item_locations Created! -2025-04-20 20:34:25.517088 --- INFO --- conversions Created! -2025-04-20 20:34:25.522653 --- INFO --- Admin User Created! -2025-04-20 20:34:40.207702 --- INFO --- item_info DROPPED! -2025-04-20 20:34:40.217297 --- INFO --- items DROPPED! -2025-04-20 20:34:40.223866 --- INFO --- cost_layers DROPPED! -2025-04-20 20:34:40.228928 --- INFO --- linked_items DROPPED! -2025-04-20 20:34:40.233942 --- INFO --- transactions DROPPED! -2025-04-20 20:34:40.238435 --- INFO --- brands DROPPED! -2025-04-20 20:34:40.243588 --- INFO --- food_info DROPPED! -2025-04-20 20:34:40.248615 --- INFO --- logistics_info DROPPED! -2025-04-20 20:34:40.252808 --- INFO --- zones DROPPED! -2025-04-20 20:34:40.258575 --- INFO --- locations DROPPED! -2025-04-20 20:34:40.262926 --- INFO --- vendors DROPPED! -2025-04-20 20:34:40.267004 --- INFO --- group_items DROPPED! -2025-04-20 20:34:40.272103 --- INFO --- groups DROPPED! -2025-04-20 20:34:40.276648 --- INFO --- receipt_items DROPPED! -2025-04-20 20:34:40.281217 --- INFO --- receipts DROPPED! -2025-04-20 20:34:40.287034 --- INFO --- recipe_items DROPPED! -2025-04-20 20:34:40.291009 --- INFO --- recipes DROPPED! -2025-04-20 20:34:40.295365 --- INFO --- shopping_list_items DROPPED! -2025-04-20 20:34:40.301096 --- INFO --- shopping_lists DROPPED! -2025-04-20 20:34:40.305141 --- INFO --- item_locations DROPPED! -2025-04-20 20:34:40.310973 --- INFO --- conversions DROPPED! -2025-04-20 21:03:22.361206 --- INFO --- logins Created! -2025-04-20 21:03:22.368210 --- INFO --- sites Created! -2025-04-20 21:03:22.372737 --- INFO --- roles Created! -2025-04-20 21:03:22.376787 --- INFO --- units Created! -2025-04-20 21:03:22.384390 --- INFO --- cost_layers Created! -2025-04-20 21:03:22.392461 --- INFO --- linked_items Created! -2025-04-20 21:03:22.397727 --- INFO --- brands Created! -2025-04-20 21:03:22.403723 --- INFO --- food_info Created! -2025-04-20 21:03:22.411420 --- INFO --- item_info Created! -2025-04-20 21:03:22.418983 --- INFO --- zones Created! -2025-04-20 21:03:22.426220 --- INFO --- locations Created! -2025-04-20 21:03:22.433434 --- INFO --- logistics_info Created! -2025-04-20 21:03:22.440189 --- INFO --- transactions Created! -2025-04-20 21:03:22.448293 --- INFO --- item Created! -2025-04-20 21:03:22.455434 --- INFO --- vendors Created! -2025-04-20 21:03:22.462439 --- INFO --- groups Created! -2025-04-20 21:03:22.469950 --- INFO --- group_items Created! -2025-04-20 21:03:22.477434 --- INFO --- receipts Created! -2025-04-20 21:03:22.484434 --- INFO --- receipt_items Created! -2025-04-20 21:03:22.491212 --- INFO --- recipes Created! -2025-04-20 21:03:22.499338 --- INFO --- recipe_items Created! -2025-04-20 21:03:22.506939 --- INFO --- shopping_lists Created! -2025-04-20 21:03:22.514674 --- INFO --- shopping_list_items Created! -2025-04-20 21:03:22.522661 --- INFO --- item_locations Created! -2025-04-20 21:03:22.529320 --- INFO --- conversions Created! -2025-04-20 21:03:22.533343 --- INFO --- Admin User Created! -2025-04-20 21:07:46.103441 --- INFO --- item_info DROPPED! -2025-04-20 21:07:46.113647 --- INFO --- items DROPPED! -2025-04-20 21:07:46.119615 --- INFO --- cost_layers DROPPED! -2025-04-20 21:07:46.125899 --- INFO --- linked_items DROPPED! -2025-04-20 21:07:46.130623 --- INFO --- transactions DROPPED! -2025-04-20 21:07:46.134817 --- INFO --- brands DROPPED! -2025-04-20 21:07:46.139474 --- INFO --- food_info DROPPED! -2025-04-20 21:07:46.145048 --- INFO --- logistics_info DROPPED! -2025-04-20 21:07:46.150355 --- INFO --- zones DROPPED! -2025-04-20 21:07:46.155777 --- INFO --- locations DROPPED! -2025-04-20 21:07:46.160313 --- INFO --- vendors DROPPED! -2025-04-20 21:07:46.165662 --- INFO --- group_items DROPPED! -2025-04-20 21:07:46.169670 --- INFO --- groups DROPPED! -2025-04-20 21:07:46.174114 --- INFO --- receipt_items DROPPED! -2025-04-20 21:07:46.179634 --- INFO --- receipts DROPPED! -2025-04-20 21:07:46.184753 --- INFO --- recipe_items DROPPED! -2025-04-20 21:07:46.189291 --- INFO --- recipes DROPPED! -2025-04-20 21:07:46.193588 --- INFO --- shopping_list_items DROPPED! -2025-04-20 21:07:46.197995 --- INFO --- shopping_lists DROPPED! -2025-04-20 21:07:46.203577 --- INFO --- item_locations DROPPED! -2025-04-20 21:07:46.208195 --- INFO --- conversions DROPPED! diff --git a/test.txt b/test.txt deleted file mode 100644 index 2186840..0000000 --- a/test.txt +++ /dev/null @@ -1,1401 +0,0 @@ -ALTER TABLE main_receipt_items -ALTER COLUMN uom TYPE INTEGER -USING uom::INTEGER; - - - - - -{ - "id": "0853555006870", - "lc": "en", - "_id": "0853555006870", - "rev": 17, - "code": "0853555006870", - "lang": "en", - "teams": "chocolatine,la-robe-est-bleue", - "brands": "GoMacro, LLC", - "images": { - "1": { - "sizes": { - "100": { - "h": 87, - "w": 100 - }, - "400": { - "h": 349, - "w": 400 - }, - "full": { - "h": 878, - "w": 1005 - } - }, - "uploader": "kiliweb", - "uploaded_t": 1618700429 - }, - "2": { - "sizes": { - "100": { - "h": 100, - "w": 76 - }, - "400": { - "h": 400, - "w": 303 - }, - "full": { - "h": 465, - "w": 352 - } - }, - "uploader": "kiliweb", - "uploaded_t": 1618700430 - }, - "3": { - "sizes": { - "100": { - "h": 100, - "w": 75 - }, - "400": { - "h": 400, - "w": 300 - }, - "full": { - "h": 4032, - "w": 3024 - } - }, - "uploader": "absmith", - "uploaded_t": 1730328128 - }, - "4": { - "sizes": { - "100": { - "h": 100, - "w": 75 - }, - "400": { - "h": 400, - "w": 300 - }, - "full": { - "h": 4032, - "w": 3024 - } - }, - "uploader": "absmith", - "uploaded_t": 1730328247 - }, - "front_en": { - "x1": "-1", - "x2": "-1", - "y1": "-1", - "y2": "-1", - "rev": "3", - "angle": 0, - "imgid": "1", - "sizes": { - "100": { - "h": 87, - "w": 100 - }, - "200": { - "h": 175, - "w": 200 - }, - "400": { - "h": 349, - "w": 400 - }, - "full": { - "h": 878, - "w": 1005 - } - }, - "geometry": "0x0--1--1", - "normalize": null, - "white_magic": null, - "coordinates_image_size": "full" - }, - "nutrition_en": { - "x1": "-1", - "x2": "-1", - "y1": "-1", - "y2": "-1", - "rev": "13", - "angle": 0, - "imgid": "3", - "sizes": { - "100": { - "h": 100, - "w": 75 - }, - "200": { - "h": 200, - "w": 150 - }, - "400": { - "h": 400, - "w": 300 - }, - "full": { - "h": 4032, - "w": 3024 - } - }, - "geometry": "0x0--1--1", - "normalize": null, - "white_magic": null, - "coordinates_image_size": "full" - }, - "ingredients_en": { - "x1": "-1", - "x2": "-1", - "y1": "-1", - "y2": "-1", - "rev": "16", - "angle": 0, - "imgid": "4", - "sizes": { - "100": { - "h": 100, - "w": 75 - }, - "200": { - "h": 200, - "w": 150 - }, - "400": { - "h": 400, - "w": 300 - }, - "full": { - "h": 4032, - "w": 3024 - } - }, - "geometry": "0x0--1--1", - "normalize": null, - "white_magic": null, - "coordinates_image_size": "full" - } - }, - "labels": "Organic, Vegetarian, No gluten, USDA Organic, Vegan, Vegan Action, No GMOs, Non GMO project", - "states": "en:to-be-completed, en:nutrition-facts-completed, en:ingredients-completed, en:expiration-date-to-be-completed, en:packaging-code-to-be-completed, en:characteristics-to-be-completed, en:origins-to-be-completed, en:categories-completed, en:brands-completed, en:packaging-to-be-completed, en:quantity-to-be-completed, en:product-name-completed, en:photos-to-be-validated, en:packaging-photo-to-be-selected, en:nutrition-photo-selected, en:ingredients-photo-selected, en:front-photo-selected, en:photos-uploaded", - "traces": "", - "creator": "kiliweb", - "scans_n": 7, - "sources": [ - { - "id": "org-label-non-gmo-project", - "url": null, - "name": "label-non-gmo-project", - "fields": [ - "product_name_en", - "brands", - "labels", - "countries", - "data_sources" - ], - "images": [], - "import_t": 1718819519, - "manufacturer": 0 - } - ], - "complete": 0, - "_keywords": [ - "action", - "bar", - "butter", - "chip", - "chocolate", - "gluten", - "gmo", - "gomacro", - "llc", - "macrobar", - "no", - "non", - "organic", - "peanut", - "project", - "protein", - "usda", - "vegan", - "vegetarian" - ], - "allergens": "", - "countries": "en:us, World", - "created_t": 1618700428, - "image_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.400.jpg", - "labels_lc": "en", - "languages": { - "en:english": 5 - }, - "max_imgid": "4", - "misc_tags": [ - "en:ecoscore-extended-data-not-computed", - "en:ecoscore-not-computed", - "en:nutriscore-2021-b-2023-c", - "en:nutriscore-2021-better-than-2023", - "en:nutriscore-2021-different-from-2023", - "en:nutriscore-computed", - "en:nutrition-all-nutriscore-values-known", - "en:nutrition-fruits-vegetables-legumes-estimate-from-ingredients", - "en:nutrition-fruits-vegetables-nuts-estimate-from-ingredients", - "en:packagings-empty", - "en:packagings-not-complete", - "en:packagings-number-of-components-0" - ], - "categories": "Protein bars", - "codes_tags": [ - "code-13", - "conflict-with-upc-12", - "0853555006xxx", - "085355500xxxx", - "08535550xxxxx", - "0853555xxxxxx", - "085355xxxxxxx", - "08535xxxxxxxx", - "0853xxxxxxxxx", - "085xxxxxxxxxx", - "08xxxxxxxxxxx", - "0xxxxxxxxxxxx" - ], - "labels_old": "Organic, Vegetarian, No gluten, USDA Organic, Vegan, en:vegan-action", - "nova_group": 3, - "nutriments": { - "fat": 11, - "salt": 0.025, - "fiber": 2, - "energy": 1758, - "sodium": 0.01, - "sugars": 14, - "fat_100g": 11, - "fat_unit": "g", - "proteins": 11, - "fat_value": 11, - "salt_100g": 0.025, - "salt_unit": "g", - "trans-fat": 0, - "fiber_100g": 2, - "fiber_unit": "g", - "nova-group": 3, - "salt_value": 0.025, - "cholesterol": 0, - "energy-kcal": 420.28986, - "energy_100g": 1758, - "energy_unit": "kcal", - "fiber_value": 2, - "sodium_100g": 0.01, - "sodium_unit": "g", - "sugars_100g": 14, - "sugars_unit": "g", - "added-sugars": 12, - "energy_value": 420.28986, - "sodium_value": 0.01, - "sugars_value": 14, - "carbohydrates": 39, - "proteins_100g": 11, - "proteins_unit": "g", - "saturated-fat": 2, - "proteins_value": 11, - "trans-fat_100g": 0, - "trans-fat_unit": "g", - "nova-group_100g": 3, - "trans-fat_value": 0, - "cholesterol_100g": 0, - "cholesterol_unit": "g", - "energy-kcal_100g": 420.28986, - "energy-kcal_unit": "kcal", - "added-sugars_100g": 12, - "added-sugars_unit": "g", - "cholesterol_value": 0, - "energy-kcal_value": 420.28986, - "added-sugars_value": 12, - "carbohydrates_100g": 39, - "carbohydrates_unit": "g", - "nova-group_serving": 3, - "nutrition-score-fr": 5, - "saturated-fat_100g": 2, - "saturated-fat_unit": "g", - "carbohydrates_value": 39, - "saturated-fat_value": 2, - "nutrition-score-fr_100g": 5, - "energy-kcal_value_computed": 303, - "fruits-vegetables-nuts-estimate-from-ingredients_100g": 23.4375, - "fruits-vegetables-legumes-estimate-from-ingredients_100g": 0, - "fruits-vegetables-nuts-estimate-from-ingredients_serving": 23.4375, - "fruits-vegetables-legumes-estimate-from-ingredients_serving": 0 - }, - "nutriscore": { - "2021": { - "data": { - "fiber": 2, - "energy": 1758, - "is_fat": 0, - "sodium": 10, - "sugars": 14, - "is_water": 0, - "proteins": 11, - "is_cheese": 0, - "fiber_value": 2, - "is_beverage": 0, - "energy_value": 1758, - "fiber_points": 2, - "sodium_value": 10, - "sugars_value": 14, - "energy_points": 5, - "saturated_fat": 2, - "sodium_points": 0, - "sugars_points": 3, - "proteins_value": 11, - "negative_points": 9, - "positive_points": 7, - "proteins_points": 5, - "saturated_fat_value": 2, - "saturated_fat_points": 1, - "fruits_vegetables_nuts_colza_walnut_olive_oils": 23.4375, - "fruits_vegetables_nuts_colza_walnut_olive_oils_value": 23.4, - "fruits_vegetables_nuts_colza_walnut_olive_oils_points": 0 - }, - "grade": "b", - "score": 2, - "category_available": 1, - "nutrients_available": 1, - "nutriscore_computed": 1, - "nutriscore_applicable": 1 - }, - "2023": { - "data": { - "is_water": 0, - "is_cheese": 0, - "components": { - "negative": [ - { - "id": "energy", - "unit": "kJ", - "value": 1758, - "points": 5, - "points_max": 10 - }, - { - "id": "sugars", - "unit": "g", - "value": 14, - "points": 3, - "points_max": 15 - }, - { - "id": "saturated_fat", - "unit": "g", - "value": 2, - "points": 1, - "points_max": 10 - }, - { - "id": "salt", - "unit": "g", - "value": 0.03, - "points": 0, - "points_max": 20 - } - ], - "positive": [ - { - "id": "proteins", - "unit": "g", - "value": 11, - "points": 4, - "points_max": 7 - }, - { - "id": "fiber", - "unit": "g", - "value": 2, - "points": 0, - "points_max": 5 - }, - { - "id": "fruits_vegetables_legumes", - "unit": "%", - "value": 0, - "points": 0, - "points_max": 5 - } - ] - }, - "is_beverage": 0, - "count_proteins": 1, - "negative_points": 9, - "positive_points": 4, - "positive_nutrients": [ - "proteins", - "fiber", - "fruits_vegetables_legumes" - ], - "is_red_meat_product": 0, - "negative_points_max": 55, - "positive_points_max": 17, - "count_proteins_reason": "negative_points_less_than_11", - "is_fat_oil_nuts_seeds": 0 - }, - "grade": "c", - "score": 5, - "category_available": 1, - "nutrients_available": 1, - "nutriscore_computed": 1, - "nutriscore_applicable": 1 - } - }, - "packagings": [], - "teams_tags": [ - "chocolatine", - "la-robe-est-bleue" - ], - "update_key": "sort", - "additives_n": 0, - "brands_tags": [ - "gomacro", - "llc" - ], - "ingredients": [ - { - "id": "en:brown-rice-syrup", - "text": "BROWN RICE SYRUP", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 100, - "percent_min": 16.6666666666667, - "is_in_taxonomy": 1, - "percent_estimate": 58.3333333333333 - }, - { - "id": "en:peanut-paste", - "text": "PEANUT BUTTER", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 50, - "percent_min": 0, - "ecobalyse_code": "peanut-organic", - "is_in_taxonomy": 1, - "ciqual_food_code": "15001", - "percent_estimate": 20.8333333333333 - }, - { - "id": "en:protein-blend", - "text": "PROTEIN BLEND", - "labels": "en:organic", - "ingredients": [ - { - "id": "en:sprouted-brown-rice-protein", - "text": "SPROUTED BROWN RICE PROTEIN", - "labels": "en:organic", - "percent_max": 33.3333333333333, - "percent_min": 0, - "is_in_taxonomy": 0, - "percent_estimate": 5.20833333333333 - }, - { - "id": "en:pea-protein", - "text": "PEA PROTEIN", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 16.6666666666667, - "percent_min": 0, - "is_in_taxonomy": 1, - "percent_estimate": 5.20833333333333 - } - ], - "percent_max": 33.3333333333333, - "percent_min": 0, - "is_in_taxonomy": 0, - "percent_estimate": 10.4166666666667 - }, - { - "id": "en:chocolate-chunk", - "text": "CHOCOLATE CHIPS", - "vegan": "maybe", - "labels": "en:organic", - "vegetarian": "yes", - "ingredients": [ - { - "id": "en:coconut-sugar", - "text": "COCONUT SUGAR", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 14, - "percent_min": 0, - "ecobalyse_code": "sugar-beet-organic", - "is_in_taxonomy": 1, - "percent_estimate": 2.60416666666666, - "ciqual_proxy_food_code": "31016" - }, - { - "id": "en:cocoa", - "text": "COCOA", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 12.5, - "percent_min": 0, - "is_in_taxonomy": 1, - "percent_estimate": 1.30208333333333, - "ciqual_proxy_food_code": "18100" - }, - { - "id": "en:cocoa-butter", - "text": "COCOA BUTTER", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 8.33333333333333, - "percent_min": 0, - "is_in_taxonomy": 1, - "ciqual_food_code": "16030", - "percent_estimate": 1.30208333333333 - } - ], - "percent_max": 25, - "percent_min": 0, - "is_in_taxonomy": 1, - "percent_estimate": 5.20833333333333, - "ciqual_proxy_food_code": "31005" - }, - { - "id": "en:brown-rice", - "text": "BROWN RICE", - "vegan": "yes", - "labels": "en:organic", - "processing": "en:puffed", - "vegetarian": "yes", - "percent_max": 20, - "percent_min": 0, - "is_in_taxonomy": 1, - "ciqual_food_code": "9102", - "percent_estimate": 2.60416666666666 - }, - { - "id": "en:peanut", - "text": "PEANUTS", - "vegan": "yes", - "labels": "en:organic", - "vegetarian": "yes", - "percent_max": 16.6666666666667, - "percent_min": 0, - "ecobalyse_code": "peanut-organic", - "is_in_taxonomy": 1, - "ciqual_food_code": "15001", - "percent_estimate": 2.60416666666666 - } - ], - "labels_tags": [ - "en:no-gluten", - "en:organic", - "en:vegetarian", - "en:no-gmos", - "en:usda-organic", - "en:vegan", - "en:non-gmo-project", - "en:vegan-action" - ], - "last_editor": "absmith", - "nova_groups": "3", - "states_tags": [ - "en:to-be-completed", - "en:nutrition-facts-completed", - "en:ingredients-completed", - "en:expiration-date-to-be-completed", - "en:packaging-code-to-be-completed", - "en:characteristics-to-be-completed", - "en:origins-to-be-completed", - "en:categories-completed", - "en:brands-completed", - "en:packaging-to-be-completed", - "en:quantity-to-be-completed", - "en:product-name-completed", - "en:photos-to-be-validated", - "en:packaging-photo-to-be-selected", - "en:nutrition-photo-selected", - "en:ingredients-photo-selected", - "en:front-photo-selected", - "en:photos-uploaded" - ], - "traces_tags": [], - "completeness": 0.5875, - "countries_lc": "en", - "data_sources": "App - yuka, Apps, App - smoothie-openfoodfacts, Labels, label-non-gmo-project", - "editors_tags": [ - "absmith", - "austinpowell", - "itsjustruby", - "kiliweb", - "org-label-non-gmo-project", - "roboto-app", - "teolemon", - "yuka.sY2b0xO6T85zoF3NwEKvlkFKX4bmkwjoahPTkxa04u6sFLLue_Zuy7DqIag" - ], - "last_image_t": 1730328248, - "owner_fields": {}, - "product_name": "Macrobar Peanut Butter Chocolate Chip", - "product_type": "food", - "serving_size": "1 bar", - "categories_lc": "en", - "checkers_tags": [], - "ecoscore_data": { - "scores": {}, - "status": "unknown", - "missing": { - "labels": 1, - "origins": 1, - "packagings": 1, - "agb_category": 1 - }, - "agribalyse": { - "warning": "missing_agribalyse_match" - }, - "adjustments": { - "packaging": { - "value": -15, - "warning": "packaging_data_missing" - }, - "production_system": { - "value": 0, - "labels": [], - "warning": "no_label" - }, - "threatened_species": {}, - "origins_of_ingredients": { - "value": -5, - "values": { - "ad": -5, - "al": -5, - "at": -5, - "ax": -5, - "ba": -5, - "be": -5, - "bg": -5, - "ch": -5, - "cy": -5, - "cz": -5, - "de": -5, - "dk": -5, - "dz": -5, - "ee": -5, - "eg": -5, - "es": -5, - "fi": -5, - "fo": -5, - "fr": -5, - "gg": -5, - "gi": -5, - "gr": -5, - "hr": -5, - "hu": -5, - "ie": -5, - "il": -5, - "im": -5, - "is": -5, - "it": -5, - "je": -5, - "lb": -5, - "li": -5, - "lt": -5, - "lu": -5, - "lv": -5, - "ly": -5, - "ma": -5, - "mc": -5, - "md": -5, - "me": -5, - "mk": -5, - "mt": -5, - "nl": -5, - "no": -5, - "pl": -5, - "ps": -5, - "pt": -5, - "ro": -5, - "rs": -5, - "se": -5, - "si": -5, - "sj": -5, - "sk": -5, - "sm": -5, - "sy": -5, - "tn": -5, - "tr": -5, - "ua": -5, - "uk": -5, - "us": -5, - "va": -5, - "xk": -5, - "world": -5 - }, - "warning": "origins_are_100_percent_unknown", - "epi_score": 0, - "epi_value": -5, - "aggregated_origins": [ - { - "origin": "en:unknown", - "percent": 100, - "epi_score": "0", - "transportation_score": 0 - } - ], - "transportation_score": 0, - "transportation_value": 0, - "transportation_scores": { - "ad": 0, - "al": 0, - "at": 0, - "ax": 0, - "ba": 0, - "be": 0, - "bg": 0, - "ch": 0, - "cy": 0, - "cz": 0, - "de": 0, - "dk": 0, - "dz": 0, - "ee": 0, - "eg": 0, - "es": 0, - "fi": 0, - "fo": 0, - "fr": 0, - "gg": 0, - "gi": 0, - "gr": 0, - "hr": 0, - "hu": 0, - "ie": 0, - "il": 0, - "im": 0, - "is": 0, - "it": 0, - "je": 0, - "lb": 0, - "li": 0, - "lt": 0, - "lu": 0, - "lv": 0, - "ly": 0, - "ma": 0, - "mc": 0, - "md": 0, - "me": 0, - "mk": 0, - "mt": 0, - "nl": 0, - "no": 0, - "pl": 0, - "ps": 0, - "pt": 0, - "ro": 0, - "rs": 0, - "se": 0, - "si": 0, - "sj": 0, - "sk": 0, - "sm": 0, - "sy": 0, - "tn": 0, - "tr": 0, - "ua": 0, - "uk": 0, - "us": 0, - "va": 0, - "xk": 0, - "world": 0 - }, - "transportation_values": { - "ad": 0, - "al": 0, - "at": 0, - "ax": 0, - "ba": 0, - "be": 0, - "bg": 0, - "ch": 0, - "cy": 0, - "cz": 0, - "de": 0, - "dk": 0, - "dz": 0, - "ee": 0, - "eg": 0, - "es": 0, - "fi": 0, - "fo": 0, - "fr": 0, - "gg": 0, - "gi": 0, - "gr": 0, - "hr": 0, - "hu": 0, - "ie": 0, - "il": 0, - "im": 0, - "is": 0, - "it": 0, - "je": 0, - "lb": 0, - "li": 0, - "lt": 0, - "lu": 0, - "lv": 0, - "ly": 0, - "ma": 0, - "mc": 0, - "md": 0, - "me": 0, - "mk": 0, - "mt": 0, - "nl": 0, - "no": 0, - "pl": 0, - "ps": 0, - "pt": 0, - "ro": 0, - "rs": 0, - "se": 0, - "si": 0, - "sj": 0, - "sk": 0, - "sm": 0, - "sy": 0, - "tn": 0, - "tr": 0, - "ua": 0, - "uk": 0, - "us": 0, - "va": 0, - "xk": 0, - "world": 0 - }, - "origins_from_categories": [ - "en:unknown" - ], - "origins_from_origins_field": [ - "en:unknown" - ] - } - }, - "missing_key_data": 1, - "missing_agribalyse_match_warning": 1 - }, - "ecoscore_tags": [ - "unknown" - ], - "ingredients_n": 11, - "minerals_tags": [], - "pnns_groups_1": "unknown", - "pnns_groups_2": "unknown", - "vitamins_tags": [], - "weighers_tags": [], - "additives_tags": [], - "allergens_tags": [ - "en:peanuts" - ], - "countries_tags": [ - "en:united-states", - "en:world" - ], - "ecoscore_grade": "unknown", - "informers_tags": [ - "yuka.sY2b0xO6T85zoF3NwEKvlkFKX4bmkwjoahPTkxa04u6sFLLue_Zuy7DqIag", - "kiliweb", - "roboto-app", - "austinpowell", - "org-label-non-gmo-project", - "absmith" - ], - "ingredients_lc": "en", - "languages_tags": [ - "en:english", - "en:1" - ], - "last_updated_t": 1738799980, - "nutrition_data": "", - "popularity_key": 23900000016, - "unique_scans_n": 7, - "categories_tags": [ - "en:dietary-supplements", - "en:bodybuilding-supplements", - "en:protein-bars" - ], - "correctors_tags": [ - "roboto-app", - "teolemon", - "itsjustruby", - "austinpowell", - "org-label-non-gmo-project", - "absmith" - ], - "image_front_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.400.jpg", - "image_small_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.200.jpg", - "image_thumb_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.100.jpg", - "languages_codes": { - "en": 5 - }, - "last_modified_t": 1730328292, - "nutrient_levels": { - "fat": "moderate", - "salt": "low", - "sugars": "high", - "saturated-fat": "moderate" - }, - "nutriscore_data": { - "grade": "c", - "score": 5, - "is_water": 0, - "is_cheese": 0, - "components": { - "negative": [ - { - "id": "energy", - "unit": "kJ", - "value": 1758, - "points": 5, - "points_max": 10 - }, - { - "id": "sugars", - "unit": "g", - "value": 14, - "points": 3, - "points_max": 15 - }, - { - "id": "saturated_fat", - "unit": "g", - "value": 2, - "points": 1, - "points_max": 10 - }, - { - "id": "salt", - "unit": "g", - "value": 0.03, - "points": 0, - "points_max": 20 - } - ], - "positive": [ - { - "id": "proteins", - "unit": "g", - "value": 11, - "points": 4, - "points_max": 7 - }, - { - "id": "fiber", - "unit": "g", - "value": 2, - "points": 0, - "points_max": 5 - }, - { - "id": "fruits_vegetables_legumes", - "unit": "%", - "value": 0, - "points": 0, - "points_max": 5 - } - ] - }, - "is_beverage": 0, - "count_proteins": 1, - "negative_points": 9, - "positive_points": 4, - "positive_nutrients": [ - "proteins", - "fiber", - "fruits_vegetables_legumes" - ], - "is_red_meat_product": 0, - "negative_points_max": 55, - "positive_points_max": 17, - "count_proteins_reason": "negative_points_less_than_11", - "is_fat_oil_nuts_seeds": 0 - }, - "nutriscore_tags": [ - "c" - ], - "popularity_tags": [ - "bottom-25-percent-scans-2022", - "top-80-percent-scans-2022", - "top-85-percent-scans-2022", - "top-90-percent-scans-2022", - "top-10000-us-scans-2022", - "top-50000-us-scans-2022", - "top-100000-us-scans-2022", - "top-country-us-scans-2022", - "top-100000-scans-2024", - "at-least-5-scans-2024", - "top-75-percent-scans-2024", - "top-80-percent-scans-2024", - "top-85-percent-scans-2024", - "top-90-percent-scans-2024", - "top-5000-us-scans-2024", - "top-10000-us-scans-2024", - "top-50000-us-scans-2024", - "top-100000-us-scans-2024", - "top-country-us-scans-2024", - "at-least-5-us-scans-2024" - ], - "product_name_en": "Macrobar Peanut Butter Chocolate Chip", - "selected_images": { - "front": { - "small": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.200.jpg" - }, - "thumb": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.100.jpg" - }, - "display": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.400.jpg" - } - }, - "nutrition": { - "small": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/nutrition_en.13.200.jpg" - }, - "thumb": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/nutrition_en.13.100.jpg" - }, - "display": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/nutrition_en.13.400.jpg" - } - }, - "ingredients": { - "small": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/ingredients_en.16.200.jpg" - }, - "thumb": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/ingredients_en.16.100.jpg" - }, - "display": { - "en": "https://images.openfoodfacts.org/images/products/085/355/500/6870/ingredients_en.16.400.jpg" - } - } - }, - "amino_acids_tags": [], - "entry_dates_tags": [ - "2021-04-17", - "2021-04", - "2021" - ], - "food_groups_tags": [], - "ingredients_tags": [ - "en:brown-rice-syrup", - "en:added-sugar", - "en:disaccharide", - "en:rice-syrup", - "en:peanut-paste", - "en:nut", - "en:peanut", - "en:protein-blend", - "en:chocolate-chunk", - "en:chocolate", - "en:brown-rice", - "en:rice", - "en:sprouted-brown-rice-protein", - "en:pea-protein", - "en:protein", - "en:plant-protein", - "en:coconut-sugar", - "en:sugar", - "en:palm-sugar", - "en:cocoa", - "en:plant", - "en:cocoa-butter" - ], - "ingredients_text": "ORGANIC BROWN RICE SYRUP, ORGANIC PEANUT BUTTER, ORGANIC PROTEIN BLEND (ORGANIC SPROUTED BROWN RICE PROTEIN, ORGANIC PEA PROTEIN), ORGANIC CHOCOLATE CHIPS (ORGANIC COCONUT SUGAR, ORGANIC COCOA, ORGANIC COCOA BUTTER), ORGANIC PUFFED BROWN RICE, ORGANIC PEANUTS.", - "labels_hierarchy": [ - "en:no-gluten", - "en:organic", - "en:vegetarian", - "en:no-gmos", - "en:usda-organic", - "en:vegan", - "en:non-gmo-project", - "en:vegan-action" - ], - "last_modified_by": "absmith", - "nova_group_debug": "", - "nova_groups_tags": [ - "en:3-processed-foods" - ], - "nucleotides_tags": [], - "nutriscore_grade": "c", - "nutriscore_score": 5, - "nutrition_grades": "c", - "states_hierarchy": [ - "en:to-be-completed", - "en:nutrition-facts-completed", - "en:ingredients-completed", - "en:expiration-date-to-be-completed", - "en:packaging-code-to-be-completed", - "en:characteristics-to-be-completed", - "en:origins-to-be-completed", - "en:categories-completed", - "en:brands-completed", - "en:packaging-to-be-completed", - "en:quantity-to-be-completed", - "en:product-name-completed", - "en:photos-to-be-validated", - "en:packaging-photo-to-be-selected", - "en:nutrition-photo-selected", - "en:ingredients-photo-selected", - "en:front-photo-selected", - "en:photos-uploaded" - ], - "traces_from_user": "(en) ", - "traces_hierarchy": [], - "data_quality_tags": [ - "en:no-packaging-data", - "en:ingredients-percent-analysis-ok", - "en:ecoscore-extended-data-not-computed", - "en:food-groups-1-unknown", - "en:food-groups-2-unknown", - "en:food-groups-3-unknown", - "en:energy-value-in-kcal-may-not-match-value-computed-from-other-nutrients", - "en:nutrition-data-per-serving-serving-quantity-is-not-recognized", - "en:vegan-label-but-could-not-confirm-for-all-ingredients", - "en:vegetarian-label-but-could-not-confirm-for-all-ingredients", - "en:ecoscore-origins-of-ingredients-origins-are-100-percent-unknown", - "en:ecoscore-packaging-packaging-data-missing", - "en:ecoscore-production-system-no-label" - ], - "data_sources_tags": [ - "app-yuka", - "apps", - "app-smoothie-openfoodfacts", - "labels", - "label-non-gmo-project" - ], - "no_nutrition_data": "", - "ingredients_n_tags": [ - "11", - "11-20" - ], - "nutriscore_version": "2023", - "nutrition_data_per": "100g", - "nutrition_grade_fr": "c", - "photographers_tags": [ - "kiliweb", - "absmith" - ], - "pnns_groups_1_tags": [ - "unknown", - "missing-association" - ], - "pnns_groups_2_tags": [ - "unknown", - "missing-association" - ], - "allergens_from_user": "(en) ", - "allergens_hierarchy": [ - "en:peanuts" - ], - "countries_hierarchy": [ - "en:united-states", - "en:world" - ], - "image_nutrition_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/nutrition_en.13.400.jpg", - "ingredients_text_en": "ORGANIC BROWN RICE SYRUP, ORGANIC PEANUT BUTTER, ORGANIC PROTEIN BLEND (ORGANIC SPROUTED BROWN RICE PROTEIN, ORGANIC PEA PROTEIN), ORGANIC CHOCOLATE CHIPS (ORGANIC COCONUT SUGAR, ORGANIC COCOA, ORGANIC COCOA BUTTER), ORGANIC PUFFED BROWN RICE, ORGANIC PEANUTS.", - "known_ingredients_n": 20, - "languages_hierarchy": [ - "en:english" - ], - "main_countries_tags": [], - "nova_groups_markers": { - "3": [ - [ - "ingredients", - "en:sugar" - ] - ] - }, - "added_countries_tags": [], - "categories_hierarchy": [ - "en:dietary-supplements", - "en:bodybuilding-supplements", - "en:protein-bars" - ], - "compared_to_category": "en:protein-bars", - "ingredients_analysis": { - "en:vegan-status-unknown": [ - "en:protein-blend", - "en:sprouted-brown-rice-protein" - ], - "en:palm-oil-content-unknown": [ - "en:protein-blend", - "en:sprouted-brown-rice-protein" - ], - "en:vegetarian-status-unknown": [ - "en:protein-blend", - "en:sprouted-brown-rice-protein" - ] - }, - "last_edit_dates_tags": [ - "2024-10-30", - "2024-10", - "2024" - ], - "nutrient_levels_tags": [ - "en:fat-in-moderate-quantity", - "en:saturated-fat-in-moderate-quantity", - "en:sugars-in-high-quantity", - "en:salt-in-low-quantity" - ], - "nutriscore_2021_tags": [ - "b" - ], - "nutriscore_2023_tags": [ - "c" - ], - "packagings_materials": {}, - "categories_properties": {}, - "image_front_small_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.200.jpg", - "image_front_thumb_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/front_en.3.100.jpg", - "image_ingredients_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/ingredients_en.16.400.jpg", - "ingredients_hierarchy": [ - "en:brown-rice-syrup", - "en:added-sugar", - "en:disaccharide", - "en:rice-syrup", - "en:peanut-paste", - "en:nut", - "en:peanut", - "en:protein-blend", - "en:chocolate-chunk", - "en:chocolate", - "en:brown-rice", - "en:rice", - "en:sprouted-brown-rice-protein", - "en:pea-protein", - "en:protein", - "en:plant-protein", - "en:coconut-sugar", - "en:sugar", - "en:palm-sugar", - "en:cocoa", - "en:plant", - "en:cocoa-butter" - ], - "last_image_dates_tags": [ - "2024-10-30", - "2024-10", - "2024" - ], - "nutrition_grades_tags": [ - "c" - ], - "nutrition_score_debug": "", - "packaging_shapes_tags": [], - "unknown_ingredients_n": 2, - "data_quality_bugs_tags": [], - "data_quality_info_tags": [ - "en:no-packaging-data", - "en:ingredients-percent-analysis-ok", - "en:ecoscore-extended-data-not-computed", - "en:food-groups-1-unknown", - "en:food-groups-2-unknown", - "en:food-groups-3-unknown" - ], - "removed_countries_tags": [], - "unknown_nutrients_tags": [], - "additives_original_tags": [], - "traces_from_ingredients": "", - "data_quality_errors_tags": [], - "ingredients_sweeteners_n": 0, - "nutrition_score_beverage": 0, - "packaging_materials_tags": [], - "packaging_recycling_tags": [], - "image_nutrition_small_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/nutrition_en.13.200.jpg", - "image_nutrition_thumb_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/nutrition_en.13.100.jpg", - "ingredients_analysis_tags": [ - "en:palm-oil-content-unknown", - "en:vegan", - "en:vegetarian" - ], - "ingredients_original_tags": [ - "en:brown-rice-syrup", - "en:peanut-paste", - "en:protein-blend", - "en:chocolate-chunk", - "en:brown-rice", - "en:peanut", - "en:sprouted-brown-rice-protein", - "en:pea-protein", - "en:coconut-sugar", - "en:cocoa", - "en:cocoa-butter" - ], - "interface_version_created": "20150316.jqm2", - "nutriscore_score_opposite": -5, - "allergens_from_ingredients": "en:peanuts, en:peanuts", - "categories_properties_tags": [ - "all-products", - "categories-known", - "agribalyse-food-code-unknown", - "agribalyse-proxy-food-code-unknown", - "ciqual-food-code-unknown", - "agribalyse-unknown" - ], - "data_quality_warnings_tags": [ - "en:energy-value-in-kcal-may-not-match-value-computed-from-other-nutrients", - "en:nutrition-data-per-serving-serving-quantity-is-not-recognized", - "en:vegan-label-but-could-not-confirm-for-all-ingredients", - "en:vegetarian-label-but-could-not-confirm-for-all-ingredients", - "en:ecoscore-origins-of-ingredients-origins-are-100-percent-unknown", - "en:ecoscore-packaging-packaging-data-missing", - "en:ecoscore-production-system-no-label" - ], - "interface_version_modified": "20150316.jqm2", - "image_ingredients_small_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/ingredients_en.16.200.jpg", - "image_ingredients_thumb_url": "https://images.openfoodfacts.org/images/products/085/355/500/6870/ingredients_en.16.100.jpg", - "nutrition_data_prepared_per": "100g", - "ingredients_percent_analysis": 1, - "ingredients_text_with_allergens": "ORGANIC BROWN RICE SYRUP, ORGANIC PEANUT BUTTER, ORGANIC PROTEIN BLEND (ORGANIC SPROUTED BROWN RICE PROTEIN, ORGANIC PEA PROTEIN), ORGANIC CHOCOLATE CHIPS (ORGANIC COCONUT SUGAR, ORGANIC COCOA, ORGANIC COCOA BUTTER), ORGANIC PUFFED BROWN RICE, ORGANIC PEANUTS.", - "ingredients_without_ciqual_codes": [ - "en:brown-rice-syrup", - "en:pea-protein", - "en:protein-blend", - "en:sprouted-brown-rice-protein" - ], - "ingredients_without_ecobalyse_ids": [ - "en:brown-rice", - "en:brown-rice-syrup", - "en:chocolate-chunk", - "en:cocoa", - "en:cocoa-butter", - "en:pea-protein", - "en:protein-blend", - "en:sprouted-brown-rice-protein" - ], - "other_nutritional_substances_tags": [], - "ingredients_text_with_allergens_en": "ORGANIC BROWN RICE SYRUP, ORGANIC PEANUT BUTTER, ORGANIC PROTEIN BLEND (ORGANIC SPROUTED BROWN RICE PROTEIN, ORGANIC PEA PROTEIN), ORGANIC CHOCOLATE CHIPS (ORGANIC COCONUT SUGAR, ORGANIC COCOA, ORGANIC COCOA BUTTER), ORGANIC PUFFED BROWN RICE, ORGANIC PEANUTS.", - "ingredients_without_ciqual_codes_n": 4, - "ingredients_without_ecobalyse_ids_n": 8, - "ingredients_with_specified_percent_n": 0, - "ingredients_non_nutritive_sweeteners_n": 0, - "ingredients_with_specified_percent_sum": 0, - "ingredients_with_unspecified_percent_n": 9, - "ingredients_with_unspecified_percent_sum": 100, - "nutrition_score_warning_fruits_vegetables_nuts_estimate_from_ingredients": 1, - "nutrition_score_warning_fruits_vegetables_legumes_estimate_from_ingredients": 1, - "nutrition_score_warning_fruits_vegetables_nuts_estimate_from_ingredients_value": 23.4375, - "nutrition_score_warning_fruits_vegetables_legumes_estimate_from_ingredients_value": 0 -} \ No newline at end of file diff --git a/webserver.py b/webserver.py index 8965fea..f9347f9 100644 --- a/webserver.py +++ b/webserver.py @@ -3,13 +3,13 @@ from flask import Flask, render_template, session, request, redirect, jsonify from flask_assets import Environment, Bundle import api, config, user_api, psycopg2, main, api_admin, receipts_API, shopping_list_API, group_api from user_api import login_required, update_session_user -from external_API import external_api from workshop_api import workshop_api import database import postsqldb from webpush import trigger_push_notifications_for_subscriptions from application.recipes import recipes_api from application.items import items_API +from application.poe import poe_api from flasgger import Swagger @@ -28,7 +28,7 @@ app.register_blueprint(api.database_api) app.register_blueprint(user_api.login_app) app.register_blueprint(api_admin.admin_api) app.register_blueprint(items_API.items_api, url_prefix='/items') -app.register_blueprint(external_api) +app.register_blueprint(poe_api.point_of_ease, url_prefix='/poe') app.register_blueprint(workshop_api) app.register_blueprint(receipts_API.receipt_api) app.register_blueprint(shopping_list_API.shopping_list_api)