From 579643e9535a947c3561b56818a5421807906c70 Mon Sep 17 00:00:00 2001 From: phoebus-84 Date: Wed, 18 Mar 2026 11:28:25 +0100 Subject: [PATCH] fix: not hardcoded resource specification id for loci lamp --- LoCI_LAMP_DPP_Production.ipynb | 264 +++++++++++++++++---------------- 1 file changed, 134 insertions(+), 130 deletions(-) diff --git a/LoCI_LAMP_DPP_Production.ipynb b/LoCI_LAMP_DPP_Production.ipynb index 5fa75dc..e237963 100644 --- a/LoCI_LAMP_DPP_Production.ipynb +++ b/LoCI_LAMP_DPP_Production.ipynb @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 394, + "execution_count": 41, "id": "e7fb2f2a", "metadata": {}, "outputs": [ @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 381, + "execution_count": 43, "id": "9bd24a1d", "metadata": {}, "outputs": [ @@ -106,7 +106,7 @@ " Resource Specs: 15\n", " Processes: 5\n", " Resources: 10\n", - " Uploaded Images: 2\n", + " Uploaded Images: 4\n", " Product Data loaded from CSV\n", "\n", "📋 GUI-aligned resources:\n", @@ -205,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 382, + "execution_count": 44, "id": "a895dda0", "metadata": {}, "outputs": [ @@ -214,7 +214,7 @@ "output_type": "stream", "text": [ "Production user: Tchibo GmbH\n", - "User ID: 06E085NPZ4TNSX82EZVAWXPSFG\n", + "User ID: 06EG0S695QJ78QRCP79B4EYCSC\n", "\n", "📦 Components available for production:\n", " - kroma_kraft_cardboard: kroma_kraft_cardboard\n", @@ -264,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 383, + "execution_count": 45, "id": "0d624ffa", "metadata": {}, "outputs": [ @@ -276,7 +276,7 @@ " Product: LOCI LAMP\n", " Brand: Tchibo GmbH\n", " Model: LOCILAMP V 2.0\n", - " Images: 2 uploaded\n" + " Images: 4 uploaded\n" ] } ], @@ -308,7 +308,7 @@ }, { "cell_type": "code", - "execution_count": 396, + "execution_count": 46, "id": "a0a6d587", "metadata": {}, "outputs": [ @@ -331,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": 384, + "execution_count": 47, "id": "d41c0803", "metadata": {}, "outputs": [ @@ -339,13 +339,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Tchibo user ID: 06E085NPZ4TNSX82EZVAWXPSFG\n", + "Tchibo user ID: 06EG0S695QJ78QRCP79B4EYCSC\n", "Using credentials for: Tchibo GmbH\n", "\n", "📤 DPP payload prepared for submission\n", " Product: LOCI LAMP\n", " Created by: Tchibo GmbH\n", - " Images included: 2\n" + " Images included: 4\n" ] } ], @@ -508,7 +508,7 @@ }, { "cell_type": "code", - "execution_count": 400, + "execution_count": 48, "id": "cf79b1d4", "metadata": {}, "outputs": [ @@ -516,15 +516,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Submitting DPP to https://proxy.dpp-staging.dyne.im/interfacer-dpp/dpp\n", + "Submitting DPP to https://proxy.dpp-staging-tchibo.dnstest.dyne.org/interfacer-dpp/dpp\n", "Public key: 3hpGAbEpBNas1pjua21c...\n", - "Signature: lIwgwAjOVB1CUe/frdAEsFXdHKd45EEv9ozDIHo2...\n", + "Signature: jrCkXN2aZ3Jy0WcqbkT6cCeY74a4ZWr1l3KBnkyL...\n", "Response status: 200\n", - "Response text: {\"insertedID\":\"01KG5Q2FZRNGQB78J7Y8EQC3S8\"}\n", - "DPP submitted with ULID: 01KG5Q2FZRNGQB78J7Y8EQC3S8\n", + "Response text: {\"insertedID\":\"01KM07CJ7088DMVGWC28X0S1VJ\"}\n", + "DPP submitted with ULID: 01KM07CJ7088DMVGWC28X0S1VJ\n", "✅ DPP submitted successfully!\n", - " ULID: 01KG5Q2FZRNGQB78J7Y8EQC3S8\n", - " DPP URL: https://proxy.dpp-staging.dyne.im/interfacer-dpp/dpp/01KG5Q2FZRNGQB78J7Y8EQC3S8\n" + " ULID: 01KM07CJ7088DMVGWC28X0S1VJ\n", + " DPP URL: https://proxy.dpp-staging-tchibo.dnstest.dyne.org/interfacer-dpp/dpp/01KM07CJ7088DMVGWC28X0S1VJ\n" ] } ], @@ -562,7 +562,7 @@ }, { "cell_type": "code", - "execution_count": 401, + "execution_count": 49, "id": "1b3e1cb1", "metadata": {}, "outputs": [ @@ -570,9 +570,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Assembly process ID: 06E0PTGFKZCBCA4WN23CPNCY0W\n", - "Assembled lamp spec ID: 06DXEXW6TD3VSTNMHQST4GDCEC\n", - "DPP spec ID: 06DXEXW6Y4ER6FP4S64NQH3EHC\n", + "Assembly process ID: 06EG0XJASTZG3RXPNZKRPRPY60\n", + "Assembled lamp spec ID: 06E7CCNH2BVJ4NGT6MA0K4MXGR\n", + "DPP spec ID: 06E7CCNH56YC5K5ERRMAPFQFHG\n", "Location: None\n", "Unit: u_piece\n" ] @@ -594,26 +594,26 @@ "berlin_location = locations_data.get(\"berlin\", {})\n", "unit_each = units_data.get(\"piece\", {})\n", "\n", - "# Use the correct product resource specification ID (from GUI)\n", - "assembled_spec_id = \"06DXEXW6TD3VSTNMHQST4GDCEC\"\n", + "# Fetch product and DPP resource spec IDs from backend instanceVariables\n", + "SPEC_PROJECT_PRODUCT_ID = gui_specs.get(\"specProjectProduct\", {}).get(\"id\") if gui_specs else None\n", + "SPEC_DPP_ID = gui_specs.get(\"specDpp\", {}).get(\"id\") if gui_specs else None\n", + "instance_specs_json = None\n", "\n", - "# Ensure specs_data contains the product spec with default unit\n", - "if \"locilamp_assembled\" not in specs_data:\n", - " specs_data[\"locilamp_assembled\"] = {\n", - " \"id\": assembled_spec_id,\n", - " \"name\": \"locilamp_assembled\",\n", - " \"defaultUnit\": unit_each.get(\"id\")\n", - " }\n", - "\n", - "# Fetch DPP resource spec ID (matches GUI instanceVariables.specs.specDpp)\n", - "SPEC_DPP_ID = None\n", "try:\n", - " dpp_spec_query = \"query { instanceVariables { specs { specDpp { id name } } } }\"\n", - " dpp_spec_json = None\n", + " specs_query = \"\"\"\n", + " query {\n", + " instanceVariables {\n", + " specs {\n", + " specProjectProduct { id name }\n", + " specDpp { id name }\n", + " }\n", + " }\n", + " }\n", + " \"\"\"\n", "\n", " try:\n", - " dpp_spec_json = send_signed(\n", - " dpp_spec_query,\n", + " instance_specs_json = send_signed(\n", + " specs_query,\n", " {},\n", " user_for_dpp[\"username\"],\n", " user_for_dpp[\"keyring\"][\"eddsa\"],\n", @@ -622,13 +622,34 @@ " except Exception as e:\n", " print(f\"⚠️ Signed query failed, trying unsigned: {e}\")\n", "\n", - " if not dpp_spec_json:\n", - " dpp_spec_res = send(payload={\"query\": dpp_spec_query, \"variables\": {}}, endpoint=ENDPOINT)\n", - " dpp_spec_json = dpp_spec_res.json()\n", + " if not instance_specs_json:\n", + " specs_res = send(payload={\"query\": specs_query, \"variables\": {}}, endpoint=ENDPOINT)\n", + " instance_specs_json = specs_res.json()\n", "\n", - " SPEC_DPP_ID = dpp_spec_json.get(\"data\", {}).get(\"instanceVariables\", {}).get(\"specs\", {}).get(\"specDpp\", {}).get(\"id\")\n", + " specs_payload = instance_specs_json.get(\"data\", {}).get(\"instanceVariables\", {}).get(\"specs\", {})\n", + " SPEC_PROJECT_PRODUCT_ID = specs_payload.get(\"specProjectProduct\", {}).get(\"id\") or SPEC_PROJECT_PRODUCT_ID\n", + " SPEC_DPP_ID = specs_payload.get(\"specDpp\", {}).get(\"id\") or SPEC_DPP_ID\n", "except Exception as e:\n", - " print(f\"⚠️ Could not fetch specDpp ID: {e}\")\n", + " print(f\"⚠️ Could not fetch instanceVariables specs: {e}\")\n", + "\n", + "assembled_spec_id = (\n", + " SPEC_PROJECT_PRODUCT_ID\n", + " or specs_data.get(\"locilamp_assembled\", {}).get(\"id\")\n", + " or assembled_lamp_spec.get(\"id\")\n", + " or gui_specs.get(\"assembledProductId\")\n", + " if gui_specs else None\n", + ")\n", + "\n", + "if not assembled_spec_id:\n", + " raise ValueError(\"Product resource specification ID is unavailable from backend and setup data\")\n", + "\n", + "# Ensure specs_data contains the product spec with default unit\n", + "if \"locilamp_assembled\" not in specs_data:\n", + " specs_data[\"locilamp_assembled\"] = {\n", + " \"id\": assembled_spec_id,\n", + " \"name\": \"locilamp_assembled\",\n", + " \"defaultUnit\": unit_each.get(\"id\")\n", + " }\n", "\n", "print(f\"Assembled lamp spec ID: {assembled_spec_id}\")\n", "print(f\"DPP spec ID: {SPEC_DPP_ID}\")\n", @@ -638,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 402, + "execution_count": 50, "id": "2d9acaa0", "metadata": {}, "outputs": [ @@ -696,7 +717,7 @@ }, { "cell_type": "code", - "execution_count": 412, + "execution_count": 51, "id": "af92cf87", "metadata": {}, "outputs": [ @@ -716,7 +737,7 @@ " Declarations: repairable=yes, recyclable=yes\n", " Materials: 6\n", " Machines: 2\n", - " Linked Design: 06E0PTETWESWY5JNMTZ3V88BEC\n", + " Linked Design: 06EG0TGABRXBS40TENJTTJMZK0\n", "📌 ClassifiedAs tags: 25 tags\n", " - lamp\n", " - sustainable\n", @@ -730,48 +751,52 @@ " - m:Paper Cutter\n", " ... and 15 more\n", "\n", - "📸 Images prepared for Zenflows (IFile format): 2\n", - " - locilamp_main.jpeg (image/jpeg, 73296 bytes)\n", - " Hash (SHA-512 base64url): TcufT8AxuVsvFDvK71RCZ6wuxcu-UI8XXHjwEBjq...\n", - " - closeup2.jpeg (image/jpeg, 137530 bytes)\n", - " Hash (SHA-512 base64url): ZvzgwG1ZaYz2GdlEHeuDAy6yIz1ZCuRi0YGERdrf...\n", + "📸 Images prepared for Zenflows (IFile format): 4\n", + " - locilamp_oliverschwartz_DSC05185.jpg (image/jpeg, 891734 bytes)\n", + " Hash (SHA-512 base64url): QeZdQpdkVRm1r5u8awLI8iQBDhUD60xNpOim1ana...\n", + " - locilamp_oliverschwartz_DSC09692.jpg (image/jpeg, 971946 bytes)\n", + " Hash (SHA-512 base64url): MoFeI3CF_egX2WJzhs4M-axRk_MZpDIkUB7U7SU9...\n", + " - locilamp_oliverschwartz_DSC09707.jpg (image/jpeg, 993163 bytes)\n", + " Hash (SHA-512 base64url): 5TTzRcKusapFw2YY_iDQpXELvE0SS3MlKVAaiSJa...\n", + " ... and 1 more\n", "\n", "📋 Project metadata prepared:\n", " Licenses: 2\n", " Contributors: 2\n", " Relations: 3\n", " Materials: 6\n", - " Design: 06E0PTETWESWY5JNMTZ3V88BEC\n", + " Design: 06EG0TGABRXBS40TENJTTJMZK0\n", "✅ DPP resource created:\n", - " Event ID: 06E1W19F6B7RDVP53Q6883S45R\n", - " Resource ID: 06E1W19F6NR8VAPHVX460XZSTR\n", + " Event ID: 06EG0XJKW0SX4SZTSFRRFQA07C\n", + " Resource ID: 06EG0XJKWA3AWD2R5NEVFQJGCW\n", "\n", "📤 Creating product with GUI-aligned mutation...\n", " Name: LOCI LAMP\n", " Note (description): 372 chars\n", " Repo: https://github.com/locilamp/locilamp-v2\n", " Tags (resourceClassifiedAs): 25 tags\n", - " Images (to newInventoriedResource): 2\n", + " Images (to newInventoriedResource): 4\n", " License: [{\"scope\": \"hardware\", \"licenseId\": \"CC-BY-SA-4.0\"...\n", "\n", "✅ LOCI LAMP produced with full GUI alignment!\n", - " Event ID: 06E1W19GFFAT5HDK28Z627SSWG\n", - " Resource ID: 06E1W19GFWTVFWTZMSVVR0C89W\n", + " Event ID: 06EG0XJNKQ7MFPZNK1K9W5P7VW\n", + " Resource ID: 06EG0XJNM2ASEV13TDX1RZEQDC\n", " Title: LOCI LAMP\n", " Repo: https://github.com/locilamp/locilamp-v2\n", " Tags: 25 (for /products filtering)\n", - " Images stored: 2 (from response)\n", + " Images stored: 4 (from response)\n", " Note: ✓ (shows in Overview tab)\n", - " - locilamp_main.jpeg (image/jpeg)\n", - " - closeup2.jpeg (image/jpeg)\n", + " - locilamp_oliverschwartz_DSC05185.jpg (image/jpeg)\n", + " - locilamp_oliverschwartz_DSC09692.jpg (image/jpeg)\n", + " - locilamp_oliverschwartz_DSC09707.jpg (image/jpeg)\n", "\n", "✅ DPP resource cited from product:\n", - " Cite Event ID: 06E1W19J02XZQ305VF9KSVQTC0\n", - " DPP Resource ID: 06E1W19F6NR8VAPHVX460XZSTR\n", + " Cite Event ID: 06EG0XJQDVH7GFTQ60E86TW9H4\n", + " DPP Resource ID: 06EG0XJKWA3AWD2R5NEVFQJGCW\n", "\n", "✅ Design cited from product:\n", - " Cite Event ID: 06E1W19K945PJJWZX0QGYA37RM\n", - " Design Resource ID: 06E0PTETWESWY5JNMTZ3V88BEC\n", + " Cite Event ID: 06EG0XJS6838GHZG2C5EDQEVAR\n", + " Design Resource ID: 06EG0TGABRXBS40TENJTTJMZK0\n", "\n", "📦 Consuming 6 materials (by manufacturer who owns them)...\n", " ✅ Consumed material: KROMA KRAFT Displaykarton (FSC)\n", @@ -782,9 +807,9 @@ " ✅ Consumed material: Kippschalter\n", "\n", "🔗 Citing 3 related resources...\n", - " ✅ Cited relation: 06E0PTFHC1906EA2C6M731XP2R\n", - " ✅ Cited relation: 06E0PTFJRB2N45ZV8FWY4GYVW8\n", - " ✅ Cited relation: 06E0PTFM3J4QTV1PMM1DME1534\n", + " ✅ Cited relation: 06EG0THK1X3X379MZS592BSS74\n", + " ✅ Cited relation: 06EG0THMRT2D9CVCBRMPP712BC\n", + " ✅ Cited relation: 06EG0THPHWP8TWSQCJYYRBRKVM\n", "\n", "============================================================\n", "📦 PRODUCT CREATION COMPLETE\n", @@ -792,14 +817,14 @@ "\n", "✅ All GUI form fields populated!\n", " Product: LOCI LAMP\n", - " Resource ID: 06E1W19GFWTVFWTZMSVVR0C89W\n", - " DPP ULID: 01KG5Q2FZRNGQB78J7Y8EQC3S8\n", + " Resource ID: 06EG0XJNM2ASEV13TDX1RZEQDC\n", + " DPP ULID: 01KM07CJ7088DMVGWC28X0S1VJ\n", " Design cited: Yes\n", " Materials consumed: 6\n", " Relations cited: 3\n", " Components consumed: 3\n", "\n", - "🔗 View product: https://dpp-staging.dyne.im/resource/06E1W19GFWTVFWTZMSVVR0C89W\n" + "🔗 View product: https://dpp-staging.dyne.im/resource/06EG0XJNM2ASEV13TDX1RZEQDC\n" ] } ], @@ -1544,7 +1569,7 @@ }, { "cell_type": "code", - "execution_count": 413, + "execution_count": 52, "id": "5cd1ca3f", "metadata": {}, "outputs": [ @@ -1552,23 +1577,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "📤 Zenflows File Upload URL: https://proxy.dpp-staging.dyne.im/zenflows/api/file\n", + "📤 Zenflows File Upload URL: https://proxy.dpp-staging-tchibo.dnstest.dyne.org/zenflows/api/file\n", "\n", "📸 Uploading images to Zenflows file server...\n", - " ✅ Uploaded: locilamp_main.jpeg\n", - " Hash (SHA-512 base64url): TcufT8AxuVsvFDvK71RCZ6wuxcu-UI...\n", - " ✅ Uploaded: closeup2.jpeg\n", - " Hash (SHA-512 base64url): ZvzgwG1ZaYz2GdlEHeuDAy6yIz1ZCu...\n", + " ✅ Uploaded: locilamp_oliverschwartz_DSC05185.jpg\n", + " Hash (SHA-512 base64url): QeZdQpdkVRm1r5u8awLI8iQBDhUD60...\n", + " ✅ Uploaded: locilamp_oliverschwartz_DSC09692.jpg\n", + " Hash (SHA-512 base64url): MoFeI3CF_egX2WJzhs4M-axRk_MZpD...\n", + " ✅ Uploaded: locilamp_oliverschwartz_DSC09707.jpg\n", + " Hash (SHA-512 base64url): 5TTzRcKusapFw2YY_iDQpXELvE0SS3...\n", + " ✅ Uploaded: locilamp_oliverschwartz_DSC05218-landscape.jpg\n", + " Hash (SHA-512 base64url): 9GgPwEmN2EkF1vVYdX1ntCpZNadVJm...\n", "\n", - "✅ Uploaded 2 images to Zenflows\n", + "✅ Uploaded 4 images to Zenflows\n", "\n", "📝 Updating zenflows_images with correct hashes...\n", - " Updated locilamp_main.jpeg:\n", - " Old (SHA-256 hex): TcufT8AxuVsvFDvK71RCZ6wuxcu-UI...\n", - " New (SHA-512 b64): TcufT8AxuVsvFDvK71RCZ6wuxcu-UI...\n", - " Updated closeup2.jpeg:\n", - " Old (SHA-256 hex): ZvzgwG1ZaYz2GdlEHeuDAy6yIz1ZCu...\n", - " New (SHA-512 b64): ZvzgwG1ZaYz2GdlEHeuDAy6yIz1ZCu...\n", + " Updated locilamp_oliverschwartz_DSC05185.jpg:\n", + " Old (SHA-256 hex): QeZdQpdkVRm1r5u8awLI8iQBDhUD60...\n", + " New (SHA-512 b64): QeZdQpdkVRm1r5u8awLI8iQBDhUD60...\n", + " Updated locilamp_oliverschwartz_DSC09692.jpg:\n", + " Old (SHA-256 hex): MoFeI3CF_egX2WJzhs4M-axRk_MZpD...\n", + " New (SHA-512 b64): MoFeI3CF_egX2WJzhs4M-axRk_MZpD...\n", + " Updated locilamp_oliverschwartz_DSC09707.jpg:\n", + " Old (SHA-256 hex): 5TTzRcKusapFw2YY_iDQpXELvE0SS3...\n", + " New (SHA-512 b64): 5TTzRcKusapFw2YY_iDQpXELvE0SS3...\n", + " Updated locilamp_oliverschwartz_DSC05218-landscape.jpg:\n", + " Old (SHA-256 hex): 9GgPwEmN2EkF1vVYdX1ntCpZNadVJm...\n", + " New (SHA-512 b64): 9GgPwEmN2EkF1vVYdX1ntCpZNadVJm...\n", "\n", "✅ zenflows_images now has correct hashes for Zenflows file server\n" ] @@ -1698,7 +1733,7 @@ }, { "cell_type": "code", - "execution_count": 389, + "execution_count": 53, "id": "9537f681", "metadata": {}, "outputs": [ @@ -1706,7 +1741,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "✅ Production data saved to use_cases/locilamp/proxy.dpp-staging.dyne.im%2Fzenflows%2Fapi/production_data.json\n" + "✅ Production data saved to use_cases/locilamp/proxy.dpp-staging-tchibo.dnstest.dyne.org%2Fzenflows%2Fapi/production_data.json\n" ] } ], @@ -1749,7 +1784,7 @@ }, { "cell_type": "code", - "execution_count": 390, + "execution_count": 54, "id": "fce560ab", "metadata": {}, "outputs": [ @@ -1766,16 +1801,16 @@ " Model: LOCILAMP V 2.0\n", "\n", "🔗 Digital Product Passport:\n", - " ULID: None\n", - " URL: https://proxy.dpp-staging.dyne.im/interfacer-dpp/dpp/None\n", + " ULID: 01KM07CJ7088DMVGWC28X0S1VJ\n", + " URL: https://proxy.dpp-staging-tchibo.dnstest.dyne.org/interfacer-dpp/dpp/01KM07CJ7088DMVGWC28X0S1VJ\n", "\n", "🏭 Production Details:\n", - " Resource ID: 06E0PTGNZB45VVY54QW2V49GM4\n", - " Producer: Tchibo (06E085NPZ4TNSX82EZVAWXPSFG)\n", + " Resource ID: 06EG0XJNM2ASEV13TDX1RZEQDC\n", + " Producer: Tchibo (06EG0S695QJ78QRCP79B4EYCSC)\n", " Location: Berlin\n", " Components used: 3\n", "\n", - "📸 Images uploaded: 2\n", + "📸 Images uploaded: 4\n", "============================================================\n" ] } @@ -1815,7 +1850,7 @@ }, { "cell_type": "code", - "execution_count": 391, + "execution_count": 55, "id": "2e9f5423", "metadata": {}, "outputs": [ @@ -1824,43 +1859,12 @@ "output_type": "stream", "text": [ "📊 Supply chain trace for LOCI LAMP:\n", - " Trace depth: 64 levels\n", - "id 06E0PTFM2XBW7YNKY72NGDS1RW already in visited in er_before\n", - "id 06E0PTFJQQ12CV5ENZBMMX1WKG already in visited in er_before\n", - "Payload\n", - "{'query': 'query($id:ID!) {\\n economicEvent(id:$id) {\\n ...event\\n previous{\\n __typename\\n ... on EconomicResource {\\n id\\n name\\n }\\n ... on EconomicEvent {\\n id\\n action {\\n id\\n }\\n }\\n ... on Process {\\n id\\n name\\n }\\n }\\n }\\n }\\n \\n fragment event on EconomicEvent {\\n type : __typename\\n action {\\n ...action\\n }\\n agreedIn\\n # String Reference to an agreement between agents which specifies the rules or policies or calculations which govern this economic event.\\n\\n atLocation {\\n ...location\\n }\\n\\n effortQuantity {\\n ...quantity\\n }\\n hasBeginning\\n hasEnd\\n hasPointInTime\\n id\\n inputOf {\\n ...process\\n }\\n outputOf {\\n ...process\\n }\\n note\\n provider {\\n ...agent\\n }\\n receiver {\\n ...agent\\n }\\n\\n realizationOf {\\n id\\n }\\n # Agreement This economic event occurs as part of this agreement.\\n\\n resourceClassifiedAs\\n resourceConformsTo {\\n ...resourcespecification\\n }\\n resourceInventoriedAs {\\n ...resource\\n }\\n\\n resourceQuantity {\\n ...quantity\\n }\\n toLocation {\\n ...location\\n }\\n toResourceInventoriedAs {\\n ...resource\\n }\\n triggeredBy {\\n id\\n }\\n }\\n\\n fragment location on SpatialThing {\\n id\\n alt\\n lat\\n long\\n mappableAddress\\n name\\n note\\n }\\n\\n fragment quantity on Measure {\\n hasNumericalValue\\n hasUnit {\\n id\\n label\\n symbol\\n }\\n\\n }\\n\\n fragment agent on Agent {\\n id\\n name\\n type: __typename\\n note\\n primaryLocation {\\n ...location\\n }\\n }\\n\\n fragment action on Action {\\n id\\n inputOutput\\n label\\n onhandEffect\\n pairsWith\\n resourceEffect\\n }\\n\\n fragment process on Process {\\n type: __typename\\n basedOn {\\n ...processspecification\\n }\\n classifiedAs\\n deletable\\n finished\\n groupedIn {\\n ...processgroup\\n }\\n hasBeginning\\n hasEnd\\n id\\n name\\n nestedIn {\\n id\\n }\\n # Scenario The process with its inputs and outputs is part of the scenario.\\n\\n note\\n plannedWithin {\\n id\\n }\\n # Plan: The process with its inputs and outputs is part of the plan.\\n }\\n\\n fragment processgroup on ProcessGroup {\\n groupedIn {\\n id\\n name\\n note\\n }\\n id\\n name\\n type: __typename\\n note\\n groups(first:100) {\\n edges {\\n node {\\n type: __typename\\n ...on Process {\\n id\\n name\\n note\\n }\\n ...on ProcessGroup {\\n id\\n name\\n note\\n }\\n }\\n }\\n }\\n }\\n\\n fragment resourcespecification on ResourceSpecification {\\n defaultUnitOfEffort {\\n ...unit\\n }\\n defaultUnitOfResource {\\n ...unit\\n }\\n id\\n name\\n note\\n resourceClassifiedAs\\n }\\n\\n fragment resource on EconomicResource {\\n id\\n name\\n trackingIdentifier\\n type: __typename\\n metadata\\n onhandQuantity {\\n ...quantity\\n }\\n accountingQuantity {\\n ...quantity\\n }\\n primaryAccountable {\\n ...agent\\n }\\n custodian {\\n ...agent\\n }\\n currentLocation {\\n ...location\\n }\\n }\\n\\n fragment unit on Unit {\\n id\\n label\\n symbol\\n}\\n\\n fragment processspecification on ProcessSpecification {\\n id\\n name\\n note\\n }\\n', 'variables': {'id': '06E0PTGHN0N0X3WDQTX7Q0Y00R'}}\n", - "Headers\n", - "{'zenflows-sign': 'VzD6vIKilcSaETZkeh0AlLYpARFZRobsWzx4LcBJKeZzlRCnU1/kFjao1QUxYmq6uP33Vv4lG3J+moBiGdSIAQ==', 'zenflows-user': 'tchibo_locilamp', 'zenflows-hash': 'eb68caebed437940c56a8801661f811466fff09304f6d74e09c9a6ad12e04685', 'content-type': 'application/json', 'accept': 'application/json'}\n", - "Result status code: 200\n", - "Result text: (empty)\n" - ] - }, - { - "ename": "Exception", - "evalue": "Exception Expecting value: line 1 column 1 (char 0) in function send_signed", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m/opt/homebrew/anaconda3/envs/envXI/lib/python3.11/site-packages/requests/models.py:974\u001b[0m, in \u001b[0;36mResponse.json\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcomplexjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[1;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n", - "File \u001b[0;32m/opt/homebrew/anaconda3/envs/envXI/lib/python3.11/json/__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[0;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", - "File \u001b[0;32m/opt/homebrew/anaconda3/envs/envXI/lib/python3.11/json/decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 333\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;124;03mcontaining a JSON document).\u001b[39;00m\n\u001b[1;32m 335\u001b[0m \n\u001b[1;32m 336\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n", - "File \u001b[0;32m/opt/homebrew/anaconda3/envs/envXI/lib/python3.11/json/decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", - "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/dyne/if/Interfacer-notebook/if_lib.py:571\u001b[0m, in \u001b[0;36msend_signed\u001b[0;34m(query, variables, username, eddsa, endpoint)\u001b[0m\n\u001b[1;32m 570\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 571\u001b[0m res_json \u001b[38;5;241m=\u001b[39m \u001b[43mres\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 572\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m/opt/homebrew/anaconda3/envs/envXI/lib/python3.11/site-packages/requests/models.py:978\u001b[0m, in \u001b[0;36mResponse.json\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[1;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n\u001b[0;32m--> 978\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RequestsJSONDecodeError(e\u001b[38;5;241m.\u001b[39mmsg, e\u001b[38;5;241m.\u001b[39mdoc, e\u001b[38;5;241m.\u001b[39mpos)\n", - "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mException\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[391], line 13\u001b[0m\n\u001b[1;32m 11\u001b[0m backtrace \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 12\u001b[0m visited \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mset\u001b[39m()\n\u001b[0;32m---> 13\u001b[0m \u001b[43mer_before\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrace_me\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43musers_data\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mtchibo\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdpp_children\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbacktrace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvisited\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvisited\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mendpoint\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mENDPOINT\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 14\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m Backward trace resources: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(visited)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m~/dyne/if/Interfacer-notebook/if_dpp.py:240\u001b[0m, in \u001b[0;36mer_before\u001b[0;34m(id, user_data, dpp_children, depth, visited, endpoint)\u001b[0m\n\u001b[1;32m 237\u001b[0m event \u001b[38;5;241m=\u001b[39m events\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 238\u001b[0m visited\u001b[38;5;241m.\u001b[39madd(event[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m--> 240\u001b[0m \u001b[43mee_before\u001b[49m\u001b[43m(\u001b[49m\u001b[43mevent\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mid\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muser_data\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdpp_item\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mchildren\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 241\u001b[0m \u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvisited\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/dyne/if/Interfacer-notebook/if_dpp.py:334\u001b[0m, in \u001b[0;36mee_before\u001b[0;34m(id, user_data, dpp_children, depth, visited, endpoint)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m pf_item[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m__typename\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mProcess\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 333\u001b[0m visited\u001b[38;5;241m.\u001b[39madd(pf_item[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m--> 334\u001b[0m \u001b[43mpr_before\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpf_item\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mid\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muser_data\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 335\u001b[0m \u001b[43m \u001b[49m\u001b[43mdpp_item\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mchildren\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvisited\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/dyne/if/Interfacer-notebook/if_dpp.py:402\u001b[0m, in \u001b[0;36mpr_before\u001b[0;34m(id, user_data, dpp_children, depth, visited, endpoint)\u001b[0m\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 401\u001b[0m visited\u001b[38;5;241m.\u001b[39madd(event[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m--> 402\u001b[0m \u001b[43mee_before\u001b[49m\u001b[43m(\u001b[49m\u001b[43mevent\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mid\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muser_data\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 403\u001b[0m \u001b[43m \u001b[49m\u001b[43mdpp_item\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mchildren\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvisited\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/dyne/if/Interfacer-notebook/if_dpp.py:280\u001b[0m, in \u001b[0;36mee_before\u001b[0;34m(id, user_data, dpp_children, depth, visited, endpoint)\u001b[0m\n\u001b[1;32m 251\u001b[0m variables \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 252\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28mid\u001b[39m\n\u001b[1;32m 253\u001b[0m }\n\u001b[1;32m 255\u001b[0m query \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\"\"\u001b[39m\u001b[38;5;124mquery($id:ID!) \u001b[39m\u001b[38;5;124m{\u001b[39m\n\u001b[1;32m 256\u001b[0m \u001b[38;5;124m economicEvent(id:$id) \u001b[39m\u001b[38;5;124m{\u001b[39m\n\u001b[1;32m 257\u001b[0m \u001b[38;5;124m ...event\u001b[39m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;124m\u001b[39m\u001b[38;5;124m\"\"\"\u001b[39m \u001b[38;5;241m+\u001b[39m EVENT_FRAG \u001b[38;5;241m+\u001b[39m LOCATION_FRAG \u001b[38;5;241m+\u001b[39m QUANTITY_FRAG \u001b[38;5;241m+\u001b[39m AGENT_FRAG \u001b[38;5;241m+\u001b[39m ACTION_FRAG \u001b[38;5;241m+\u001b[39m PROCESS_FRAG \u001b[38;5;241m+\u001b[39m PROCESSGRP_FRAG \u001b[38;5;241m+\u001b[39m \\\n\u001b[1;32m 278\u001b[0m RESSPEC_FRAG \u001b[38;5;241m+\u001b[39m RESOURCE_FRAG \u001b[38;5;241m+\u001b[39m UNIT_FRAG \u001b[38;5;241m+\u001b[39m PROCESSSPEC_FRAG\n\u001b[0;32m--> 280\u001b[0m res_json \u001b[38;5;241m=\u001b[39m \u001b[43msend_signed\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 281\u001b[0m \u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muser_data\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43musername\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43muser_data\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mkeyring\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43meddsa\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 283\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m DEBUG_ee_before:\n\u001b[1;32m 284\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mQuery\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m~/dyne/if/Interfacer-notebook/if_lib.py:579\u001b[0m, in \u001b[0;36msend_signed\u001b[0;34m(query, variables, username, eddsa, endpoint)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mResult status code:\u001b[39m\u001b[38;5;124m\"\u001b[39m, res\u001b[38;5;241m.\u001b[39mstatus_code)\n\u001b[1;32m 578\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mResult text:\u001b[39m\u001b[38;5;124m\"\u001b[39m, res\u001b[38;5;241m.\u001b[39mtext[:\u001b[38;5;241m500\u001b[39m] \u001b[38;5;28;01mif\u001b[39;00m res\u001b[38;5;241m.\u001b[39mtext \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m(empty)\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 579\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mException \u001b[39m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m in function \u001b[39m\u001b[38;5;132;01m{\u001b[39;00minspect\u001b[38;5;241m.\u001b[39mstack()[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;241m3\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 582\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m DEBUG_send_signed:\n\u001b[1;32m 583\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPayload\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[0;31mException\u001b[0m: Exception Expecting value: line 1 column 1 (char 0) in function send_signed" + " Trace depth: 93 levels\n", + "id 06EG0XJASTZG3RXPNZKRPRPY60 already in visited in ee_before\n", + "id 06EG0THPHPKVQK0E0NGCS2ZYKC already in visited in er_before\n", + "id 06EG0THMRHNRNTDMZV47NSM33G already in visited in er_before\n", + "id 06EG0THK1GR33DDH0EHX1RNFT8 already in visited in er_before\n", + " Backward trace resources: 46\n" ] } ], @@ -1893,7 +1897,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "id": "09805aaf", "metadata": {}, "outputs": [