From fc51fd2f5243292dfed21d084d2ed6e060f4c13e Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Thu, 11 Jan 2024 15:19:35 +0100 Subject: [PATCH 1/9] fix seaweed image --- packages/grid/default.env | 2 +- packages/grid/seaweedfs/seaweedfs.dockerfile | 2 +- packages/grid/seaweedfs/start.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/grid/default.env b/packages/grid/default.env index 5e69aca2580..d9b6da763ed 100644 --- a/packages/grid/default.env +++ b/packages/grid/default.env @@ -71,7 +71,7 @@ S3_ROOT_PWD="admin" # needs randomizing S3_REGION="us-east-1" #not-using S3_PRESIGNED_TIMEOUT_SECS=1800 -S3_VOLUME_SIZE_MB=1024 +S3_VOLUME_SIZE_MB=40000 # Jax JAX_ENABLE_X64=True diff --git a/packages/grid/seaweedfs/seaweedfs.dockerfile b/packages/grid/seaweedfs/seaweedfs.dockerfile index 3982e621c3b..bc652e2a1b9 100644 --- a/packages/grid/seaweedfs/seaweedfs.dockerfile +++ b/packages/grid/seaweedfs/seaweedfs.dockerfile @@ -1,6 +1,6 @@ ARG SEAWEEDFS_VERSION -FROM chrislusf/seaweedfs:${SEAWEEDFS_VERSION} +FROM chrislusf/seaweedfs:${SEAWEEDFS_VERSION}_large_disk WORKDIR / diff --git a/packages/grid/seaweedfs/start.sh b/packages/grid/seaweedfs/start.sh index 7972664b44e..d6e6f8d6116 100644 --- a/packages/grid/seaweedfs/start.sh +++ b/packages/grid/seaweedfs/start.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -weed server -s3 -s3.port="$S3_PORT" -volume.max=500 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & +weed server -s3 -s3.port="$S3_PORT" -master.volumePreallocate -volume.max=500 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & echo "s3.configure -access_key $S3_ROOT_USER -secret_key $S3_ROOT_PWD \ -user iam -actions Read,Write,List,Tagging,Admin -apply" | weed shell > /dev/null 2>&1 From 77cb1e438d496e93fda40c741dcba790aad71105 Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Wed, 17 Jan 2024 14:36:37 +0100 Subject: [PATCH 2/9] add notebook --- .../append-only-event-log-prototype.ipynb | 1714 +++++++++++++++++ 1 file changed, 1714 insertions(+) create mode 100644 notebooks/helm/append-only-event-log-prototype.ipynb diff --git a/notebooks/helm/append-only-event-log-prototype.ipynb b/notebooks/helm/append-only-event-log-prototype.ipynb new file mode 100644 index 00000000000..1783a7be2f3 --- /dev/null +++ b/notebooks/helm/append-only-event-log-prototype.ipynb @@ -0,0 +1,1714 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "fb5821ba", + "metadata": {}, + "outputs": [], + "source": [ + "# stdlib\n", + "from datetime import datetime\n", + "from typing import Any\n", + "from typing import Dict\n", + "from typing import List\n", + "from typing import Optional\n", + "\n", + "# syft absolute\n", + "from syft import UID\n", + "from syft.types.base import SyftBaseModel" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cbd66513", + "metadata": {}, + "outputs": [], + "source": [ + "class MyBaseModel(SyftBaseModel):\n", + " id: UID\n", + "\n", + " def __init__(self, id=None, *args, **kwargs):\n", + " id = UID() if id is None else id\n", + " super().__init__(*args, id=id, **kwargs)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "77a9326f", + "metadata": {}, + "outputs": [], + "source": [ + "class Event(MyBaseModel):\n", + " creator: UID\n", + " creation_date: datetime = datetime.now()\n", + "\n", + " def handler(self, node):\n", + " method_name = event_handler_registry[self.__class__.__name__]\n", + " return getattr(node, method_name)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8147bc26", + "metadata": {}, + "outputs": [], + "source": [ + "class EventLog(MyBaseModel):\n", + " log: List[Event] = []" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "8e254ba6", + "metadata": {}, + "outputs": [], + "source": [ + "class LinkedObject(MyBaseModel):\n", + " node_id: UID\n", + " obj_id: UID" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "da7a28d3", + "metadata": {}, + "outputs": [], + "source": [ + "class Dataset(MyBaseModel):\n", + " real: LinkedObject\n", + " mock: str\n", + " description: str" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0de045c1", + "metadata": {}, + "outputs": [], + "source": [ + "def register_event_handler(event_type):\n", + " def inner(method):\n", + " event_handler_registry[event_type.__name__] = method.__name__\n", + " return method\n", + "\n", + " return inner" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "046f5d49", + "metadata": {}, + "outputs": [], + "source": [ + "event_handler_registry = {}" + ] + }, + { + "cell_type": "markdown", + "id": "6b286e05", + "metadata": {}, + "source": [ + "# Events" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1a5b494a", + "metadata": {}, + "outputs": [], + "source": [ + "class CreateDatasetEvent(Event):\n", + " dataset_id: UID\n", + " mock: Any\n", + " real: LinkedObject\n", + " description: str\n", + " creator: UID\n", + "\n", + " def execute(self, node):\n", + " handler = self.handler(node)\n", + " handler(\n", + " dataset_id=self.dataset_id,\n", + " mock=self.mock,\n", + " real=self.real,\n", + " description=self.description,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5860ff66", + "metadata": {}, + "outputs": [], + "source": [ + "class UpdateDatasetEvent(Event):\n", + " dataset_id: UID\n", + " updates: Dict[str, Any]\n", + "\n", + " def execute(self, node):\n", + " handler = self.handler(node)\n", + " handler(dataset_id=self.dataset_id, updates=updates)" + ] + }, + { + "cell_type": "markdown", + "id": "b9e21de5", + "metadata": {}, + "source": [ + "# Node" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "929c0793", + "metadata": {}, + "outputs": [], + "source": [ + "class Node(MyBaseModel):\n", + " event_log: EventLog\n", + " store: Dict[UID, Any]\n", + " private_store: Dict[UID, Any]\n", + "\n", + " def __init__(self, *args, **kwargs):\n", + " event_log = EventLog()\n", + " store = {}\n", + " private_store = {}\n", + " super().__init__(\n", + " *args,\n", + " private_store=private_store,\n", + " store=store,\n", + " event_log=event_log,\n", + " **kwargs,\n", + " )\n", + "\n", + " def create_dataset(self, mock: str, real: Optional[str], description: str):\n", + " dataset_id = UID()\n", + " real_id = UID()\n", + " real_obj = LinkedObject(node_id=self.id, obj_id=dataset_id)\n", + "\n", + " self.private_store[real_id] = real\n", + "\n", + " event = CreateDatasetEvent(\n", + " dataset_id=dataset_id,\n", + " mock=mock,\n", + " real=real_obj,\n", + " description=description,\n", + " creator=self.id,\n", + " )\n", + "\n", + " self.event_log.log.append(event)\n", + " self._create_dataset(dataset_id, mock, real_obj, description)\n", + "\n", + " @register_event_handler(CreateDatasetEvent)\n", + " def _create_dataset(self, dataset_id, mock, real, description):\n", + " dataset = Dataset(id=dataset_id, mock=mock, real=real, description=description)\n", + " self.store[dataset.id] = dataset\n", + "\n", + " def update_dataset(self, id, updates):\n", + " event = UpdateDatasetEvent(\n", + " dataset_id=id,\n", + " updates=updates,\n", + " )\n", + " self.event_log.append(event)\n", + " self._update_dataset(id, updates)\n", + "\n", + " @register_event_handler(UpdateDatasetEvent)\n", + " def _update_dataset(self, id, updates):\n", + " dataset = self.store[id]\n", + "\n", + " for k, v in updates:\n", + " setattr(dataset, k, v)\n", + "\n", + " self.store[id] = dataset" + ] + }, + { + "cell_type": "markdown", + "id": "1749d266", + "metadata": {}, + "source": [ + "we want to check for 'mutations' of the same object, which is defined as:\n", + "\n", + "- CUD (from CRUD) of objects with the same unique keys\n", + " - create changes all attributes\n", + " - delete changes all attributes\n", + " - update only changes the attributes that were updated\n", + "\n", + "\n", + "In the case of update, if only non overlapping sets of properties were updated its not a merge conflict, as long as those are not code approval mutations." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "994cbe25", + "metadata": {}, + "outputs": [], + "source": [ + "def sync(node_high, now_low):\n", + " log1 = node_high.event_log.log\n", + " log2 = node_low.event_log.log\n", + "\n", + " # find idx of the fork\n", + " fork_idx = max(len(log1), len(log2))\n", + " for i, (e1, e2) in enumerate(list(zip(log1, log2))):\n", + " if e1.id != e2.id:\n", + " fork_idx = i\n", + " break\n", + "\n", + " branch1 = log1[fork_idx:]\n", + " branch2 = log2[fork_idx:]\n", + "\n", + " proposed_merge = sorted(branch1 + branch2, key=lambda e: e.creation_date)\n", + " # print(log1[:fork_idx])\n", + " # print(branch1)\n", + " # print(branch2)\n", + " # todo: fix conflicts\n", + "\n", + " new_events = log1[:fork_idx] + proposed_merge\n", + " new_log = EventLog(log=new_events)\n", + "\n", + " node_low.event_log = new_log\n", + "\n", + " # go back to fork state\n", + " # this means either: cleaning the store and the event store and replaying all\n", + " node_low.store = {}\n", + " # state_at_fork = node_low.event_states[fork_idx]\n", + "\n", + " for event in node_low.event_log.log:\n", + " event.execute(node_low)\n", + "\n", + " node_high.event_log = new_log\n", + "\n", + " assert all(\n", + " [x == y for x, y in zip(node_low.event_log.log, node_high.event_log.log)]\n", + " ) and len(node_low.event_log.log) == len(node_high.event_log.log)" + ] + }, + { + "cell_type": "markdown", + "id": "90c96310", + "metadata": {}, + "source": [ + "# Sync 1: create dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a1b7e47b", + "metadata": {}, + "outputs": [], + "source": [ + "node_high = Node()\n", + "node_low = Node()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "92d5f2f1", + "metadata": {}, + "outputs": [], + "source": [ + "node_high.create_dataset(real=\"abc\", mock=\"def\", description=\"blabla\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "78f19bf5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "<style>\n", + " body[data-jp-theme-light='false'] {\n", + " --primary-color: #111111;\n", + " --secondary-color: #212121;\n", + " --tertiary-color: #CFCDD6;\n", + " --button-color: #111111;\n", + " }\n", + "\n", + " body {\n", + " --primary-color: #ffffff;\n", + " --secondary-color: #f5f5f5;\n", + " --tertiary-color: #000000de;\n", + " --button-color: #d1d5db;\n", + " }\n", + "\n", + " .header-1 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 2.0736em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-2 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.728em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-3 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.44em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .header-4 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.2em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .paragraph {\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 14px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .paragraph-sm {\n", + " font-family: 'Roboto';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 11.62px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + " .code-text {\n", + " font-family: 'Consolas';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 13px;\n", + " line-height: 130%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .numbering-entry { display: none }\n", + "\n", + " /* Tooltip container */\n", + " .tooltip {\n", + " position: relative;\n", + " display: inline-block;\n", + " border-bottom: 1px dotted black; /* If you want dots under the hoverable text */\n", + " }\n", + "\n", + " /* Tooltip text */\n", + " .tooltip .tooltiptext {\n", + " visibility: hidden;\n", + " width: 120px;\n", + " background-color: black;\n", + " color: #fff;\n", + " text-align: center;\n", + " padding: 5px 0;\n", + " border-radius: 6px;\n", + "\n", + " /* Position the tooltip text - see examples below! */\n", + " position: absolute;\n", + " z-index: 1;\n", + " }\n", + "\n", + " .repr-cell {\n", + " padding-top: 20px;\n", + " }\n", + "\n", + " .text-bold {\n", + " font-weight: bold;\n", + " }\n", + "\n", + " .pr-8 {\n", + " padding-right: 8px;\n", + " }\n", + " .pt-8 {\n", + " padding-top: 8px;\n", + " }\n", + " .pl-8 {\n", + " padding-left: 8px;\n", + " }\n", + " .pb-8 {\n", + " padding-bottom: 8px;\n", + " }\n", + "\n", + " .py-25{\n", + " padding-top: 25px;\n", + " padding-bottom: 25px;\n", + " }\n", + "\n", + " .flex {\n", + " display: flex;\n", + " }\n", + "\n", + " .gap-10 {\n", + " gap: 10px;\n", + " }\n", + " .items-center{\n", + " align-items: center;\n", + " }\n", + "\n", + " .folder-icon {\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-input{\n", + " display: flex;\n", + " flex-direction: row;\n", + " align-items: center;\n", + " padding: 8px 12px;\n", + " width: 343px;\n", + " height: 24px;\n", + " /* Lt On Surface/Low */\n", + " background-color: var(--secondary-color);\n", + " border-radius: 30px;\n", + "\n", + " /* Lt On Surface/Highest */\n", + " color: var(--tertiary-color);\n", + " border:none;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 0;\n", + " flex-grow: 0;\n", + " }\n", + " .search-input:focus {\n", + " outline: none;\n", + " }\n", + " .search-input:focus::placeholder,\n", + " .search-input::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\n", + " color: var(--tertiary-color);\n", + " opacity: 1; /* Firefox */\n", + " }\n", + "\n", + " .search-button{\n", + " /* Search */\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " display: flex;\n", + " align-items: center;\n", + " text-align: center;\n", + "\n", + " /* Primary/On Light */\n", + " background-color: var(--button-color);\n", + " color: var(--tertiary-color);\n", + "\n", + " border-radius: 30px;\n", + " border-color: var(--secondary-color);\n", + " border-style: solid;\n", + " box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;\n", + " cursor: pointer;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 1;\n", + " flex-grow: 0;\n", + " }\n", + "\n", + " .grid-tablef8168d48eb1e461498d11530d73f5622 {\n", + " display:grid;\n", + " grid-template-columns: 1fr repeat(4, 1fr);\n", + " grid-template-rows: repeat(2, 1fr);\n", + " overflow-x: auto;\n", + " }\n", + "\n", + " .grid-std-cells {\n", + " grid-column: span 4;\n", + "\n", + " }\n", + " .grid-index-cells {\n", + " grid-column: span 1;\n", + " /* tmp fix to make left col stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color) !important;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-header {\n", + " /* Auto layout */\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " padding: 6px 4px;\n", + "\n", + " /* Lt On Surface/Surface */\n", + " /* Lt On Surface/High */\n", + " border: 1px solid #CFCDD6;\n", + " /* tmp fix to make header stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-row {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: flex-start;\n", + " padding: 6px 4px;\n", + " overflow: hidden;\n", + " border: 1px solid #CFCDD6;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .badge {\n", + " code-text;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .badge-blue {\n", + " badge;\n", + " background-color: #C2DEF0;\n", + " color: #1F567A;\n", + " }\n", + "\n", + " .badge-purple {\n", + " badge;\n", + " background-color: #C9CFE8;\n", + " color: #373B7B;\n", + " }\n", + "\n", + " .badge-green {\n", + " badge;\n", + "\n", + " /* Success/Container */\n", + " background-color: #D5F1D5;\n", + " color: #256B24;\n", + " }\n", + "\n", + " .badge-red {\n", + " badge;\n", + " background-color: #F2D9DE;\n", + " color: #9B2737;\n", + " }\n", + "\n", + " .badge-gray {\n", + " badge;\n", + " background-color: #ECEBEF;\n", + " color: #2E2B3B;\n", + " }\n", + " .paginationContainer{\n", + " width: 100%;\n", + " height: 30px;\n", + " display: flex;\n", + " justify-content: center;\n", + " gap: 8px;\n", + " padding: 5px;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .page{\n", + " color: black;\n", + " font-weight: bold;\n", + " color: var(--tertiary-color);\n", + " }\n", + " .page:hover {\n", + " color: #38bdf8;\n", + " cursor: pointer;\n", + " }\n", + " .clipboard:hover{\n", + " cursor: pointer;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-field {\n", + " display: flex;\n", + " align-items: center;\n", + " border-radius: 30px;\n", + " background-color: var(--secondary-color);\n", + " }\n", + "\n", + " .syft-dropdown {\n", + " margin: 5px;\n", + " margin-left: 5px;\n", + " position: relative;\n", + " display: inline-block;\n", + " text-align: center;\n", + " background-color: var(--button-color);\n", + " min-width: 100px;\n", + " padding: 2px;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .syft-dropdown:hover {\n", + " cursor: pointer;\n", + " }\n", + " .syft-dropdown-content {\n", + " margin-top:26px;\n", + " display: none;\n", + " position: absolute;\n", + " min-width: 100px;\n", + " box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n", + " padding: 12px 6px;\n", + " z-index: 1;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + " .dd-options {\n", + " padding-top: 4px;\n", + " }\n", + " .dd-options:first-of-type {\n", + " padding-top: 0px;\n", + " }\n", + "\n", + " .dd-options:hover {\n", + " cursor: pointer;\n", + " background: #d1d5db;\n", + " }\n", + " .arrow {\n", + " border: solid black;\n", + " border-width: 0 3px 3px 0;\n", + " display: inline-block;\n", + " padding: 3px;\n", + " }\n", + " .down {\n", + " transform: rotate(45deg);\n", + " -webkit-transform: rotate(45deg);\n", + " }\n", + "</style>\n", + "\n", + "\n", + " <div style='margin-top:15px;'>\n", + " <div class='flex gap-10' style='align-items: center;'>\n", + " <div class='folder-icon'><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M28 6H4C3.73478 6 3.48043 6.10536 3.29289 6.29289C3.10536 6.48043 3 6.73478 3 7V24C3 24.5304 3.21071 25.0391 3.58579 25.4142C3.96086 25.7893 4.46957 26 5 26H27C27.5304 26 28.0391 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V7C29 6.73478 28.8946 6.48043 28.7071 6.29289C28.5196 6.10536 28.2652 6 28 6ZM5 14H10V18H5V14ZM12 14H27V18H12V14ZM27 8V12H5V8H27ZM5 20H10V24H5V20ZM27 24H12V20H27V24Z\" fill=\"#343330\"/></svg></div>\n", + " <div><p class='header-3'>CreateDatasetEvent List</p></div>\n", + " </div>\n", + "\n", + " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", + " <div class='pt-25 gap-10' style=\"display:flex;\">\n", + " <div class=\"search-field\">\n", + " <div id='search-menuf8168d48eb1e461498d11530d73f5622' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-contentf8168d48eb1e461498d11530d73f5622')\n", + " if (doc.style.display === 'block'){\n", + " doc.style.display = 'none'\n", + " } else {\n", + " doc.style.display = 'block'\n", + " }\n", + " }\">\n", + " <div id='search-dropdown-contentf8168d48eb1e461498d11530d73f5622' class='syft-dropdown-content'></div>\n", + " <script>\n", + " var elementf8168d48eb1e461498d11530d73f5622 = [{\"id\": {\"value\": \"d675c49149044c4fbe878a187da83a6e\", \"type\": \"clipboard\"}}]\n", + " var page_sizef8168d48eb1e461498d11530d73f5622 = 1\n", + " var pageIndexf8168d48eb1e461498d11530d73f5622 = 1\n", + " var paginatedElementsf8168d48eb1e461498d11530d73f5622 = []\n", + " var activeFilterf8168d48eb1e461498d11530d73f5622;\n", + "\n", + " function buildDropDownMenu(elements){\n", + " let init_filter;\n", + " let menu = document.getElementById('search-dropdown-contentf8168d48eb1e461498d11530d73f5622')\n", + " if (elements.length > 0) {\n", + " let sample = elements[0]\n", + " for (const attr in sample) {\n", + " if (typeof init_filter === 'undefined'){\n", + " init_filter = attr;\n", + " }\n", + " let content = document.createElement('div');\n", + " content.onclick = function(event) {\n", + " event.stopPropagation()\n", + " document.getElementById('menu-active-filterf8168d48eb1e461498d11530d73f5622').innerText = attr;\n", + " activeFilterf8168d48eb1e461498d11530d73f5622 = attr;\n", + " document.getElementById(\n", + " 'search-dropdown-contentf8168d48eb1e461498d11530d73f5622'\n", + " ).style.display= 'none';\n", + " }\n", + " content.classList.add(\"dd-options\");\n", + " content.innerText = attr;\n", + " menu.appendChild(content);\n", + " }\n", + " } else {\n", + " let init_filter = '---'\n", + " }\n", + " let dropdown_field = document.getElementById('search-menuf8168d48eb1e461498d11530d73f5622')\n", + " let span = document.createElement('span')\n", + " span.setAttribute('id', 'menu-active-filterf8168d48eb1e461498d11530d73f5622')\n", + " span.innerText = init_filter\n", + " activeFilterf8168d48eb1e461498d11530d73f5622 = init_filter;\n", + " dropdown_field.appendChild(span)\n", + " }\n", + "\n", + " buildDropDownMenu(elementf8168d48eb1e461498d11530d73f5622)\n", + " </script>\n", + " </div>\n", + " <input id='searchKeyf8168d48eb1e461498d11530d73f5622' class='search-input' placeholder='Enter search here ...' />\n", + " </div>\n", + " <button class='search-button' type=\"button\" onclick=\"searchGridf8168d48eb1e461498d11530d73f5622(elementf8168d48eb1e461498d11530d73f5622)\">\n", + " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", + " <span class='pl-8'>Search</span>\n", + " </button>\n", + " </div>\n", + "\n", + " <div><h4 id='totalf8168d48eb1e461498d11530d73f5622'>0</h4></div>\n", + " </div>\n", + " <div id='tablef8168d48eb1e461498d11530d73f5622' class='grid-tablef8168d48eb1e461498d11530d73f5622' style='margin-top: 25px;'>\n", + " <script>\n", + " function paginatef8168d48eb1e461498d11530d73f5622(arr, size) {\n", + " const res = [];\n", + " for (let i = 0; i < arr.length; i += size) {\n", + " const chunk = arr.slice(i, i + size);\n", + " res.push(chunk);\n", + " }\n", + "\n", + " return res;\n", + " }\n", + "\n", + " function searchGridf8168d48eb1e461498d11530d73f5622(elements){\n", + " let searchKey = document.getElementById('searchKeyf8168d48eb1e461498d11530d73f5622').value;\n", + " let result;\n", + " if (searchKey === ''){\n", + " result = elements;\n", + " } else {\n", + " result = elements.filter((element) => {\n", + " let property = element[activeFilterf8168d48eb1e461498d11530d73f5622]\n", + " if (typeof property === 'object' && property !== null){\n", + " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (typeof property === 'string' ) {\n", + " return element[activeFilterf8168d48eb1e461498d11530d73f5622].toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (property !== null ) {\n", + " return element[activeFilterf8168d48eb1e461498d11530d73f5622].toString() === searchKey;\n", + " } else {\n", + " return element[activeFilterf8168d48eb1e461498d11530d73f5622] === searchKey;\n", + " }\n", + " } );\n", + " }\n", + " resetByIdf8168d48eb1e461498d11530d73f5622('tablef8168d48eb1e461498d11530d73f5622');\n", + " resetByIdf8168d48eb1e461498d11530d73f5622('pagf8168d48eb1e461498d11530d73f5622');\n", + " result = paginatef8168d48eb1e461498d11530d73f5622(result, page_sizef8168d48eb1e461498d11530d73f5622)\n", + " paginatedElementsf8168d48eb1e461498d11530d73f5622 = result\n", + " buildGridf8168d48eb1e461498d11530d73f5622(result,pageIndexf8168d48eb1e461498d11530d73f5622);\n", + " buildPaginationContainerf8168d48eb1e461498d11530d73f5622(result);\n", + " }\n", + "\n", + " function resetByIdf8168d48eb1e461498d11530d73f5622(id){\n", + " let element = document.getElementById(id);\n", + " while (element.firstChild) {\n", + " element.removeChild(element.firstChild);\n", + " }\n", + " }\n", + "\n", + " function buildGridf8168d48eb1e461498d11530d73f5622(items, pageIndex){\n", + " let headers = Object.keys(elementf8168d48eb1e461498d11530d73f5622[0]);\n", + "\n", + " let grid = document.getElementById(\"tablef8168d48eb1e461498d11530d73f5622\");\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-index-cells');\n", + " grid.appendChild(div);\n", + " headers.forEach((title) =>{\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-std-cells');\n", + " div.innerText = title;\n", + "\n", + " grid.appendChild(div);\n", + " });\n", + "\n", + " let page = items[pageIndex -1]\n", + " if (page !== 'undefine'){\n", + " let table_indexf8168d48eb1e461498d11530d73f5622 = ((pageIndex - 1) * page_sizef8168d48eb1e461498d11530d73f5622)\n", + " page.forEach((item) => {\n", + " let grid = document.getElementById(\"tablef8168d48eb1e461498d11530d73f5622\");\n", + " // Add new index value in index cells\n", + " let divIndex = document.createElement(\"div\");\n", + " divIndex.classList.add('grid-row', 'grid-index-cells');\n", + " divIndex.innerText = table_indexf8168d48eb1e461498d11530d73f5622;\n", + " grid.appendChild(divIndex);\n", + "\n", + " // Iterate over the actual obj\n", + " for (const attr in item) {\n", + " let div = document.createElement(\"div\");\n", + " if (typeof item[attr] === 'object'\n", + " && item[attr] !== null\n", + " && item[attr].hasOwnProperty('type')) {\n", + " if (item[attr].type.includes('badge')){\n", + " let badge_div = document.createElement(\"div\");\n", + " badge_div.classList.add('badge',item[attr].type)\n", + " badge_div.innerText = String(item[attr].value).toUpperCase();\n", + " div.appendChild(badge_div);\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " } else if (item[attr].type === \"clipboard\") {\n", + " div.classList.add('grid-row','grid-std-cells');\n", + "\n", + " // Create clipboard div\n", + " let clipboard_div = document.createElement('div');\n", + " clipboard_div.style.display= 'flex';\n", + " clipboard_div.classList.add(\"gap-10\")\n", + " clipboard_div.style.justifyContent = \"space-between\";\n", + "\n", + " let id_text = document.createElement('div');\n", + " if (item[attr].value == \"None\"){\n", + " id_text.innerText = \"None\";\n", + " }\n", + " else{\n", + " id_text.innerText = item[attr].value.slice(0,5) + \"...\";\n", + " }\n", + "\n", + " clipboard_div.appendChild(id_text);\n", + " let clipboard_img = document.createElement('div');\n", + " clipboard_img.classList.add(\"clipboard\")\n", + " div.onclick = function() {\n", + " navigator.clipboard.writeText(item[attr].value);\n", + " };\n", + " clipboard_img.innerHTML = \"<svg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M7.4375 0.25H2.4375C2.35462 0.25 2.27513 0.282924 2.21653 0.341529C2.15792 0.400134 2.125 0.47962 2.125 0.5625V2.125H0.5625C0.47962 2.125 0.400134 2.15792 0.341529 2.21653C0.282924 2.27513 0.25 2.35462 0.25 2.4375V7.4375C0.25 7.52038 0.282924 7.59987 0.341529 7.65847C0.400134 7.71708 0.47962 7.75 0.5625 7.75H5.5625C5.64538 7.75 5.72487 7.71708 5.78347 7.65847C5.84208 7.59987 5.875 7.52038 5.875 7.4375V5.875H7.4375C7.52038 5.875 7.59987 5.84208 7.65847 5.78347C7.71708 5.72487 7.75 5.64538 7.75 5.5625V0.5625C7.75 0.47962 7.71708 0.400134 7.65847 0.341529C7.59987 0.282924 7.52038 0.25 7.4375 0.25ZM5.25 7.125H0.875V2.75H5.25V7.125ZM7.125 5.25H5.875V2.4375C5.875 2.35462 5.84208 2.27513 5.78347 2.21653C5.72487 2.15792 5.64538 2.125 5.5625 2.125H2.75V0.875H7.125V5.25Z' fill='#464158'/></svg>\";\n", + "\n", + " clipboard_div.appendChild(clipboard_img);\n", + " div.appendChild(clipboard_div);\n", + " }\n", + " } else{\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " if (item[attr] == null) {\n", + " text = ' '\n", + " } else {\n", + " text = String(item[attr])\n", + " }\n", + " if (text.length > 150){\n", + " text = text.slice(0,150) + \"...\";\n", + " }\n", + " text = text.replaceAll(\"\\n\", \"</br>\");\n", + " div.innerHTML = text;\n", + " }\n", + " grid.appendChild(div);\n", + " }\n", + " table_indexf8168d48eb1e461498d11530d73f5622 = table_indexf8168d48eb1e461498d11530d73f5622 + 1;\n", + " })\n", + " }\n", + " }\n", + " paginatedElementsf8168d48eb1e461498d11530d73f5622 = paginatef8168d48eb1e461498d11530d73f5622(elementf8168d48eb1e461498d11530d73f5622, page_sizef8168d48eb1e461498d11530d73f5622)\n", + " buildGridf8168d48eb1e461498d11530d73f5622(paginatedElementsf8168d48eb1e461498d11530d73f5622, 1)\n", + " document.getElementById('totalf8168d48eb1e461498d11530d73f5622').innerText = \"Total: \" + elementf8168d48eb1e461498d11530d73f5622.length\n", + " </script>\n", + " </div>\n", + " <div id='pagf8168d48eb1e461498d11530d73f5622' class='paginationContainer'>\n", + " <script>\n", + " function buildPaginationContainerf8168d48eb1e461498d11530d73f5622(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pagf8168d48eb1e461498d11530d73f5622\");\n", + " for (let i = 0; i < paginatedElements.length; i++) {\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('page');\n", + " if(i===0) div.style.color = \"gray\";\n", + " else div.style.color = 'var(--tertiary-color, \"gray\")';\n", + " div.onclick = function(event) {\n", + " let indexes = document.getElementsByClassName('page');\n", + " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", + " event.target.style.color = \"gray\";\n", + " setPagef8168d48eb1e461498d11530d73f5622(i + 1);\n", + " };\n", + " div.innerText = i + 1;\n", + " pageContainer.appendChild(div);\n", + " }\n", + " }\n", + "\n", + " function setPagef8168d48eb1e461498d11530d73f5622(newPage){\n", + " pageIndex = newPage\n", + " resetByIdf8168d48eb1e461498d11530d73f5622('tablef8168d48eb1e461498d11530d73f5622')\n", + " buildGridf8168d48eb1e461498d11530d73f5622(paginatedElementsf8168d48eb1e461498d11530d73f5622, pageIndex)\n", + " }\n", + "\n", + " buildPaginationContainerf8168d48eb1e461498d11530d73f5622(paginatedElementsf8168d48eb1e461498d11530d73f5622)\n", + " </script>\n", + " </div>\n", + " </div>\n", + " </div>\n", + " </div>\n" + ], + "text/plain": [ + "[CreateDatasetEvent(id=<UID: d675c49149044c4fbe878a187da83a6e>, creator=<UID: 754197672f0a4d4abfa010b017a57f61>, creation_date=datetime.datetime(2024, 1, 16, 18, 20, 26, 487516), dataset_id=<UID: 903b391a7258441eb213087dd4fa1389>, mock='def', real=LinkedObject(id=<UID: fe7b802c240349b8b07b3e0783367f1a>, node_id=<UID: 754197672f0a4d4abfa010b017a57f61>, obj_id=<UID: 903b391a7258441eb213087dd4fa1389>), description='blabla')]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node_high.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "085c71ab", + "metadata": {}, + "outputs": [], + "source": [ + "sync(node_high, node_low)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "1c8ead28", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "<style>\n", + " body[data-jp-theme-light='false'] {\n", + " --primary-color: #111111;\n", + " --secondary-color: #212121;\n", + " --tertiary-color: #CFCDD6;\n", + " --button-color: #111111;\n", + " }\n", + "\n", + " body {\n", + " --primary-color: #ffffff;\n", + " --secondary-color: #f5f5f5;\n", + " --tertiary-color: #000000de;\n", + " --button-color: #d1d5db;\n", + " }\n", + "\n", + " .header-1 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 2.0736em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-2 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.728em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-3 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.44em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .header-4 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.2em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .paragraph {\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 14px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .paragraph-sm {\n", + " font-family: 'Roboto';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 11.62px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + " .code-text {\n", + " font-family: 'Consolas';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 13px;\n", + " line-height: 130%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .numbering-entry { display: none }\n", + "\n", + " /* Tooltip container */\n", + " .tooltip {\n", + " position: relative;\n", + " display: inline-block;\n", + " border-bottom: 1px dotted black; /* If you want dots under the hoverable text */\n", + " }\n", + "\n", + " /* Tooltip text */\n", + " .tooltip .tooltiptext {\n", + " visibility: hidden;\n", + " width: 120px;\n", + " background-color: black;\n", + " color: #fff;\n", + " text-align: center;\n", + " padding: 5px 0;\n", + " border-radius: 6px;\n", + "\n", + " /* Position the tooltip text - see examples below! */\n", + " position: absolute;\n", + " z-index: 1;\n", + " }\n", + "\n", + " .repr-cell {\n", + " padding-top: 20px;\n", + " }\n", + "\n", + " .text-bold {\n", + " font-weight: bold;\n", + " }\n", + "\n", + " .pr-8 {\n", + " padding-right: 8px;\n", + " }\n", + " .pt-8 {\n", + " padding-top: 8px;\n", + " }\n", + " .pl-8 {\n", + " padding-left: 8px;\n", + " }\n", + " .pb-8 {\n", + " padding-bottom: 8px;\n", + " }\n", + "\n", + " .py-25{\n", + " padding-top: 25px;\n", + " padding-bottom: 25px;\n", + " }\n", + "\n", + " .flex {\n", + " display: flex;\n", + " }\n", + "\n", + " .gap-10 {\n", + " gap: 10px;\n", + " }\n", + " .items-center{\n", + " align-items: center;\n", + " }\n", + "\n", + " .folder-icon {\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-input{\n", + " display: flex;\n", + " flex-direction: row;\n", + " align-items: center;\n", + " padding: 8px 12px;\n", + " width: 343px;\n", + " height: 24px;\n", + " /* Lt On Surface/Low */\n", + " background-color: var(--secondary-color);\n", + " border-radius: 30px;\n", + "\n", + " /* Lt On Surface/Highest */\n", + " color: var(--tertiary-color);\n", + " border:none;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 0;\n", + " flex-grow: 0;\n", + " }\n", + " .search-input:focus {\n", + " outline: none;\n", + " }\n", + " .search-input:focus::placeholder,\n", + " .search-input::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\n", + " color: var(--tertiary-color);\n", + " opacity: 1; /* Firefox */\n", + " }\n", + "\n", + " .search-button{\n", + " /* Search */\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " display: flex;\n", + " align-items: center;\n", + " text-align: center;\n", + "\n", + " /* Primary/On Light */\n", + " background-color: var(--button-color);\n", + " color: var(--tertiary-color);\n", + "\n", + " border-radius: 30px;\n", + " border-color: var(--secondary-color);\n", + " border-style: solid;\n", + " box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;\n", + " cursor: pointer;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 1;\n", + " flex-grow: 0;\n", + " }\n", + "\n", + " .grid-table430598ec8c3b4f3fb500dc8b3fd52e1d {\n", + " display:grid;\n", + " grid-template-columns: 1fr repeat(4, 1fr);\n", + " grid-template-rows: repeat(2, 1fr);\n", + " overflow-x: auto;\n", + " }\n", + "\n", + " .grid-std-cells {\n", + " grid-column: span 4;\n", + "\n", + " }\n", + " .grid-index-cells {\n", + " grid-column: span 1;\n", + " /* tmp fix to make left col stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color) !important;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-header {\n", + " /* Auto layout */\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " padding: 6px 4px;\n", + "\n", + " /* Lt On Surface/Surface */\n", + " /* Lt On Surface/High */\n", + " border: 1px solid #CFCDD6;\n", + " /* tmp fix to make header stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-row {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: flex-start;\n", + " padding: 6px 4px;\n", + " overflow: hidden;\n", + " border: 1px solid #CFCDD6;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .badge {\n", + " code-text;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .badge-blue {\n", + " badge;\n", + " background-color: #C2DEF0;\n", + " color: #1F567A;\n", + " }\n", + "\n", + " .badge-purple {\n", + " badge;\n", + " background-color: #C9CFE8;\n", + " color: #373B7B;\n", + " }\n", + "\n", + " .badge-green {\n", + " badge;\n", + "\n", + " /* Success/Container */\n", + " background-color: #D5F1D5;\n", + " color: #256B24;\n", + " }\n", + "\n", + " .badge-red {\n", + " badge;\n", + " background-color: #F2D9DE;\n", + " color: #9B2737;\n", + " }\n", + "\n", + " .badge-gray {\n", + " badge;\n", + " background-color: #ECEBEF;\n", + " color: #2E2B3B;\n", + " }\n", + " .paginationContainer{\n", + " width: 100%;\n", + " height: 30px;\n", + " display: flex;\n", + " justify-content: center;\n", + " gap: 8px;\n", + " padding: 5px;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .page{\n", + " color: black;\n", + " font-weight: bold;\n", + " color: var(--tertiary-color);\n", + " }\n", + " .page:hover {\n", + " color: #38bdf8;\n", + " cursor: pointer;\n", + " }\n", + " .clipboard:hover{\n", + " cursor: pointer;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-field {\n", + " display: flex;\n", + " align-items: center;\n", + " border-radius: 30px;\n", + " background-color: var(--secondary-color);\n", + " }\n", + "\n", + " .syft-dropdown {\n", + " margin: 5px;\n", + " margin-left: 5px;\n", + " position: relative;\n", + " display: inline-block;\n", + " text-align: center;\n", + " background-color: var(--button-color);\n", + " min-width: 100px;\n", + " padding: 2px;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .syft-dropdown:hover {\n", + " cursor: pointer;\n", + " }\n", + " .syft-dropdown-content {\n", + " margin-top:26px;\n", + " display: none;\n", + " position: absolute;\n", + " min-width: 100px;\n", + " box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n", + " padding: 12px 6px;\n", + " z-index: 1;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + " .dd-options {\n", + " padding-top: 4px;\n", + " }\n", + " .dd-options:first-of-type {\n", + " padding-top: 0px;\n", + " }\n", + "\n", + " .dd-options:hover {\n", + " cursor: pointer;\n", + " background: #d1d5db;\n", + " }\n", + " .arrow {\n", + " border: solid black;\n", + " border-width: 0 3px 3px 0;\n", + " display: inline-block;\n", + " padding: 3px;\n", + " }\n", + " .down {\n", + " transform: rotate(45deg);\n", + " -webkit-transform: rotate(45deg);\n", + " }\n", + "</style>\n", + "\n", + "\n", + " <div style='margin-top:15px;'>\n", + " <div class='flex gap-10' style='align-items: center;'>\n", + " <div class='folder-icon'><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M28 6H4C3.73478 6 3.48043 6.10536 3.29289 6.29289C3.10536 6.48043 3 6.73478 3 7V24C3 24.5304 3.21071 25.0391 3.58579 25.4142C3.96086 25.7893 4.46957 26 5 26H27C27.5304 26 28.0391 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V7C29 6.73478 28.8946 6.48043 28.7071 6.29289C28.5196 6.10536 28.2652 6 28 6ZM5 14H10V18H5V14ZM12 14H27V18H12V14ZM27 8V12H5V8H27ZM5 20H10V24H5V20ZM27 24H12V20H27V24Z\" fill=\"#343330\"/></svg></div>\n", + " <div><p class='header-3'>CreateDatasetEvent List</p></div>\n", + " </div>\n", + "\n", + " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", + " <div class='pt-25 gap-10' style=\"display:flex;\">\n", + " <div class=\"search-field\">\n", + " <div id='search-menu430598ec8c3b4f3fb500dc8b3fd52e1d' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " if (doc.style.display === 'block'){\n", + " doc.style.display = 'none'\n", + " } else {\n", + " doc.style.display = 'block'\n", + " }\n", + " }\">\n", + " <div id='search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d' class='syft-dropdown-content'></div>\n", + " <script>\n", + " var element430598ec8c3b4f3fb500dc8b3fd52e1d = [{\"id\": {\"value\": \"d675c49149044c4fbe878a187da83a6e\", \"type\": \"clipboard\"}}]\n", + " var page_size430598ec8c3b4f3fb500dc8b3fd52e1d = 1\n", + " var pageIndex430598ec8c3b4f3fb500dc8b3fd52e1d = 1\n", + " var paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d = []\n", + " var activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d;\n", + "\n", + " function buildDropDownMenu(elements){\n", + " let init_filter;\n", + " let menu = document.getElementById('search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " if (elements.length > 0) {\n", + " let sample = elements[0]\n", + " for (const attr in sample) {\n", + " if (typeof init_filter === 'undefined'){\n", + " init_filter = attr;\n", + " }\n", + " let content = document.createElement('div');\n", + " content.onclick = function(event) {\n", + " event.stopPropagation()\n", + " document.getElementById('menu-active-filter430598ec8c3b4f3fb500dc8b3fd52e1d').innerText = attr;\n", + " activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d = attr;\n", + " document.getElementById(\n", + " 'search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d'\n", + " ).style.display= 'none';\n", + " }\n", + " content.classList.add(\"dd-options\");\n", + " content.innerText = attr;\n", + " menu.appendChild(content);\n", + " }\n", + " } else {\n", + " let init_filter = '---'\n", + " }\n", + " let dropdown_field = document.getElementById('search-menu430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " let span = document.createElement('span')\n", + " span.setAttribute('id', 'menu-active-filter430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " span.innerText = init_filter\n", + " activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d = init_filter;\n", + " dropdown_field.appendChild(span)\n", + " }\n", + "\n", + " buildDropDownMenu(element430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " </script>\n", + " </div>\n", + " <input id='searchKey430598ec8c3b4f3fb500dc8b3fd52e1d' class='search-input' placeholder='Enter search here ...' />\n", + " </div>\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid430598ec8c3b4f3fb500dc8b3fd52e1d(element430598ec8c3b4f3fb500dc8b3fd52e1d)\">\n", + " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", + " <span class='pl-8'>Search</span>\n", + " </button>\n", + " </div>\n", + "\n", + " <div><h4 id='total430598ec8c3b4f3fb500dc8b3fd52e1d'>0</h4></div>\n", + " </div>\n", + " <div id='table430598ec8c3b4f3fb500dc8b3fd52e1d' class='grid-table430598ec8c3b4f3fb500dc8b3fd52e1d' style='margin-top: 25px;'>\n", + " <script>\n", + " function paginate430598ec8c3b4f3fb500dc8b3fd52e1d(arr, size) {\n", + " const res = [];\n", + " for (let i = 0; i < arr.length; i += size) {\n", + " const chunk = arr.slice(i, i + size);\n", + " res.push(chunk);\n", + " }\n", + "\n", + " return res;\n", + " }\n", + "\n", + " function searchGrid430598ec8c3b4f3fb500dc8b3fd52e1d(elements){\n", + " let searchKey = document.getElementById('searchKey430598ec8c3b4f3fb500dc8b3fd52e1d').value;\n", + " let result;\n", + " if (searchKey === ''){\n", + " result = elements;\n", + " } else {\n", + " result = elements.filter((element) => {\n", + " let property = element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d]\n", + " if (typeof property === 'object' && property !== null){\n", + " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (typeof property === 'string' ) {\n", + " return element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d].toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (property !== null ) {\n", + " return element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d].toString() === searchKey;\n", + " } else {\n", + " return element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d] === searchKey;\n", + " }\n", + " } );\n", + " }\n", + " resetById430598ec8c3b4f3fb500dc8b3fd52e1d('table430598ec8c3b4f3fb500dc8b3fd52e1d');\n", + " resetById430598ec8c3b4f3fb500dc8b3fd52e1d('pag430598ec8c3b4f3fb500dc8b3fd52e1d');\n", + " result = paginate430598ec8c3b4f3fb500dc8b3fd52e1d(result, page_size430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d = result\n", + " buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(result,pageIndex430598ec8c3b4f3fb500dc8b3fd52e1d);\n", + " buildPaginationContainer430598ec8c3b4f3fb500dc8b3fd52e1d(result);\n", + " }\n", + "\n", + " function resetById430598ec8c3b4f3fb500dc8b3fd52e1d(id){\n", + " let element = document.getElementById(id);\n", + " while (element.firstChild) {\n", + " element.removeChild(element.firstChild);\n", + " }\n", + " }\n", + "\n", + " function buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(items, pageIndex){\n", + " let headers = Object.keys(element430598ec8c3b4f3fb500dc8b3fd52e1d[0]);\n", + "\n", + " let grid = document.getElementById(\"table430598ec8c3b4f3fb500dc8b3fd52e1d\");\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-index-cells');\n", + " grid.appendChild(div);\n", + " headers.forEach((title) =>{\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-std-cells');\n", + " div.innerText = title;\n", + "\n", + " grid.appendChild(div);\n", + " });\n", + "\n", + " let page = items[pageIndex -1]\n", + " if (page !== 'undefine'){\n", + " let table_index430598ec8c3b4f3fb500dc8b3fd52e1d = ((pageIndex - 1) * page_size430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " page.forEach((item) => {\n", + " let grid = document.getElementById(\"table430598ec8c3b4f3fb500dc8b3fd52e1d\");\n", + " // Add new index value in index cells\n", + " let divIndex = document.createElement(\"div\");\n", + " divIndex.classList.add('grid-row', 'grid-index-cells');\n", + " divIndex.innerText = table_index430598ec8c3b4f3fb500dc8b3fd52e1d;\n", + " grid.appendChild(divIndex);\n", + "\n", + " // Iterate over the actual obj\n", + " for (const attr in item) {\n", + " let div = document.createElement(\"div\");\n", + " if (typeof item[attr] === 'object'\n", + " && item[attr] !== null\n", + " && item[attr].hasOwnProperty('type')) {\n", + " if (item[attr].type.includes('badge')){\n", + " let badge_div = document.createElement(\"div\");\n", + " badge_div.classList.add('badge',item[attr].type)\n", + " badge_div.innerText = String(item[attr].value).toUpperCase();\n", + " div.appendChild(badge_div);\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " } else if (item[attr].type === \"clipboard\") {\n", + " div.classList.add('grid-row','grid-std-cells');\n", + "\n", + " // Create clipboard div\n", + " let clipboard_div = document.createElement('div');\n", + " clipboard_div.style.display= 'flex';\n", + " clipboard_div.classList.add(\"gap-10\")\n", + " clipboard_div.style.justifyContent = \"space-between\";\n", + "\n", + " let id_text = document.createElement('div');\n", + " if (item[attr].value == \"None\"){\n", + " id_text.innerText = \"None\";\n", + " }\n", + " else{\n", + " id_text.innerText = item[attr].value.slice(0,5) + \"...\";\n", + " }\n", + "\n", + " clipboard_div.appendChild(id_text);\n", + " let clipboard_img = document.createElement('div');\n", + " clipboard_img.classList.add(\"clipboard\")\n", + " div.onclick = function() {\n", + " navigator.clipboard.writeText(item[attr].value);\n", + " };\n", + " clipboard_img.innerHTML = \"<svg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M7.4375 0.25H2.4375C2.35462 0.25 2.27513 0.282924 2.21653 0.341529C2.15792 0.400134 2.125 0.47962 2.125 0.5625V2.125H0.5625C0.47962 2.125 0.400134 2.15792 0.341529 2.21653C0.282924 2.27513 0.25 2.35462 0.25 2.4375V7.4375C0.25 7.52038 0.282924 7.59987 0.341529 7.65847C0.400134 7.71708 0.47962 7.75 0.5625 7.75H5.5625C5.64538 7.75 5.72487 7.71708 5.78347 7.65847C5.84208 7.59987 5.875 7.52038 5.875 7.4375V5.875H7.4375C7.52038 5.875 7.59987 5.84208 7.65847 5.78347C7.71708 5.72487 7.75 5.64538 7.75 5.5625V0.5625C7.75 0.47962 7.71708 0.400134 7.65847 0.341529C7.59987 0.282924 7.52038 0.25 7.4375 0.25ZM5.25 7.125H0.875V2.75H5.25V7.125ZM7.125 5.25H5.875V2.4375C5.875 2.35462 5.84208 2.27513 5.78347 2.21653C5.72487 2.15792 5.64538 2.125 5.5625 2.125H2.75V0.875H7.125V5.25Z' fill='#464158'/></svg>\";\n", + "\n", + " clipboard_div.appendChild(clipboard_img);\n", + " div.appendChild(clipboard_div);\n", + " }\n", + " } else{\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " if (item[attr] == null) {\n", + " text = ' '\n", + " } else {\n", + " text = String(item[attr])\n", + " }\n", + " if (text.length > 150){\n", + " text = text.slice(0,150) + \"...\";\n", + " }\n", + " text = text.replaceAll(\"\\n\", \"</br>\");\n", + " div.innerHTML = text;\n", + " }\n", + " grid.appendChild(div);\n", + " }\n", + " table_index430598ec8c3b4f3fb500dc8b3fd52e1d = table_index430598ec8c3b4f3fb500dc8b3fd52e1d + 1;\n", + " })\n", + " }\n", + " }\n", + " paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d = paginate430598ec8c3b4f3fb500dc8b3fd52e1d(element430598ec8c3b4f3fb500dc8b3fd52e1d, page_size430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d, 1)\n", + " document.getElementById('total430598ec8c3b4f3fb500dc8b3fd52e1d').innerText = \"Total: \" + element430598ec8c3b4f3fb500dc8b3fd52e1d.length\n", + " </script>\n", + " </div>\n", + " <div id='pag430598ec8c3b4f3fb500dc8b3fd52e1d' class='paginationContainer'>\n", + " <script>\n", + " function buildPaginationContainer430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag430598ec8c3b4f3fb500dc8b3fd52e1d\");\n", + " for (let i = 0; i < paginatedElements.length; i++) {\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('page');\n", + " if(i===0) div.style.color = \"gray\";\n", + " else div.style.color = 'var(--tertiary-color, \"gray\")';\n", + " div.onclick = function(event) {\n", + " let indexes = document.getElementsByClassName('page');\n", + " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", + " event.target.style.color = \"gray\";\n", + " setPage430598ec8c3b4f3fb500dc8b3fd52e1d(i + 1);\n", + " };\n", + " div.innerText = i + 1;\n", + " pageContainer.appendChild(div);\n", + " }\n", + " }\n", + "\n", + " function setPage430598ec8c3b4f3fb500dc8b3fd52e1d(newPage){\n", + " pageIndex = newPage\n", + " resetById430598ec8c3b4f3fb500dc8b3fd52e1d('table430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d, pageIndex)\n", + " }\n", + "\n", + " buildPaginationContainer430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " </script>\n", + " </div>\n", + " </div>\n", + " </div>\n", + " </div>\n" + ], + "text/plain": [ + "[CreateDatasetEvent(id=<UID: d675c49149044c4fbe878a187da83a6e>, creator=<UID: 754197672f0a4d4abfa010b017a57f61>, creation_date=datetime.datetime(2024, 1, 16, 18, 20, 26, 487516), dataset_id=<UID: 903b391a7258441eb213087dd4fa1389>, mock='def', real=LinkedObject(id=<UID: fe7b802c240349b8b07b3e0783367f1a>, node_id=<UID: 754197672f0a4d4abfa010b017a57f61>, obj_id=<UID: 903b391a7258441eb213087dd4fa1389>), description='blabla')]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node_low.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "e20d5dee", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_keys([<UID: 903b391a7258441eb213087dd4fa1389>])\n" + ] + } + ], + "source": [ + "print(node_low.store.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c470bba0", + "metadata": {}, + "outputs": [], + "source": [ + "assert node_high.store.keys() == node_low.store.keys()" + ] + }, + { + "cell_type": "markdown", + "id": "1da3f904", + "metadata": {}, + "source": [ + "# Sync 2:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "a1612222", + "metadata": {}, + "outputs": [], + "source": [ + "# node_high.store" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f0026d2b", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9fd1c20a", + "metadata": {}, + "outputs": [], + "source": [ + "# node_high.update_dataset()" + ] + }, + { + "cell_type": "markdown", + "id": "6dc3e422", + "metadata": {}, + "source": [ + "SCENARIOS\n", + "- create a dataset and sync\n", + " - should create the dataset object on both sides\n", + "- both update the same property (conflict)\n", + "- both update a different property (no conflict)\n", + "- code approval should have same state\n", + "- code execution should be approved" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f95403d9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From ad6ad7ee830ad0d703d1a53bf228faa07ac82475 Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Tue, 23 Jan 2024 10:45:05 +0100 Subject: [PATCH 3/9] - --- .../append-only-event-log-prototype.ipynb | 3491 +++++++++++++++-- 1 file changed, 3219 insertions(+), 272 deletions(-) diff --git a/notebooks/helm/append-only-event-log-prototype.ipynb b/notebooks/helm/append-only-event-log-prototype.ipynb index 1783a7be2f3..902f6a544e5 100644 --- a/notebooks/helm/append-only-event-log-prototype.ipynb +++ b/notebooks/helm/append-only-event-log-prototype.ipynb @@ -5,18 +5,29 @@ "execution_count": 1, "id": "fb5821ba", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "kj/filesystem-disk-unix.c++:1703: warning: PWD environment variable doesn't match current directory; pwd = /Users/koen/workspace/pysyft/notebooks\n" + ] + } + ], "source": [ "# stdlib\n", "from datetime import datetime\n", - "from typing import Any\n", - "from typing import Dict\n", - "from typing import List\n", - "from typing import Optional\n", + "from typing import Any, Dict, List, Optional\n", + "from pydantic import Field\n", "\n", "# syft absolute\n", "from syft import UID\n", - "from syft.types.base import SyftBaseModel" + "from syft.types.base import SyftBaseModel\n", + "from typing import ClassVar\n", + "from typing import Type\n", + "from pydantic import Field\n", + "from collections import defaultdict\n", + "from copy import deepcopy" ] }, { @@ -27,11 +38,7 @@ "outputs": [], "source": [ "class MyBaseModel(SyftBaseModel):\n", - " id: UID\n", - "\n", - " def __init__(self, id=None, *args, **kwargs):\n", - " id = UID() if id is None else id\n", - " super().__init__(*args, id=id, **kwargs)" + " id: UID = Field(default_factory=lambda: UID())" ] }, { @@ -43,7 +50,7 @@ "source": [ "class Event(MyBaseModel):\n", " creator: UID\n", - " creation_date: datetime = datetime.now()\n", + " creation_date: datetime = Field(default_factory=lambda:datetime.now())\n", "\n", " def handler(self, node):\n", " method_name = event_handler_registry[self.__class__.__name__]\n", @@ -89,6 +96,18 @@ { "cell_type": "code", "execution_count": 7, + "id": "db4dcff1", + "metadata": {}, + "outputs": [], + "source": [ + "class UserCode(MyBaseModel):\n", + " code: str\n", + " approved: bool = False" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "0de045c1", "metadata": {}, "outputs": [], @@ -103,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "046f5d49", "metadata": {}, "outputs": [], @@ -111,6 +130,67 @@ "event_handler_registry = {}" ] }, + { + "cell_type": "code", + "execution_count": 10, + "id": "013b13e0", + "metadata": {}, + "outputs": [], + "source": [ + "# class CUDObjectEvent(Event):\n", + "# object_type: ClassVar[Type]\n", + "# # object_type: Optional[ClassVar[Type]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1241f9dc", + "metadata": {}, + "outputs": [], + "source": [ + "class CRUDEvent(Event):\n", + " object_type: ClassVar[Type] = Type\n", + " object_id: UID \n", + " \n", + " @property\n", + " def merge_updates_repr(self):\n", + " return f\"{self.updates} for object {self.object_id} by {self.creator}\"" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "7edf812f", + "metadata": {}, + "outputs": [], + "source": [ + "class CreateObjectEvent(CRUDEvent):\n", + " @property\n", + " def updated_properties(self):\n", + " return list(self.object_type.__annotations__.keys())\n", + " \n", + " @property\n", + " def updates(self):\n", + " return {p: getattr(self, p) for p in self.updated_properties}\n", + " \n", + " @property\n", + " def update_tuples(self):\n", + " return list(self.updates.items())\n", + "\n", + "\n", + "class UpdateObjectEvent(CRUDEvent):\n", + " updates: Dict[str, Any]\n", + " \n", + " @property\n", + " def updated_properties(self):\n", + " return list(self.updates.keys())\n", + " \n", + " @property\n", + " def update_tuples(self):\n", + " return list(self.updates.items())\n" + ] + }, { "cell_type": "markdown", "id": "6b286e05", @@ -121,13 +201,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "id": "1a5b494a", "metadata": {}, "outputs": [], "source": [ - "class CreateDatasetEvent(Event):\n", - " dataset_id: UID\n", + "class CreateDatasetEvent(CreateObjectEvent):\n", + " object_type: ClassVar[Type] = Dataset\n", " mock: Any\n", " real: LinkedObject\n", " description: str\n", @@ -136,27 +216,68 @@ " def execute(self, node):\n", " handler = self.handler(node)\n", " handler(\n", - " dataset_id=self.dataset_id,\n", + " object_id=self.real.obj_id,\n", " mock=self.mock,\n", " real=self.real,\n", " description=self.description,\n", - " )" + " )\n", + " " ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "id": "5860ff66", "metadata": {}, "outputs": [], "source": [ - "class UpdateDatasetEvent(Event):\n", - " dataset_id: UID\n", - " updates: Dict[str, Any]\n", + "class UpdateDatasetEvent(UpdateObjectEvent):\n", + " object_type: ClassVar[Type] = Dataset\n", + " object_id: UID\n", "\n", " def execute(self, node):\n", " handler = self.handler(node)\n", - " handler(dataset_id=self.dataset_id, updates=updates)" + " handler(object_id=self.object_id, updates=self.updates)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "6e7d0062", + "metadata": {}, + "outputs": [], + "source": [ + "class CreateUserCodeEvent(CreateObjectEvent):\n", + " object_type: ClassVar[Type] = UserCode\n", + " code: UserCode\n", + " \n", + " def execute(self, node):\n", + " handler = self.handler(node)\n", + " handler(\n", + " code=self.code\n", + " )\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "3e9fec5c", + "metadata": {}, + "outputs": [], + "source": [ + "class ApproveUserCodeEvent(Event):\n", + " object_type: ClassVar[Type] = UserCode\n", + " code_id: UID\n", + " value: bool\n", + " \n", + " def execute(self, node):\n", + " handler = self.handler(node)\n", + " handler(\n", + " self.code_id,\n", + " self.value\n", + " )\n", + " " ] }, { @@ -169,37 +290,64 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "id": "929c0793", "metadata": {}, "outputs": [], "source": [ "class Node(MyBaseModel):\n", - " event_log: EventLog\n", - " store: Dict[UID, Any]\n", - " private_store: Dict[UID, Any]\n", + " event_log: EventLog = EventLog()\n", + " store: Dict[UID, Any] = {}\n", + " private_store: Dict[UID, Any] = {}\n", + " \n", + " def apply_log(self, log):\n", + " self.store = {}\n", + " self.event_log = deepcopy(log)\n", "\n", - " def __init__(self, *args, **kwargs):\n", - " event_log = EventLog()\n", - " store = {}\n", - " private_store = {}\n", - " super().__init__(\n", - " *args,\n", - " private_store=private_store,\n", - " store=store,\n", - " event_log=event_log,\n", - " **kwargs,\n", + " for event in self.event_log.log:\n", + " event.execute(self)\n", + " \n", + " \n", + " def create_usercode(self, usercode: str):\n", + " \n", + " obj = UserCode(code=usercode)\n", + " event= CreateUserCodeEvent(\n", + " code=obj,\n", + " object_id=obj.id,\n", + " creator=self.id\n", " )\n", + " self.event_log.log.append(event)\n", + " \n", + " self._create_usercode(obj)\n", + " return obj.id\n", + " \n", + " @register_event_handler(CreateUserCodeEvent)\n", + " def _create_usercode(self,code):\n", + " self.store[code.id] = code\n", + " \n", + " \n", + " def approve_usercode(self, code_id: UID, to: bool):\n", + " event = ApproveUserCodeEvent(\n", + " code_id=code_id,\n", + " creator=self.id,\n", + " value=to\n", + " )\n", + " self.event_log.log.append(event)\n", + " self._approve_usercode(code_id, to)\n", + " \n", + " @register_event_handler(ApproveUserCodeEvent)\n", + " def _approve_usercode(self, code_id, to):\n", + " self.store[code_id].approved=to\n", "\n", " def create_dataset(self, mock: str, real: Optional[str], description: str):\n", - " dataset_id = UID()\n", + " object_id = UID()\n", " real_id = UID()\n", - " real_obj = LinkedObject(node_id=self.id, obj_id=dataset_id)\n", + " real_obj = LinkedObject(node_id=self.id, obj_id=object_id)\n", "\n", " self.private_store[real_id] = real\n", "\n", " event = CreateDatasetEvent(\n", - " dataset_id=dataset_id,\n", + " object_id=object_id,\n", " mock=mock,\n", " real=real_obj,\n", " description=description,\n", @@ -207,29 +355,30 @@ " )\n", "\n", " self.event_log.log.append(event)\n", - " self._create_dataset(dataset_id, mock, real_obj, description)\n", + " self._create_dataset(object_id, mock, real_obj, description)\n", "\n", " @register_event_handler(CreateDatasetEvent)\n", - " def _create_dataset(self, dataset_id, mock, real, description):\n", - " dataset = Dataset(id=dataset_id, mock=mock, real=real, description=description)\n", + " def _create_dataset(self, object_id, mock, real, description):\n", + " dataset = Dataset(id=object_id, mock=mock, real=real, description=description)\n", " self.store[dataset.id] = dataset\n", "\n", " def update_dataset(self, id, updates):\n", " event = UpdateDatasetEvent(\n", - " dataset_id=id,\n", + " object_id=id,\n", " updates=updates,\n", + " creator=self.id\n", " )\n", - " self.event_log.append(event)\n", + " self.event_log.log.append(event)\n", " self._update_dataset(id, updates)\n", "\n", " @register_event_handler(UpdateDatasetEvent)\n", - " def _update_dataset(self, id, updates):\n", - " dataset = self.store[id]\n", + " def _update_dataset(self, object_id, updates):\n", + " dataset = self.store[object_id]\n", "\n", - " for k, v in updates:\n", + " for k, v in updates.items():\n", " setattr(dataset, k, v)\n", "\n", - " self.store[id] = dataset" + " self.store[object_id] = dataset" ] }, { @@ -250,7 +399,104 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, + "id": "1df962ab", + "metadata": {}, + "outputs": [], + "source": [ + "class MergeState(SyftBaseModel):\n", + " \n", + " proposed_merge: List[Event]\n", + " fork_idx: int\n", + " new_log: List[Event] = []\n", + " \n", + " @property\n", + " def current_merge_events(self):\n", + " return self.new_log[self.fork_idx:]\n", + "\n", + "# @property\n", + "# def updates_since_fork(self):\n", + "# updates_since_fork: Dict[UID, List[Event]] = defaultdict(list) \n", + "# # {node_id -> {obj_id -> Event}}\n", + "# for event in self.new_events:\n", + "# updates_since_fork[e.creator] += [event]\n", + "# return updates_since_fork\n", + " \n", + " def merge(self):\n", + " self.new_log = self.proposed_merge[:self.fork_idx]\n", + " for event in self.proposed_merge[self.fork_idx:]:\n", + " if self.add_event(event):\n", + " print(\"merge conflict\")\n", + " \n", + " def request_input(self, event, conflicting_event):\n", + " s = input(f\"\"\"\n", + " {event.object_id} was changed by {event.creator} and {conflicting_event.creator}\n", + " Change 0: {event.merge_updates_repr}\n", + " Change 1: {conflicting_event.merge_updates_repr}\n", + " Type 0/1 to keep the corresponding change\n", + " \"\"\")\n", + " idx = int(s)\n", + " assert idx in [0,1]\n", + " return idx==1\n", + "\n", + " def object_updates(self, object_id, exclude_node: UID):\n", + "# other_node_ids = [node_id for node_id in self.updates_since_fork.keys()\n", + "# if node_id != event.creator]\n", + "# other_events_updating_object = [e for i in other_node_ids for e in self.updates_since_fork[i]\n", + "# if e.object_id == object_id]\n", + " \n", + " other_events_updating_object = [e for e in self.current_merge_events \n", + " if e.object_id == object_id and e.creator != exclude_node]\n", + " \n", + " object_updates = {}\n", + " \n", + " for e in other_events_updating_object:\n", + " for p in e.updated_properties:\n", + " val = e.updates[p]\n", + " object_updates[p] = (val, e)\n", + " \n", + " return object_updates\n", + " \n", + " def add_event(self, event):\n", + " \n", + " merge_object_updates = self.object_updates(event.object_id, exclude_node=event.creator) \n", + " # we want to find all the events from other nodes that updated the same object\n", + " # then we want to find which properties they updated and to what value\n", + " # if they updated the same property to a different value => merge conflict\n", + " #(property, value) => event\n", + " \n", + " skip_current_event=False\n", + " for prop, val in event.updates.items():\n", + " \n", + " if skip_current_event:\n", + " continue\n", + " # val -> event\n", + " if prop not in merge_object_updates:\n", + " continue\n", + " \n", + " other_val, other_event = merge_object_updates[prop]\n", + " if other_val != val:\n", + " conflicting_event = other_event\n", + " skip_current_event = self.request_input(event, conflicting_event)\n", + " skip_conflicting_event = not skip_current_event\n", + " \n", + " # merge strategies:\n", + " # accept entire event, reject other event entirely\n", + " # cherry pick per property\n", + " \n", + " if skip_conflicting_event:\n", + " print(\"skip conflicting event\")\n", + " # remove conflicting event from new_log\n", + " self.new_log = [e for e in self.new_log if e.id != conflicting_event.id]\n", + " \n", + " if not skip_current_event:\n", + " self.new_log += [event]\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 19, "id": "994cbe25", "metadata": {}, "outputs": [], @@ -268,27 +514,16 @@ "\n", " branch1 = log1[fork_idx:]\n", " branch2 = log2[fork_idx:]\n", - "\n", - " proposed_merge = sorted(branch1 + branch2, key=lambda e: e.creation_date)\n", - " # print(log1[:fork_idx])\n", - " # print(branch1)\n", - " # print(branch2)\n", - " # todo: fix conflicts\n", - "\n", - " new_events = log1[:fork_idx] + proposed_merge\n", - " new_log = EventLog(log=new_events)\n", - "\n", - " node_low.event_log = new_log\n", - "\n", - " # go back to fork state\n", - " # this means either: cleaning the store and the event store and replaying all\n", - " node_low.store = {}\n", - " # state_at_fork = node_low.event_states[fork_idx]\n", - "\n", - " for event in node_low.event_log.log:\n", - " event.execute(node_low)\n", - "\n", - " node_high.event_log = new_log\n", + " \n", + " proposed_merge = log1[:fork_idx] + sorted(branch1 + branch2, key=lambda e: e.creation_date)\n", + " print(f\"proposed merge (before merging): {proposed_merge}\")\n", + " merge_state = MergeState(fork_idx=fork_idx, proposed_merge=proposed_merge)\n", + " merge_state.merge()\n", + " \n", + " new_log = EventLog(log=merge_state.new_log)\n", + " \n", + " node_low.apply_log(new_log)\n", + " node_high.apply_log(new_log)\n", "\n", " assert all(\n", " [x == y for x, y in zip(node_low.event_log.log, node_high.event_log.log)]\n", @@ -300,13 +535,13 @@ "id": "90c96310", "metadata": {}, "source": [ - "# Sync 1: create dataset" + "# Sync 1: create dataset and sync" ] }, { "cell_type": "code", - "execution_count": 15, - "id": "a1b7e47b", + "execution_count": 20, + "id": "617b84e9", "metadata": {}, "outputs": [], "source": [ @@ -316,7 +551,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 21, "id": "92d5f2f1", "metadata": {}, "outputs": [], @@ -326,7 +561,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 22, "id": "78f19bf5", "metadata": {}, "outputs": [ @@ -536,7 +771,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-tablef8168d48eb1e461498d11530d73f5622 {\n", + " .grid-table7d4a31735a3f4329b24ea19722ee1b14 {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(4, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -708,25 +943,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menuf8168d48eb1e461498d11530d73f5622' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-contentf8168d48eb1e461498d11530d73f5622')\n", + " <div id='search-menu7d4a31735a3f4329b24ea19722ee1b14' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-contentf8168d48eb1e461498d11530d73f5622' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14' class='syft-dropdown-content'></div>\n", " <script>\n", - " var elementf8168d48eb1e461498d11530d73f5622 = [{\"id\": {\"value\": \"d675c49149044c4fbe878a187da83a6e\", \"type\": \"clipboard\"}}]\n", - " var page_sizef8168d48eb1e461498d11530d73f5622 = 1\n", - " var pageIndexf8168d48eb1e461498d11530d73f5622 = 1\n", - " var paginatedElementsf8168d48eb1e461498d11530d73f5622 = []\n", - " var activeFilterf8168d48eb1e461498d11530d73f5622;\n", + " var element7d4a31735a3f4329b24ea19722ee1b14 = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}}]\n", + " var page_size7d4a31735a3f4329b24ea19722ee1b14 = 1\n", + " var pageIndex7d4a31735a3f4329b24ea19722ee1b14 = 1\n", + " var paginatedElements7d4a31735a3f4329b24ea19722ee1b14 = []\n", + " var activeFilter7d4a31735a3f4329b24ea19722ee1b14;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-contentf8168d48eb1e461498d11530d73f5622')\n", + " let menu = document.getElementById('search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -736,10 +971,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filterf8168d48eb1e461498d11530d73f5622').innerText = attr;\n", - " activeFilterf8168d48eb1e461498d11530d73f5622 = attr;\n", + " document.getElementById('menu-active-filter7d4a31735a3f4329b24ea19722ee1b14').innerText = attr;\n", + " activeFilter7d4a31735a3f4329b24ea19722ee1b14 = attr;\n", " document.getElementById(\n", - " 'search-dropdown-contentf8168d48eb1e461498d11530d73f5622'\n", + " 'search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -749,30 +984,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menuf8168d48eb1e461498d11530d73f5622')\n", + " let dropdown_field = document.getElementById('search-menu7d4a31735a3f4329b24ea19722ee1b14')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filterf8168d48eb1e461498d11530d73f5622')\n", + " span.setAttribute('id', 'menu-active-filter7d4a31735a3f4329b24ea19722ee1b14')\n", " span.innerText = init_filter\n", - " activeFilterf8168d48eb1e461498d11530d73f5622 = init_filter;\n", + " activeFilter7d4a31735a3f4329b24ea19722ee1b14 = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(elementf8168d48eb1e461498d11530d73f5622)\n", + " buildDropDownMenu(element7d4a31735a3f4329b24ea19722ee1b14)\n", " </script>\n", " </div>\n", - " <input id='searchKeyf8168d48eb1e461498d11530d73f5622' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKey7d4a31735a3f4329b24ea19722ee1b14' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGridf8168d48eb1e461498d11530d73f5622(elementf8168d48eb1e461498d11530d73f5622)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid7d4a31735a3f4329b24ea19722ee1b14(element7d4a31735a3f4329b24ea19722ee1b14)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='totalf8168d48eb1e461498d11530d73f5622'>0</h4></div>\n", + " <div><h4 id='total7d4a31735a3f4329b24ea19722ee1b14'>0</h4></div>\n", " </div>\n", - " <div id='tablef8168d48eb1e461498d11530d73f5622' class='grid-tablef8168d48eb1e461498d11530d73f5622' style='margin-top: 25px;'>\n", + " <div id='table7d4a31735a3f4329b24ea19722ee1b14' class='grid-table7d4a31735a3f4329b24ea19722ee1b14' style='margin-top: 25px;'>\n", " <script>\n", - " function paginatef8168d48eb1e461498d11530d73f5622(arr, size) {\n", + " function paginate7d4a31735a3f4329b24ea19722ee1b14(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -782,44 +1017,44 @@ " return res;\n", " }\n", "\n", - " function searchGridf8168d48eb1e461498d11530d73f5622(elements){\n", - " let searchKey = document.getElementById('searchKeyf8168d48eb1e461498d11530d73f5622').value;\n", + " function searchGrid7d4a31735a3f4329b24ea19722ee1b14(elements){\n", + " let searchKey = document.getElementById('searchKey7d4a31735a3f4329b24ea19722ee1b14').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilterf8168d48eb1e461498d11530d73f5622]\n", + " let property = element[activeFilter7d4a31735a3f4329b24ea19722ee1b14]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilterf8168d48eb1e461498d11530d73f5622].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilter7d4a31735a3f4329b24ea19722ee1b14].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilterf8168d48eb1e461498d11530d73f5622].toString() === searchKey;\n", + " return element[activeFilter7d4a31735a3f4329b24ea19722ee1b14].toString() === searchKey;\n", " } else {\n", - " return element[activeFilterf8168d48eb1e461498d11530d73f5622] === searchKey;\n", + " return element[activeFilter7d4a31735a3f4329b24ea19722ee1b14] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetByIdf8168d48eb1e461498d11530d73f5622('tablef8168d48eb1e461498d11530d73f5622');\n", - " resetByIdf8168d48eb1e461498d11530d73f5622('pagf8168d48eb1e461498d11530d73f5622');\n", - " result = paginatef8168d48eb1e461498d11530d73f5622(result, page_sizef8168d48eb1e461498d11530d73f5622)\n", - " paginatedElementsf8168d48eb1e461498d11530d73f5622 = result\n", - " buildGridf8168d48eb1e461498d11530d73f5622(result,pageIndexf8168d48eb1e461498d11530d73f5622);\n", - " buildPaginationContainerf8168d48eb1e461498d11530d73f5622(result);\n", + " resetById7d4a31735a3f4329b24ea19722ee1b14('table7d4a31735a3f4329b24ea19722ee1b14');\n", + " resetById7d4a31735a3f4329b24ea19722ee1b14('pag7d4a31735a3f4329b24ea19722ee1b14');\n", + " result = paginate7d4a31735a3f4329b24ea19722ee1b14(result, page_size7d4a31735a3f4329b24ea19722ee1b14)\n", + " paginatedElements7d4a31735a3f4329b24ea19722ee1b14 = result\n", + " buildGrid7d4a31735a3f4329b24ea19722ee1b14(result,pageIndex7d4a31735a3f4329b24ea19722ee1b14);\n", + " buildPaginationContainer7d4a31735a3f4329b24ea19722ee1b14(result);\n", " }\n", "\n", - " function resetByIdf8168d48eb1e461498d11530d73f5622(id){\n", + " function resetById7d4a31735a3f4329b24ea19722ee1b14(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGridf8168d48eb1e461498d11530d73f5622(items, pageIndex){\n", - " let headers = Object.keys(elementf8168d48eb1e461498d11530d73f5622[0]);\n", + " function buildGrid7d4a31735a3f4329b24ea19722ee1b14(items, pageIndex){\n", + " let headers = Object.keys(element7d4a31735a3f4329b24ea19722ee1b14[0]);\n", "\n", - " let grid = document.getElementById(\"tablef8168d48eb1e461498d11530d73f5622\");\n", + " let grid = document.getElementById(\"table7d4a31735a3f4329b24ea19722ee1b14\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -833,13 +1068,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_indexf8168d48eb1e461498d11530d73f5622 = ((pageIndex - 1) * page_sizef8168d48eb1e461498d11530d73f5622)\n", + " let table_index7d4a31735a3f4329b24ea19722ee1b14 = ((pageIndex - 1) * page_size7d4a31735a3f4329b24ea19722ee1b14)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"tablef8168d48eb1e461498d11530d73f5622\");\n", + " let grid = document.getElementById(\"table7d4a31735a3f4329b24ea19722ee1b14\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_indexf8168d48eb1e461498d11530d73f5622;\n", + " divIndex.innerText = table_index7d4a31735a3f4329b24ea19722ee1b14;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -897,19 +1132,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_indexf8168d48eb1e461498d11530d73f5622 = table_indexf8168d48eb1e461498d11530d73f5622 + 1;\n", + " table_index7d4a31735a3f4329b24ea19722ee1b14 = table_index7d4a31735a3f4329b24ea19722ee1b14 + 1;\n", " })\n", " }\n", " }\n", - " paginatedElementsf8168d48eb1e461498d11530d73f5622 = paginatef8168d48eb1e461498d11530d73f5622(elementf8168d48eb1e461498d11530d73f5622, page_sizef8168d48eb1e461498d11530d73f5622)\n", - " buildGridf8168d48eb1e461498d11530d73f5622(paginatedElementsf8168d48eb1e461498d11530d73f5622, 1)\n", - " document.getElementById('totalf8168d48eb1e461498d11530d73f5622').innerText = \"Total: \" + elementf8168d48eb1e461498d11530d73f5622.length\n", + " paginatedElements7d4a31735a3f4329b24ea19722ee1b14 = paginate7d4a31735a3f4329b24ea19722ee1b14(element7d4a31735a3f4329b24ea19722ee1b14, page_size7d4a31735a3f4329b24ea19722ee1b14)\n", + " buildGrid7d4a31735a3f4329b24ea19722ee1b14(paginatedElements7d4a31735a3f4329b24ea19722ee1b14, 1)\n", + " document.getElementById('total7d4a31735a3f4329b24ea19722ee1b14').innerText = \"Total: \" + element7d4a31735a3f4329b24ea19722ee1b14.length\n", " </script>\n", " </div>\n", - " <div id='pagf8168d48eb1e461498d11530d73f5622' class='paginationContainer'>\n", + " <div id='pag7d4a31735a3f4329b24ea19722ee1b14' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainerf8168d48eb1e461498d11530d73f5622(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pagf8168d48eb1e461498d11530d73f5622\");\n", + " function buildPaginationContainer7d4a31735a3f4329b24ea19722ee1b14(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag7d4a31735a3f4329b24ea19722ee1b14\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -919,20 +1154,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPagef8168d48eb1e461498d11530d73f5622(i + 1);\n", + " setPage7d4a31735a3f4329b24ea19722ee1b14(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPagef8168d48eb1e461498d11530d73f5622(newPage){\n", + " function setPage7d4a31735a3f4329b24ea19722ee1b14(newPage){\n", " pageIndex = newPage\n", - " resetByIdf8168d48eb1e461498d11530d73f5622('tablef8168d48eb1e461498d11530d73f5622')\n", - " buildGridf8168d48eb1e461498d11530d73f5622(paginatedElementsf8168d48eb1e461498d11530d73f5622, pageIndex)\n", + " resetById7d4a31735a3f4329b24ea19722ee1b14('table7d4a31735a3f4329b24ea19722ee1b14')\n", + " buildGrid7d4a31735a3f4329b24ea19722ee1b14(paginatedElements7d4a31735a3f4329b24ea19722ee1b14, pageIndex)\n", " }\n", "\n", - " buildPaginationContainerf8168d48eb1e461498d11530d73f5622(paginatedElementsf8168d48eb1e461498d11530d73f5622)\n", + " buildPaginationContainer7d4a31735a3f4329b24ea19722ee1b14(paginatedElements7d4a31735a3f4329b24ea19722ee1b14)\n", " </script>\n", " </div>\n", " </div>\n", @@ -940,10 +1175,10 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: d675c49149044c4fbe878a187da83a6e>, creator=<UID: 754197672f0a4d4abfa010b017a57f61>, creation_date=datetime.datetime(2024, 1, 16, 18, 20, 26, 487516), dataset_id=<UID: 903b391a7258441eb213087dd4fa1389>, mock='def', real=LinkedObject(id=<UID: fe7b802c240349b8b07b3e0783367f1a>, node_id=<UID: 754197672f0a4d4abfa010b017a57f61>, obj_id=<UID: 903b391a7258441eb213087dd4fa1389>), description='blabla')]" + "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla')]" ] }, - "execution_count": 17, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -954,17 +1189,25 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 23, "id": "085c71ab", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla')]\n" + ] + } + ], "source": [ "sync(node_high, node_low)" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 24, "id": "1c8ead28", "metadata": {}, "outputs": [ @@ -1174,7 +1417,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-table430598ec8c3b4f3fb500dc8b3fd52e1d {\n", + " .grid-table4536ada1bdb848ffbaa910afe47b946d {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(4, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -1346,25 +1589,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menu430598ec8c3b4f3fb500dc8b3fd52e1d' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " <div id='search-menu4536ada1bdb848ffbaa910afe47b946d' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content4536ada1bdb848ffbaa910afe47b946d')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-content4536ada1bdb848ffbaa910afe47b946d' class='syft-dropdown-content'></div>\n", " <script>\n", - " var element430598ec8c3b4f3fb500dc8b3fd52e1d = [{\"id\": {\"value\": \"d675c49149044c4fbe878a187da83a6e\", \"type\": \"clipboard\"}}]\n", - " var page_size430598ec8c3b4f3fb500dc8b3fd52e1d = 1\n", - " var pageIndex430598ec8c3b4f3fb500dc8b3fd52e1d = 1\n", - " var paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d = []\n", - " var activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d;\n", + " var element4536ada1bdb848ffbaa910afe47b946d = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}}]\n", + " var page_size4536ada1bdb848ffbaa910afe47b946d = 1\n", + " var pageIndex4536ada1bdb848ffbaa910afe47b946d = 1\n", + " var paginatedElements4536ada1bdb848ffbaa910afe47b946d = []\n", + " var activeFilter4536ada1bdb848ffbaa910afe47b946d;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " let menu = document.getElementById('search-dropdown-content4536ada1bdb848ffbaa910afe47b946d')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -1374,10 +1617,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filter430598ec8c3b4f3fb500dc8b3fd52e1d').innerText = attr;\n", - " activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d = attr;\n", + " document.getElementById('menu-active-filter4536ada1bdb848ffbaa910afe47b946d').innerText = attr;\n", + " activeFilter4536ada1bdb848ffbaa910afe47b946d = attr;\n", " document.getElementById(\n", - " 'search-dropdown-content430598ec8c3b4f3fb500dc8b3fd52e1d'\n", + " 'search-dropdown-content4536ada1bdb848ffbaa910afe47b946d'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -1387,30 +1630,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menu430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " let dropdown_field = document.getElementById('search-menu4536ada1bdb848ffbaa910afe47b946d')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filter430598ec8c3b4f3fb500dc8b3fd52e1d')\n", + " span.setAttribute('id', 'menu-active-filter4536ada1bdb848ffbaa910afe47b946d')\n", " span.innerText = init_filter\n", - " activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d = init_filter;\n", + " activeFilter4536ada1bdb848ffbaa910afe47b946d = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(element430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " buildDropDownMenu(element4536ada1bdb848ffbaa910afe47b946d)\n", " </script>\n", " </div>\n", - " <input id='searchKey430598ec8c3b4f3fb500dc8b3fd52e1d' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKey4536ada1bdb848ffbaa910afe47b946d' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGrid430598ec8c3b4f3fb500dc8b3fd52e1d(element430598ec8c3b4f3fb500dc8b3fd52e1d)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid4536ada1bdb848ffbaa910afe47b946d(element4536ada1bdb848ffbaa910afe47b946d)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='total430598ec8c3b4f3fb500dc8b3fd52e1d'>0</h4></div>\n", + " <div><h4 id='total4536ada1bdb848ffbaa910afe47b946d'>0</h4></div>\n", " </div>\n", - " <div id='table430598ec8c3b4f3fb500dc8b3fd52e1d' class='grid-table430598ec8c3b4f3fb500dc8b3fd52e1d' style='margin-top: 25px;'>\n", + " <div id='table4536ada1bdb848ffbaa910afe47b946d' class='grid-table4536ada1bdb848ffbaa910afe47b946d' style='margin-top: 25px;'>\n", " <script>\n", - " function paginate430598ec8c3b4f3fb500dc8b3fd52e1d(arr, size) {\n", + " function paginate4536ada1bdb848ffbaa910afe47b946d(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -1420,44 +1663,44 @@ " return res;\n", " }\n", "\n", - " function searchGrid430598ec8c3b4f3fb500dc8b3fd52e1d(elements){\n", - " let searchKey = document.getElementById('searchKey430598ec8c3b4f3fb500dc8b3fd52e1d').value;\n", + " function searchGrid4536ada1bdb848ffbaa910afe47b946d(elements){\n", + " let searchKey = document.getElementById('searchKey4536ada1bdb848ffbaa910afe47b946d').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d]\n", + " let property = element[activeFilter4536ada1bdb848ffbaa910afe47b946d]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilter4536ada1bdb848ffbaa910afe47b946d].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d].toString() === searchKey;\n", + " return element[activeFilter4536ada1bdb848ffbaa910afe47b946d].toString() === searchKey;\n", " } else {\n", - " return element[activeFilter430598ec8c3b4f3fb500dc8b3fd52e1d] === searchKey;\n", + " return element[activeFilter4536ada1bdb848ffbaa910afe47b946d] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetById430598ec8c3b4f3fb500dc8b3fd52e1d('table430598ec8c3b4f3fb500dc8b3fd52e1d');\n", - " resetById430598ec8c3b4f3fb500dc8b3fd52e1d('pag430598ec8c3b4f3fb500dc8b3fd52e1d');\n", - " result = paginate430598ec8c3b4f3fb500dc8b3fd52e1d(result, page_size430598ec8c3b4f3fb500dc8b3fd52e1d)\n", - " paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d = result\n", - " buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(result,pageIndex430598ec8c3b4f3fb500dc8b3fd52e1d);\n", - " buildPaginationContainer430598ec8c3b4f3fb500dc8b3fd52e1d(result);\n", + " resetById4536ada1bdb848ffbaa910afe47b946d('table4536ada1bdb848ffbaa910afe47b946d');\n", + " resetById4536ada1bdb848ffbaa910afe47b946d('pag4536ada1bdb848ffbaa910afe47b946d');\n", + " result = paginate4536ada1bdb848ffbaa910afe47b946d(result, page_size4536ada1bdb848ffbaa910afe47b946d)\n", + " paginatedElements4536ada1bdb848ffbaa910afe47b946d = result\n", + " buildGrid4536ada1bdb848ffbaa910afe47b946d(result,pageIndex4536ada1bdb848ffbaa910afe47b946d);\n", + " buildPaginationContainer4536ada1bdb848ffbaa910afe47b946d(result);\n", " }\n", "\n", - " function resetById430598ec8c3b4f3fb500dc8b3fd52e1d(id){\n", + " function resetById4536ada1bdb848ffbaa910afe47b946d(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(items, pageIndex){\n", - " let headers = Object.keys(element430598ec8c3b4f3fb500dc8b3fd52e1d[0]);\n", + " function buildGrid4536ada1bdb848ffbaa910afe47b946d(items, pageIndex){\n", + " let headers = Object.keys(element4536ada1bdb848ffbaa910afe47b946d[0]);\n", "\n", - " let grid = document.getElementById(\"table430598ec8c3b4f3fb500dc8b3fd52e1d\");\n", + " let grid = document.getElementById(\"table4536ada1bdb848ffbaa910afe47b946d\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -1471,13 +1714,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_index430598ec8c3b4f3fb500dc8b3fd52e1d = ((pageIndex - 1) * page_size430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " let table_index4536ada1bdb848ffbaa910afe47b946d = ((pageIndex - 1) * page_size4536ada1bdb848ffbaa910afe47b946d)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"table430598ec8c3b4f3fb500dc8b3fd52e1d\");\n", + " let grid = document.getElementById(\"table4536ada1bdb848ffbaa910afe47b946d\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_index430598ec8c3b4f3fb500dc8b3fd52e1d;\n", + " divIndex.innerText = table_index4536ada1bdb848ffbaa910afe47b946d;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -1535,19 +1778,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_index430598ec8c3b4f3fb500dc8b3fd52e1d = table_index430598ec8c3b4f3fb500dc8b3fd52e1d + 1;\n", + " table_index4536ada1bdb848ffbaa910afe47b946d = table_index4536ada1bdb848ffbaa910afe47b946d + 1;\n", " })\n", " }\n", " }\n", - " paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d = paginate430598ec8c3b4f3fb500dc8b3fd52e1d(element430598ec8c3b4f3fb500dc8b3fd52e1d, page_size430598ec8c3b4f3fb500dc8b3fd52e1d)\n", - " buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d, 1)\n", - " document.getElementById('total430598ec8c3b4f3fb500dc8b3fd52e1d').innerText = \"Total: \" + element430598ec8c3b4f3fb500dc8b3fd52e1d.length\n", + " paginatedElements4536ada1bdb848ffbaa910afe47b946d = paginate4536ada1bdb848ffbaa910afe47b946d(element4536ada1bdb848ffbaa910afe47b946d, page_size4536ada1bdb848ffbaa910afe47b946d)\n", + " buildGrid4536ada1bdb848ffbaa910afe47b946d(paginatedElements4536ada1bdb848ffbaa910afe47b946d, 1)\n", + " document.getElementById('total4536ada1bdb848ffbaa910afe47b946d').innerText = \"Total: \" + element4536ada1bdb848ffbaa910afe47b946d.length\n", " </script>\n", " </div>\n", - " <div id='pag430598ec8c3b4f3fb500dc8b3fd52e1d' class='paginationContainer'>\n", + " <div id='pag4536ada1bdb848ffbaa910afe47b946d' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainer430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pag430598ec8c3b4f3fb500dc8b3fd52e1d\");\n", + " function buildPaginationContainer4536ada1bdb848ffbaa910afe47b946d(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag4536ada1bdb848ffbaa910afe47b946d\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -1557,20 +1800,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPage430598ec8c3b4f3fb500dc8b3fd52e1d(i + 1);\n", + " setPage4536ada1bdb848ffbaa910afe47b946d(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPage430598ec8c3b4f3fb500dc8b3fd52e1d(newPage){\n", + " function setPage4536ada1bdb848ffbaa910afe47b946d(newPage){\n", " pageIndex = newPage\n", - " resetById430598ec8c3b4f3fb500dc8b3fd52e1d('table430598ec8c3b4f3fb500dc8b3fd52e1d')\n", - " buildGrid430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d, pageIndex)\n", + " resetById4536ada1bdb848ffbaa910afe47b946d('table4536ada1bdb848ffbaa910afe47b946d')\n", + " buildGrid4536ada1bdb848ffbaa910afe47b946d(paginatedElements4536ada1bdb848ffbaa910afe47b946d, pageIndex)\n", " }\n", "\n", - " buildPaginationContainer430598ec8c3b4f3fb500dc8b3fd52e1d(paginatedElements430598ec8c3b4f3fb500dc8b3fd52e1d)\n", + " buildPaginationContainer4536ada1bdb848ffbaa910afe47b946d(paginatedElements4536ada1bdb848ffbaa910afe47b946d)\n", " </script>\n", " </div>\n", " </div>\n", @@ -1578,39 +1821,21 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: d675c49149044c4fbe878a187da83a6e>, creator=<UID: 754197672f0a4d4abfa010b017a57f61>, creation_date=datetime.datetime(2024, 1, 16, 18, 20, 26, 487516), dataset_id=<UID: 903b391a7258441eb213087dd4fa1389>, mock='def', real=LinkedObject(id=<UID: fe7b802c240349b8b07b3e0783367f1a>, node_id=<UID: 754197672f0a4d4abfa010b017a57f61>, obj_id=<UID: 903b391a7258441eb213087dd4fa1389>), description='blabla')]" + "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla')]" ] }, - "execution_count": 19, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "node_low.event_log.log" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "e20d5dee", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dict_keys([<UID: 903b391a7258441eb213087dd4fa1389>])\n" - ] - } - ], - "source": [ - "print(node_low.store.keys())" + "node_high.event_log.log" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 25, "id": "c470bba0", "metadata": {}, "outputs": [], @@ -1623,88 +1848,2810 @@ "id": "1da3f904", "metadata": {}, "source": [ - "# Sync 2:" + "# Sync 2: both update same property to same value" ] }, { "cell_type": "code", - "execution_count": 30, - "id": "a1612222", + "execution_count": 26, + "id": "7667a1b0", "metadata": {}, "outputs": [], "source": [ - "# node_high.store" + "dataset = list(node_high.store.values())[0]" ] }, { "cell_type": "code", - "execution_count": null, - "id": "f0026d2b", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "9fd1c20a", + "execution_count": 27, + "id": "a1612222", "metadata": {}, "outputs": [], "source": [ - "# node_high.update_dataset()" - ] - }, - { - "cell_type": "markdown", - "id": "6dc3e422", - "metadata": {}, - "source": [ - "SCENARIOS\n", - "- create a dataset and sync\n", - " - should create the dataset object on both sides\n", - "- both update the same property (conflict)\n", - "- both update a different property (no conflict)\n", - "- code approval should have same state\n", - "- code execution should be approved" + "node_high.update_dataset(dataset.id, {\"description\": \"a\"})" ] }, { "cell_type": "code", - "execution_count": null, - "id": "f95403d9", + "execution_count": 28, + "id": "9a6cb619", "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.16" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "<style>\n", + " body[data-jp-theme-light='false'] {\n", + " --primary-color: #111111;\n", + " --secondary-color: #212121;\n", + " --tertiary-color: #CFCDD6;\n", + " --button-color: #111111;\n", + " }\n", + "\n", + " body {\n", + " --primary-color: #ffffff;\n", + " --secondary-color: #f5f5f5;\n", + " --tertiary-color: #000000de;\n", + " --button-color: #d1d5db;\n", + " }\n", + "\n", + " .header-1 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 2.0736em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-2 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.728em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-3 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.44em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .header-4 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.2em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .paragraph {\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 14px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .paragraph-sm {\n", + " font-family: 'Roboto';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 11.62px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + " .code-text {\n", + " font-family: 'Consolas';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 13px;\n", + " line-height: 130%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .numbering-entry { display: none }\n", + "\n", + " /* Tooltip container */\n", + " .tooltip {\n", + " position: relative;\n", + " display: inline-block;\n", + " border-bottom: 1px dotted black; /* If you want dots under the hoverable text */\n", + " }\n", + "\n", + " /* Tooltip text */\n", + " .tooltip .tooltiptext {\n", + " visibility: hidden;\n", + " width: 120px;\n", + " background-color: black;\n", + " color: #fff;\n", + " text-align: center;\n", + " padding: 5px 0;\n", + " border-radius: 6px;\n", + "\n", + " /* Position the tooltip text - see examples below! */\n", + " position: absolute;\n", + " z-index: 1;\n", + " }\n", + "\n", + " .repr-cell {\n", + " padding-top: 20px;\n", + " }\n", + "\n", + " .text-bold {\n", + " font-weight: bold;\n", + " }\n", + "\n", + " .pr-8 {\n", + " padding-right: 8px;\n", + " }\n", + " .pt-8 {\n", + " padding-top: 8px;\n", + " }\n", + " .pl-8 {\n", + " padding-left: 8px;\n", + " }\n", + " .pb-8 {\n", + " padding-bottom: 8px;\n", + " }\n", + "\n", + " .py-25{\n", + " padding-top: 25px;\n", + " padding-bottom: 25px;\n", + " }\n", + "\n", + " .flex {\n", + " display: flex;\n", + " }\n", + "\n", + " .gap-10 {\n", + " gap: 10px;\n", + " }\n", + " .items-center{\n", + " align-items: center;\n", + " }\n", + "\n", + " .folder-icon {\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-input{\n", + " display: flex;\n", + " flex-direction: row;\n", + " align-items: center;\n", + " padding: 8px 12px;\n", + " width: 343px;\n", + " height: 24px;\n", + " /* Lt On Surface/Low */\n", + " background-color: var(--secondary-color);\n", + " border-radius: 30px;\n", + "\n", + " /* Lt On Surface/Highest */\n", + " color: var(--tertiary-color);\n", + " border:none;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 0;\n", + " flex-grow: 0;\n", + " }\n", + " .search-input:focus {\n", + " outline: none;\n", + " }\n", + " .search-input:focus::placeholder,\n", + " .search-input::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\n", + " color: var(--tertiary-color);\n", + " opacity: 1; /* Firefox */\n", + " }\n", + "\n", + " .search-button{\n", + " /* Search */\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " display: flex;\n", + " align-items: center;\n", + " text-align: center;\n", + "\n", + " /* Primary/On Light */\n", + " background-color: var(--button-color);\n", + " color: var(--tertiary-color);\n", + "\n", + " border-radius: 30px;\n", + " border-color: var(--secondary-color);\n", + " border-style: solid;\n", + " box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;\n", + " cursor: pointer;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 1;\n", + " flex-grow: 0;\n", + " }\n", + "\n", + " .grid-tablef18861bcfebc4f38b3562162126e044c {\n", + " display:grid;\n", + " grid-template-columns: 1fr repeat(8, 1fr);\n", + " grid-template-rows: repeat(2, 1fr);\n", + " overflow-x: auto;\n", + " }\n", + "\n", + " .grid-std-cells {\n", + " grid-column: span 4;\n", + "\n", + " }\n", + " .grid-index-cells {\n", + " grid-column: span 1;\n", + " /* tmp fix to make left col stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color) !important;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-header {\n", + " /* Auto layout */\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " padding: 6px 4px;\n", + "\n", + " /* Lt On Surface/Surface */\n", + " /* Lt On Surface/High */\n", + " border: 1px solid #CFCDD6;\n", + " /* tmp fix to make header stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-row {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: flex-start;\n", + " padding: 6px 4px;\n", + " overflow: hidden;\n", + " border: 1px solid #CFCDD6;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .badge {\n", + " code-text;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .badge-blue {\n", + " badge;\n", + " background-color: #C2DEF0;\n", + " color: #1F567A;\n", + " }\n", + "\n", + " .badge-purple {\n", + " badge;\n", + " background-color: #C9CFE8;\n", + " color: #373B7B;\n", + " }\n", + "\n", + " .badge-green {\n", + " badge;\n", + "\n", + " /* Success/Container */\n", + " background-color: #D5F1D5;\n", + " color: #256B24;\n", + " }\n", + "\n", + " .badge-red {\n", + " badge;\n", + " background-color: #F2D9DE;\n", + " color: #9B2737;\n", + " }\n", + "\n", + " .badge-gray {\n", + " badge;\n", + " background-color: #ECEBEF;\n", + " color: #2E2B3B;\n", + " }\n", + " .paginationContainer{\n", + " width: 100%;\n", + " height: 30px;\n", + " display: flex;\n", + " justify-content: center;\n", + " gap: 8px;\n", + " padding: 5px;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .page{\n", + " color: black;\n", + " font-weight: bold;\n", + " color: var(--tertiary-color);\n", + " }\n", + " .page:hover {\n", + " color: #38bdf8;\n", + " cursor: pointer;\n", + " }\n", + " .clipboard:hover{\n", + " cursor: pointer;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-field {\n", + " display: flex;\n", + " align-items: center;\n", + " border-radius: 30px;\n", + " background-color: var(--secondary-color);\n", + " }\n", + "\n", + " .syft-dropdown {\n", + " margin: 5px;\n", + " margin-left: 5px;\n", + " position: relative;\n", + " display: inline-block;\n", + " text-align: center;\n", + " background-color: var(--button-color);\n", + " min-width: 100px;\n", + " padding: 2px;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .syft-dropdown:hover {\n", + " cursor: pointer;\n", + " }\n", + " .syft-dropdown-content {\n", + " margin-top:26px;\n", + " display: none;\n", + " position: absolute;\n", + " min-width: 100px;\n", + " box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n", + " padding: 12px 6px;\n", + " z-index: 1;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + " .dd-options {\n", + " padding-top: 4px;\n", + " }\n", + " .dd-options:first-of-type {\n", + " padding-top: 0px;\n", + " }\n", + "\n", + " .dd-options:hover {\n", + " cursor: pointer;\n", + " background: #d1d5db;\n", + " }\n", + " .arrow {\n", + " border: solid black;\n", + " border-width: 0 3px 3px 0;\n", + " display: inline-block;\n", + " padding: 3px;\n", + " }\n", + " .down {\n", + " transform: rotate(45deg);\n", + " -webkit-transform: rotate(45deg);\n", + " }\n", + "</style>\n", + "\n", + "\n", + " <div style='margin-top:15px;'>\n", + " <div class='flex gap-10' style='align-items: center;'>\n", + " <div class='folder-icon'><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M28 6H4C3.73478 6 3.48043 6.10536 3.29289 6.29289C3.10536 6.48043 3 6.73478 3 7V24C3 24.5304 3.21071 25.0391 3.58579 25.4142C3.96086 25.7893 4.46957 26 5 26H27C27.5304 26 28.0391 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V7C29 6.73478 28.8946 6.48043 28.7071 6.29289C28.5196 6.10536 28.2652 6 28 6ZM5 14H10V18H5V14ZM12 14H27V18H12V14ZM27 8V12H5V8H27ZM5 20H10V24H5V20ZM27 24H12V20H27V24Z\" fill=\"#343330\"/></svg></div>\n", + " <div><p class='header-3'> List</p></div>\n", + " </div>\n", + "\n", + " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", + " <div class='pt-25 gap-10' style=\"display:flex;\">\n", + " <div class=\"search-field\">\n", + " <div id='search-menuf18861bcfebc4f38b3562162126e044c' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-contentf18861bcfebc4f38b3562162126e044c')\n", + " if (doc.style.display === 'block'){\n", + " doc.style.display = 'none'\n", + " } else {\n", + " doc.style.display = 'block'\n", + " }\n", + " }\">\n", + " <div id='search-dropdown-contentf18861bcfebc4f38b3562162126e044c' class='syft-dropdown-content'></div>\n", + " <script>\n", + " var elementf18861bcfebc4f38b3562162126e044c = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_sizef18861bcfebc4f38b3562162126e044c = 2\n", + " var pageIndexf18861bcfebc4f38b3562162126e044c = 1\n", + " var paginatedElementsf18861bcfebc4f38b3562162126e044c = []\n", + " var activeFilterf18861bcfebc4f38b3562162126e044c;\n", + "\n", + " function buildDropDownMenu(elements){\n", + " let init_filter;\n", + " let menu = document.getElementById('search-dropdown-contentf18861bcfebc4f38b3562162126e044c')\n", + " if (elements.length > 0) {\n", + " let sample = elements[0]\n", + " for (const attr in sample) {\n", + " if (typeof init_filter === 'undefined'){\n", + " init_filter = attr;\n", + " }\n", + " let content = document.createElement('div');\n", + " content.onclick = function(event) {\n", + " event.stopPropagation()\n", + " document.getElementById('menu-active-filterf18861bcfebc4f38b3562162126e044c').innerText = attr;\n", + " activeFilterf18861bcfebc4f38b3562162126e044c = attr;\n", + " document.getElementById(\n", + " 'search-dropdown-contentf18861bcfebc4f38b3562162126e044c'\n", + " ).style.display= 'none';\n", + " }\n", + " content.classList.add(\"dd-options\");\n", + " content.innerText = attr;\n", + " menu.appendChild(content);\n", + " }\n", + " } else {\n", + " let init_filter = '---'\n", + " }\n", + " let dropdown_field = document.getElementById('search-menuf18861bcfebc4f38b3562162126e044c')\n", + " let span = document.createElement('span')\n", + " span.setAttribute('id', 'menu-active-filterf18861bcfebc4f38b3562162126e044c')\n", + " span.innerText = init_filter\n", + " activeFilterf18861bcfebc4f38b3562162126e044c = init_filter;\n", + " dropdown_field.appendChild(span)\n", + " }\n", + "\n", + " buildDropDownMenu(elementf18861bcfebc4f38b3562162126e044c)\n", + " </script>\n", + " </div>\n", + " <input id='searchKeyf18861bcfebc4f38b3562162126e044c' class='search-input' placeholder='Enter search here ...' />\n", + " </div>\n", + " <button class='search-button' type=\"button\" onclick=\"searchGridf18861bcfebc4f38b3562162126e044c(elementf18861bcfebc4f38b3562162126e044c)\">\n", + " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", + " <span class='pl-8'>Search</span>\n", + " </button>\n", + " </div>\n", + "\n", + " <div><h4 id='totalf18861bcfebc4f38b3562162126e044c'>0</h4></div>\n", + " </div>\n", + " <div id='tablef18861bcfebc4f38b3562162126e044c' class='grid-tablef18861bcfebc4f38b3562162126e044c' style='margin-top: 25px;'>\n", + " <script>\n", + " function paginatef18861bcfebc4f38b3562162126e044c(arr, size) {\n", + " const res = [];\n", + " for (let i = 0; i < arr.length; i += size) {\n", + " const chunk = arr.slice(i, i + size);\n", + " res.push(chunk);\n", + " }\n", + "\n", + " return res;\n", + " }\n", + "\n", + " function searchGridf18861bcfebc4f38b3562162126e044c(elements){\n", + " let searchKey = document.getElementById('searchKeyf18861bcfebc4f38b3562162126e044c').value;\n", + " let result;\n", + " if (searchKey === ''){\n", + " result = elements;\n", + " } else {\n", + " result = elements.filter((element) => {\n", + " let property = element[activeFilterf18861bcfebc4f38b3562162126e044c]\n", + " if (typeof property === 'object' && property !== null){\n", + " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (typeof property === 'string' ) {\n", + " return element[activeFilterf18861bcfebc4f38b3562162126e044c].toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (property !== null ) {\n", + " return element[activeFilterf18861bcfebc4f38b3562162126e044c].toString() === searchKey;\n", + " } else {\n", + " return element[activeFilterf18861bcfebc4f38b3562162126e044c] === searchKey;\n", + " }\n", + " } );\n", + " }\n", + " resetByIdf18861bcfebc4f38b3562162126e044c('tablef18861bcfebc4f38b3562162126e044c');\n", + " resetByIdf18861bcfebc4f38b3562162126e044c('pagf18861bcfebc4f38b3562162126e044c');\n", + " result = paginatef18861bcfebc4f38b3562162126e044c(result, page_sizef18861bcfebc4f38b3562162126e044c)\n", + " paginatedElementsf18861bcfebc4f38b3562162126e044c = result\n", + " buildGridf18861bcfebc4f38b3562162126e044c(result,pageIndexf18861bcfebc4f38b3562162126e044c);\n", + " buildPaginationContainerf18861bcfebc4f38b3562162126e044c(result);\n", + " }\n", + "\n", + " function resetByIdf18861bcfebc4f38b3562162126e044c(id){\n", + " let element = document.getElementById(id);\n", + " while (element.firstChild) {\n", + " element.removeChild(element.firstChild);\n", + " }\n", + " }\n", + "\n", + " function buildGridf18861bcfebc4f38b3562162126e044c(items, pageIndex){\n", + " let headers = Object.keys(elementf18861bcfebc4f38b3562162126e044c[0]);\n", + "\n", + " let grid = document.getElementById(\"tablef18861bcfebc4f38b3562162126e044c\");\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-index-cells');\n", + " grid.appendChild(div);\n", + " headers.forEach((title) =>{\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-std-cells');\n", + " div.innerText = title;\n", + "\n", + " grid.appendChild(div);\n", + " });\n", + "\n", + " let page = items[pageIndex -1]\n", + " if (page !== 'undefine'){\n", + " let table_indexf18861bcfebc4f38b3562162126e044c = ((pageIndex - 1) * page_sizef18861bcfebc4f38b3562162126e044c)\n", + " page.forEach((item) => {\n", + " let grid = document.getElementById(\"tablef18861bcfebc4f38b3562162126e044c\");\n", + " // Add new index value in index cells\n", + " let divIndex = document.createElement(\"div\");\n", + " divIndex.classList.add('grid-row', 'grid-index-cells');\n", + " divIndex.innerText = table_indexf18861bcfebc4f38b3562162126e044c;\n", + " grid.appendChild(divIndex);\n", + "\n", + " // Iterate over the actual obj\n", + " for (const attr in item) {\n", + " let div = document.createElement(\"div\");\n", + " if (typeof item[attr] === 'object'\n", + " && item[attr] !== null\n", + " && item[attr].hasOwnProperty('type')) {\n", + " if (item[attr].type.includes('badge')){\n", + " let badge_div = document.createElement(\"div\");\n", + " badge_div.classList.add('badge',item[attr].type)\n", + " badge_div.innerText = String(item[attr].value).toUpperCase();\n", + " div.appendChild(badge_div);\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " } else if (item[attr].type === \"clipboard\") {\n", + " div.classList.add('grid-row','grid-std-cells');\n", + "\n", + " // Create clipboard div\n", + " let clipboard_div = document.createElement('div');\n", + " clipboard_div.style.display= 'flex';\n", + " clipboard_div.classList.add(\"gap-10\")\n", + " clipboard_div.style.justifyContent = \"space-between\";\n", + "\n", + " let id_text = document.createElement('div');\n", + " if (item[attr].value == \"None\"){\n", + " id_text.innerText = \"None\";\n", + " }\n", + " else{\n", + " id_text.innerText = item[attr].value.slice(0,5) + \"...\";\n", + " }\n", + "\n", + " clipboard_div.appendChild(id_text);\n", + " let clipboard_img = document.createElement('div');\n", + " clipboard_img.classList.add(\"clipboard\")\n", + " div.onclick = function() {\n", + " navigator.clipboard.writeText(item[attr].value);\n", + " };\n", + " clipboard_img.innerHTML = \"<svg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M7.4375 0.25H2.4375C2.35462 0.25 2.27513 0.282924 2.21653 0.341529C2.15792 0.400134 2.125 0.47962 2.125 0.5625V2.125H0.5625C0.47962 2.125 0.400134 2.15792 0.341529 2.21653C0.282924 2.27513 0.25 2.35462 0.25 2.4375V7.4375C0.25 7.52038 0.282924 7.59987 0.341529 7.65847C0.400134 7.71708 0.47962 7.75 0.5625 7.75H5.5625C5.64538 7.75 5.72487 7.71708 5.78347 7.65847C5.84208 7.59987 5.875 7.52038 5.875 7.4375V5.875H7.4375C7.52038 5.875 7.59987 5.84208 7.65847 5.78347C7.71708 5.72487 7.75 5.64538 7.75 5.5625V0.5625C7.75 0.47962 7.71708 0.400134 7.65847 0.341529C7.59987 0.282924 7.52038 0.25 7.4375 0.25ZM5.25 7.125H0.875V2.75H5.25V7.125ZM7.125 5.25H5.875V2.4375C5.875 2.35462 5.84208 2.27513 5.78347 2.21653C5.72487 2.15792 5.64538 2.125 5.5625 2.125H2.75V0.875H7.125V5.25Z' fill='#464158'/></svg>\";\n", + "\n", + " clipboard_div.appendChild(clipboard_img);\n", + " div.appendChild(clipboard_div);\n", + " }\n", + " } else{\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " if (item[attr] == null) {\n", + " text = ' '\n", + " } else {\n", + " text = String(item[attr])\n", + " }\n", + " if (text.length > 150){\n", + " text = text.slice(0,150) + \"...\";\n", + " }\n", + " text = text.replaceAll(\"\\n\", \"</br>\");\n", + " div.innerHTML = text;\n", + " }\n", + " grid.appendChild(div);\n", + " }\n", + " table_indexf18861bcfebc4f38b3562162126e044c = table_indexf18861bcfebc4f38b3562162126e044c + 1;\n", + " })\n", + " }\n", + " }\n", + " paginatedElementsf18861bcfebc4f38b3562162126e044c = paginatef18861bcfebc4f38b3562162126e044c(elementf18861bcfebc4f38b3562162126e044c, page_sizef18861bcfebc4f38b3562162126e044c)\n", + " buildGridf18861bcfebc4f38b3562162126e044c(paginatedElementsf18861bcfebc4f38b3562162126e044c, 1)\n", + " document.getElementById('totalf18861bcfebc4f38b3562162126e044c').innerText = \"Total: \" + elementf18861bcfebc4f38b3562162126e044c.length\n", + " </script>\n", + " </div>\n", + " <div id='pagf18861bcfebc4f38b3562162126e044c' class='paginationContainer'>\n", + " <script>\n", + " function buildPaginationContainerf18861bcfebc4f38b3562162126e044c(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pagf18861bcfebc4f38b3562162126e044c\");\n", + " for (let i = 0; i < paginatedElements.length; i++) {\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('page');\n", + " if(i===0) div.style.color = \"gray\";\n", + " else div.style.color = 'var(--tertiary-color, \"gray\")';\n", + " div.onclick = function(event) {\n", + " let indexes = document.getElementsByClassName('page');\n", + " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", + " event.target.style.color = \"gray\";\n", + " setPagef18861bcfebc4f38b3562162126e044c(i + 1);\n", + " };\n", + " div.innerText = i + 1;\n", + " pageContainer.appendChild(div);\n", + " }\n", + " }\n", + "\n", + " function setPagef18861bcfebc4f38b3562162126e044c(newPage){\n", + " pageIndex = newPage\n", + " resetByIdf18861bcfebc4f38b3562162126e044c('tablef18861bcfebc4f38b3562162126e044c')\n", + " buildGridf18861bcfebc4f38b3562162126e044c(paginatedElementsf18861bcfebc4f38b3562162126e044c, pageIndex)\n", + " }\n", + "\n", + " buildPaginationContainerf18861bcfebc4f38b3562162126e044c(paginatedElementsf18861bcfebc4f38b3562162126e044c)\n", + " </script>\n", + " </div>\n", + " </div>\n", + " </div>\n", + " </div>\n" + ], + "text/plain": [ + "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node_high.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "255afa6a", + "metadata": {}, + "outputs": [], + "source": [ + "node_low.update_dataset(dataset.id, {\"description\": \"a\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "ecdcc143", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "<style>\n", + " body[data-jp-theme-light='false'] {\n", + " --primary-color: #111111;\n", + " --secondary-color: #212121;\n", + " --tertiary-color: #CFCDD6;\n", + " --button-color: #111111;\n", + " }\n", + "\n", + " body {\n", + " --primary-color: #ffffff;\n", + " --secondary-color: #f5f5f5;\n", + " --tertiary-color: #000000de;\n", + " --button-color: #d1d5db;\n", + " }\n", + "\n", + " .header-1 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 2.0736em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-2 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.728em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-3 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.44em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .header-4 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.2em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .paragraph {\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 14px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .paragraph-sm {\n", + " font-family: 'Roboto';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 11.62px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + " .code-text {\n", + " font-family: 'Consolas';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 13px;\n", + " line-height: 130%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .numbering-entry { display: none }\n", + "\n", + " /* Tooltip container */\n", + " .tooltip {\n", + " position: relative;\n", + " display: inline-block;\n", + " border-bottom: 1px dotted black; /* If you want dots under the hoverable text */\n", + " }\n", + "\n", + " /* Tooltip text */\n", + " .tooltip .tooltiptext {\n", + " visibility: hidden;\n", + " width: 120px;\n", + " background-color: black;\n", + " color: #fff;\n", + " text-align: center;\n", + " padding: 5px 0;\n", + " border-radius: 6px;\n", + "\n", + " /* Position the tooltip text - see examples below! */\n", + " position: absolute;\n", + " z-index: 1;\n", + " }\n", + "\n", + " .repr-cell {\n", + " padding-top: 20px;\n", + " }\n", + "\n", + " .text-bold {\n", + " font-weight: bold;\n", + " }\n", + "\n", + " .pr-8 {\n", + " padding-right: 8px;\n", + " }\n", + " .pt-8 {\n", + " padding-top: 8px;\n", + " }\n", + " .pl-8 {\n", + " padding-left: 8px;\n", + " }\n", + " .pb-8 {\n", + " padding-bottom: 8px;\n", + " }\n", + "\n", + " .py-25{\n", + " padding-top: 25px;\n", + " padding-bottom: 25px;\n", + " }\n", + "\n", + " .flex {\n", + " display: flex;\n", + " }\n", + "\n", + " .gap-10 {\n", + " gap: 10px;\n", + " }\n", + " .items-center{\n", + " align-items: center;\n", + " }\n", + "\n", + " .folder-icon {\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-input{\n", + " display: flex;\n", + " flex-direction: row;\n", + " align-items: center;\n", + " padding: 8px 12px;\n", + " width: 343px;\n", + " height: 24px;\n", + " /* Lt On Surface/Low */\n", + " background-color: var(--secondary-color);\n", + " border-radius: 30px;\n", + "\n", + " /* Lt On Surface/Highest */\n", + " color: var(--tertiary-color);\n", + " border:none;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 0;\n", + " flex-grow: 0;\n", + " }\n", + " .search-input:focus {\n", + " outline: none;\n", + " }\n", + " .search-input:focus::placeholder,\n", + " .search-input::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\n", + " color: var(--tertiary-color);\n", + " opacity: 1; /* Firefox */\n", + " }\n", + "\n", + " .search-button{\n", + " /* Search */\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " display: flex;\n", + " align-items: center;\n", + " text-align: center;\n", + "\n", + " /* Primary/On Light */\n", + " background-color: var(--button-color);\n", + " color: var(--tertiary-color);\n", + "\n", + " border-radius: 30px;\n", + " border-color: var(--secondary-color);\n", + " border-style: solid;\n", + " box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;\n", + " cursor: pointer;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 1;\n", + " flex-grow: 0;\n", + " }\n", + "\n", + " .grid-table8d88d7cd8eb74d4fb4c74bdef9f1d5a1 {\n", + " display:grid;\n", + " grid-template-columns: 1fr repeat(8, 1fr);\n", + " grid-template-rows: repeat(2, 1fr);\n", + " overflow-x: auto;\n", + " }\n", + "\n", + " .grid-std-cells {\n", + " grid-column: span 4;\n", + "\n", + " }\n", + " .grid-index-cells {\n", + " grid-column: span 1;\n", + " /* tmp fix to make left col stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color) !important;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-header {\n", + " /* Auto layout */\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " padding: 6px 4px;\n", + "\n", + " /* Lt On Surface/Surface */\n", + " /* Lt On Surface/High */\n", + " border: 1px solid #CFCDD6;\n", + " /* tmp fix to make header stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-row {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: flex-start;\n", + " padding: 6px 4px;\n", + " overflow: hidden;\n", + " border: 1px solid #CFCDD6;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .badge {\n", + " code-text;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .badge-blue {\n", + " badge;\n", + " background-color: #C2DEF0;\n", + " color: #1F567A;\n", + " }\n", + "\n", + " .badge-purple {\n", + " badge;\n", + " background-color: #C9CFE8;\n", + " color: #373B7B;\n", + " }\n", + "\n", + " .badge-green {\n", + " badge;\n", + "\n", + " /* Success/Container */\n", + " background-color: #D5F1D5;\n", + " color: #256B24;\n", + " }\n", + "\n", + " .badge-red {\n", + " badge;\n", + " background-color: #F2D9DE;\n", + " color: #9B2737;\n", + " }\n", + "\n", + " .badge-gray {\n", + " badge;\n", + " background-color: #ECEBEF;\n", + " color: #2E2B3B;\n", + " }\n", + " .paginationContainer{\n", + " width: 100%;\n", + " height: 30px;\n", + " display: flex;\n", + " justify-content: center;\n", + " gap: 8px;\n", + " padding: 5px;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .page{\n", + " color: black;\n", + " font-weight: bold;\n", + " color: var(--tertiary-color);\n", + " }\n", + " .page:hover {\n", + " color: #38bdf8;\n", + " cursor: pointer;\n", + " }\n", + " .clipboard:hover{\n", + " cursor: pointer;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-field {\n", + " display: flex;\n", + " align-items: center;\n", + " border-radius: 30px;\n", + " background-color: var(--secondary-color);\n", + " }\n", + "\n", + " .syft-dropdown {\n", + " margin: 5px;\n", + " margin-left: 5px;\n", + " position: relative;\n", + " display: inline-block;\n", + " text-align: center;\n", + " background-color: var(--button-color);\n", + " min-width: 100px;\n", + " padding: 2px;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .syft-dropdown:hover {\n", + " cursor: pointer;\n", + " }\n", + " .syft-dropdown-content {\n", + " margin-top:26px;\n", + " display: none;\n", + " position: absolute;\n", + " min-width: 100px;\n", + " box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n", + " padding: 12px 6px;\n", + " z-index: 1;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + " .dd-options {\n", + " padding-top: 4px;\n", + " }\n", + " .dd-options:first-of-type {\n", + " padding-top: 0px;\n", + " }\n", + "\n", + " .dd-options:hover {\n", + " cursor: pointer;\n", + " background: #d1d5db;\n", + " }\n", + " .arrow {\n", + " border: solid black;\n", + " border-width: 0 3px 3px 0;\n", + " display: inline-block;\n", + " padding: 3px;\n", + " }\n", + " .down {\n", + " transform: rotate(45deg);\n", + " -webkit-transform: rotate(45deg);\n", + " }\n", + "</style>\n", + "\n", + "\n", + " <div style='margin-top:15px;'>\n", + " <div class='flex gap-10' style='align-items: center;'>\n", + " <div class='folder-icon'><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M28 6H4C3.73478 6 3.48043 6.10536 3.29289 6.29289C3.10536 6.48043 3 6.73478 3 7V24C3 24.5304 3.21071 25.0391 3.58579 25.4142C3.96086 25.7893 4.46957 26 5 26H27C27.5304 26 28.0391 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V7C29 6.73478 28.8946 6.48043 28.7071 6.29289C28.5196 6.10536 28.2652 6 28 6ZM5 14H10V18H5V14ZM12 14H27V18H12V14ZM27 8V12H5V8H27ZM5 20H10V24H5V20ZM27 24H12V20H27V24Z\" fill=\"#343330\"/></svg></div>\n", + " <div><p class='header-3'> List</p></div>\n", + " </div>\n", + "\n", + " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", + " <div class='pt-25 gap-10' style=\"display:flex;\">\n", + " <div class=\"search-field\">\n", + " <div id='search-menu8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " if (doc.style.display === 'block'){\n", + " doc.style.display = 'none'\n", + " } else {\n", + " doc.style.display = 'block'\n", + " }\n", + " }\">\n", + " <div id='search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='syft-dropdown-content'></div>\n", + " <script>\n", + " var element8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = 2\n", + " var pageIndex8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = 1\n", + " var paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = []\n", + " var activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1;\n", + "\n", + " function buildDropDownMenu(elements){\n", + " let init_filter;\n", + " let menu = document.getElementById('search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " if (elements.length > 0) {\n", + " let sample = elements[0]\n", + " for (const attr in sample) {\n", + " if (typeof init_filter === 'undefined'){\n", + " init_filter = attr;\n", + " }\n", + " let content = document.createElement('div');\n", + " content.onclick = function(event) {\n", + " event.stopPropagation()\n", + " document.getElementById('menu-active-filter8d88d7cd8eb74d4fb4c74bdef9f1d5a1').innerText = attr;\n", + " activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = attr;\n", + " document.getElementById(\n", + " 'search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1'\n", + " ).style.display= 'none';\n", + " }\n", + " content.classList.add(\"dd-options\");\n", + " content.innerText = attr;\n", + " menu.appendChild(content);\n", + " }\n", + " } else {\n", + " let init_filter = '---'\n", + " }\n", + " let dropdown_field = document.getElementById('search-menu8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " let span = document.createElement('span')\n", + " span.setAttribute('id', 'menu-active-filter8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " span.innerText = init_filter\n", + " activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = init_filter;\n", + " dropdown_field.appendChild(span)\n", + " }\n", + "\n", + " buildDropDownMenu(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " </script>\n", + " </div>\n", + " <input id='searchKey8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='search-input' placeholder='Enter search here ...' />\n", + " </div>\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\">\n", + " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", + " <span class='pl-8'>Search</span>\n", + " </button>\n", + " </div>\n", + "\n", + " <div><h4 id='total8d88d7cd8eb74d4fb4c74bdef9f1d5a1'>0</h4></div>\n", + " </div>\n", + " <div id='table8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='grid-table8d88d7cd8eb74d4fb4c74bdef9f1d5a1' style='margin-top: 25px;'>\n", + " <script>\n", + " function paginate8d88d7cd8eb74d4fb4c74bdef9f1d5a1(arr, size) {\n", + " const res = [];\n", + " for (let i = 0; i < arr.length; i += size) {\n", + " const chunk = arr.slice(i, i + size);\n", + " res.push(chunk);\n", + " }\n", + "\n", + " return res;\n", + " }\n", + "\n", + " function searchGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(elements){\n", + " let searchKey = document.getElementById('searchKey8d88d7cd8eb74d4fb4c74bdef9f1d5a1').value;\n", + " let result;\n", + " if (searchKey === ''){\n", + " result = elements;\n", + " } else {\n", + " result = elements.filter((element) => {\n", + " let property = element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1]\n", + " if (typeof property === 'object' && property !== null){\n", + " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (typeof property === 'string' ) {\n", + " return element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1].toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (property !== null ) {\n", + " return element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1].toString() === searchKey;\n", + " } else {\n", + " return element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1] === searchKey;\n", + " }\n", + " } );\n", + " }\n", + " resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1('table8d88d7cd8eb74d4fb4c74bdef9f1d5a1');\n", + " resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1('pag8d88d7cd8eb74d4fb4c74bdef9f1d5a1');\n", + " result = paginate8d88d7cd8eb74d4fb4c74bdef9f1d5a1(result, page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = result\n", + " buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(result,pageIndex8d88d7cd8eb74d4fb4c74bdef9f1d5a1);\n", + " buildPaginationContainer8d88d7cd8eb74d4fb4c74bdef9f1d5a1(result);\n", + " }\n", + "\n", + " function resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1(id){\n", + " let element = document.getElementById(id);\n", + " while (element.firstChild) {\n", + " element.removeChild(element.firstChild);\n", + " }\n", + " }\n", + "\n", + " function buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(items, pageIndex){\n", + " let headers = Object.keys(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1[0]);\n", + "\n", + " let grid = document.getElementById(\"table8d88d7cd8eb74d4fb4c74bdef9f1d5a1\");\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-index-cells');\n", + " grid.appendChild(div);\n", + " headers.forEach((title) =>{\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-std-cells');\n", + " div.innerText = title;\n", + "\n", + " grid.appendChild(div);\n", + " });\n", + "\n", + " let page = items[pageIndex -1]\n", + " if (page !== 'undefine'){\n", + " let table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = ((pageIndex - 1) * page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " page.forEach((item) => {\n", + " let grid = document.getElementById(\"table8d88d7cd8eb74d4fb4c74bdef9f1d5a1\");\n", + " // Add new index value in index cells\n", + " let divIndex = document.createElement(\"div\");\n", + " divIndex.classList.add('grid-row', 'grid-index-cells');\n", + " divIndex.innerText = table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1;\n", + " grid.appendChild(divIndex);\n", + "\n", + " // Iterate over the actual obj\n", + " for (const attr in item) {\n", + " let div = document.createElement(\"div\");\n", + " if (typeof item[attr] === 'object'\n", + " && item[attr] !== null\n", + " && item[attr].hasOwnProperty('type')) {\n", + " if (item[attr].type.includes('badge')){\n", + " let badge_div = document.createElement(\"div\");\n", + " badge_div.classList.add('badge',item[attr].type)\n", + " badge_div.innerText = String(item[attr].value).toUpperCase();\n", + " div.appendChild(badge_div);\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " } else if (item[attr].type === \"clipboard\") {\n", + " div.classList.add('grid-row','grid-std-cells');\n", + "\n", + " // Create clipboard div\n", + " let clipboard_div = document.createElement('div');\n", + " clipboard_div.style.display= 'flex';\n", + " clipboard_div.classList.add(\"gap-10\")\n", + " clipboard_div.style.justifyContent = \"space-between\";\n", + "\n", + " let id_text = document.createElement('div');\n", + " if (item[attr].value == \"None\"){\n", + " id_text.innerText = \"None\";\n", + " }\n", + " else{\n", + " id_text.innerText = item[attr].value.slice(0,5) + \"...\";\n", + " }\n", + "\n", + " clipboard_div.appendChild(id_text);\n", + " let clipboard_img = document.createElement('div');\n", + " clipboard_img.classList.add(\"clipboard\")\n", + " div.onclick = function() {\n", + " navigator.clipboard.writeText(item[attr].value);\n", + " };\n", + " clipboard_img.innerHTML = \"<svg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M7.4375 0.25H2.4375C2.35462 0.25 2.27513 0.282924 2.21653 0.341529C2.15792 0.400134 2.125 0.47962 2.125 0.5625V2.125H0.5625C0.47962 2.125 0.400134 2.15792 0.341529 2.21653C0.282924 2.27513 0.25 2.35462 0.25 2.4375V7.4375C0.25 7.52038 0.282924 7.59987 0.341529 7.65847C0.400134 7.71708 0.47962 7.75 0.5625 7.75H5.5625C5.64538 7.75 5.72487 7.71708 5.78347 7.65847C5.84208 7.59987 5.875 7.52038 5.875 7.4375V5.875H7.4375C7.52038 5.875 7.59987 5.84208 7.65847 5.78347C7.71708 5.72487 7.75 5.64538 7.75 5.5625V0.5625C7.75 0.47962 7.71708 0.400134 7.65847 0.341529C7.59987 0.282924 7.52038 0.25 7.4375 0.25ZM5.25 7.125H0.875V2.75H5.25V7.125ZM7.125 5.25H5.875V2.4375C5.875 2.35462 5.84208 2.27513 5.78347 2.21653C5.72487 2.15792 5.64538 2.125 5.5625 2.125H2.75V0.875H7.125V5.25Z' fill='#464158'/></svg>\";\n", + "\n", + " clipboard_div.appendChild(clipboard_img);\n", + " div.appendChild(clipboard_div);\n", + " }\n", + " } else{\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " if (item[attr] == null) {\n", + " text = ' '\n", + " } else {\n", + " text = String(item[attr])\n", + " }\n", + " if (text.length > 150){\n", + " text = text.slice(0,150) + \"...\";\n", + " }\n", + " text = text.replaceAll(\"\\n\", \"</br>\");\n", + " div.innerHTML = text;\n", + " }\n", + " grid.appendChild(div);\n", + " }\n", + " table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1 + 1;\n", + " })\n", + " }\n", + " }\n", + " paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = paginate8d88d7cd8eb74d4fb4c74bdef9f1d5a1(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1, page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1, 1)\n", + " document.getElementById('total8d88d7cd8eb74d4fb4c74bdef9f1d5a1').innerText = \"Total: \" + element8d88d7cd8eb74d4fb4c74bdef9f1d5a1.length\n", + " </script>\n", + " </div>\n", + " <div id='pag8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='paginationContainer'>\n", + " <script>\n", + " function buildPaginationContainer8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag8d88d7cd8eb74d4fb4c74bdef9f1d5a1\");\n", + " for (let i = 0; i < paginatedElements.length; i++) {\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('page');\n", + " if(i===0) div.style.color = \"gray\";\n", + " else div.style.color = 'var(--tertiary-color, \"gray\")';\n", + " div.onclick = function(event) {\n", + " let indexes = document.getElementsByClassName('page');\n", + " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", + " event.target.style.color = \"gray\";\n", + " setPage8d88d7cd8eb74d4fb4c74bdef9f1d5a1(i + 1);\n", + " };\n", + " div.innerText = i + 1;\n", + " pageContainer.appendChild(div);\n", + " }\n", + " }\n", + "\n", + " function setPage8d88d7cd8eb74d4fb4c74bdef9f1d5a1(newPage){\n", + " pageIndex = newPage\n", + " resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1('table8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1, pageIndex)\n", + " }\n", + "\n", + " buildPaginationContainer8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " </script>\n", + " </div>\n", + " </div>\n", + " </div>\n", + " </div>\n" + ], + "text/plain": [ + "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node_high.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "f0026d2b", + "metadata": {}, + "outputs": [], + "source": [ + "# node_low.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "5ffaa011", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'), UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]\n" + ] + } + ], + "source": [ + "sync(node_high, node_low)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b89e3a76", + "metadata": {}, + "outputs": [], + "source": [ + "dataset_high = list(node_high.store.values())[0]\n", + "dataset_low = list(node_low.store.values())[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "9f5abaf8", + "metadata": {}, + "outputs": [], + "source": [ + "assert dataset_high.description == dataset_low.description" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "96313e34", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "<style>\n", + " body[data-jp-theme-light='false'] {\n", + " --primary-color: #111111;\n", + " --secondary-color: #212121;\n", + " --tertiary-color: #CFCDD6;\n", + " --button-color: #111111;\n", + " }\n", + "\n", + " body {\n", + " --primary-color: #ffffff;\n", + " --secondary-color: #f5f5f5;\n", + " --tertiary-color: #000000de;\n", + " --button-color: #d1d5db;\n", + " }\n", + "\n", + " .header-1 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 2.0736em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-2 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.728em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-3 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.44em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .header-4 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.2em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .paragraph {\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 14px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .paragraph-sm {\n", + " font-family: 'Roboto';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 11.62px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + " .code-text {\n", + " font-family: 'Consolas';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 13px;\n", + " line-height: 130%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .numbering-entry { display: none }\n", + "\n", + " /* Tooltip container */\n", + " .tooltip {\n", + " position: relative;\n", + " display: inline-block;\n", + " border-bottom: 1px dotted black; /* If you want dots under the hoverable text */\n", + " }\n", + "\n", + " /* Tooltip text */\n", + " .tooltip .tooltiptext {\n", + " visibility: hidden;\n", + " width: 120px;\n", + " background-color: black;\n", + " color: #fff;\n", + " text-align: center;\n", + " padding: 5px 0;\n", + " border-radius: 6px;\n", + "\n", + " /* Position the tooltip text - see examples below! */\n", + " position: absolute;\n", + " z-index: 1;\n", + " }\n", + "\n", + " .repr-cell {\n", + " padding-top: 20px;\n", + " }\n", + "\n", + " .text-bold {\n", + " font-weight: bold;\n", + " }\n", + "\n", + " .pr-8 {\n", + " padding-right: 8px;\n", + " }\n", + " .pt-8 {\n", + " padding-top: 8px;\n", + " }\n", + " .pl-8 {\n", + " padding-left: 8px;\n", + " }\n", + " .pb-8 {\n", + " padding-bottom: 8px;\n", + " }\n", + "\n", + " .py-25{\n", + " padding-top: 25px;\n", + " padding-bottom: 25px;\n", + " }\n", + "\n", + " .flex {\n", + " display: flex;\n", + " }\n", + "\n", + " .gap-10 {\n", + " gap: 10px;\n", + " }\n", + " .items-center{\n", + " align-items: center;\n", + " }\n", + "\n", + " .folder-icon {\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-input{\n", + " display: flex;\n", + " flex-direction: row;\n", + " align-items: center;\n", + " padding: 8px 12px;\n", + " width: 343px;\n", + " height: 24px;\n", + " /* Lt On Surface/Low */\n", + " background-color: var(--secondary-color);\n", + " border-radius: 30px;\n", + "\n", + " /* Lt On Surface/Highest */\n", + " color: var(--tertiary-color);\n", + " border:none;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 0;\n", + " flex-grow: 0;\n", + " }\n", + " .search-input:focus {\n", + " outline: none;\n", + " }\n", + " .search-input:focus::placeholder,\n", + " .search-input::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\n", + " color: var(--tertiary-color);\n", + " opacity: 1; /* Firefox */\n", + " }\n", + "\n", + " .search-button{\n", + " /* Search */\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " display: flex;\n", + " align-items: center;\n", + " text-align: center;\n", + "\n", + " /* Primary/On Light */\n", + " background-color: var(--button-color);\n", + " color: var(--tertiary-color);\n", + "\n", + " border-radius: 30px;\n", + " border-color: var(--secondary-color);\n", + " border-style: solid;\n", + " box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;\n", + " cursor: pointer;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 1;\n", + " flex-grow: 0;\n", + " }\n", + "\n", + " .grid-table32803def46e942ae84a4c48a8fc0b494 {\n", + " display:grid;\n", + " grid-template-columns: 1fr repeat(8, 1fr);\n", + " grid-template-rows: repeat(2, 1fr);\n", + " overflow-x: auto;\n", + " }\n", + "\n", + " .grid-std-cells {\n", + " grid-column: span 4;\n", + "\n", + " }\n", + " .grid-index-cells {\n", + " grid-column: span 1;\n", + " /* tmp fix to make left col stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color) !important;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-header {\n", + " /* Auto layout */\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " padding: 6px 4px;\n", + "\n", + " /* Lt On Surface/Surface */\n", + " /* Lt On Surface/High */\n", + " border: 1px solid #CFCDD6;\n", + " /* tmp fix to make header stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-row {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: flex-start;\n", + " padding: 6px 4px;\n", + " overflow: hidden;\n", + " border: 1px solid #CFCDD6;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .badge {\n", + " code-text;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .badge-blue {\n", + " badge;\n", + " background-color: #C2DEF0;\n", + " color: #1F567A;\n", + " }\n", + "\n", + " .badge-purple {\n", + " badge;\n", + " background-color: #C9CFE8;\n", + " color: #373B7B;\n", + " }\n", + "\n", + " .badge-green {\n", + " badge;\n", + "\n", + " /* Success/Container */\n", + " background-color: #D5F1D5;\n", + " color: #256B24;\n", + " }\n", + "\n", + " .badge-red {\n", + " badge;\n", + " background-color: #F2D9DE;\n", + " color: #9B2737;\n", + " }\n", + "\n", + " .badge-gray {\n", + " badge;\n", + " background-color: #ECEBEF;\n", + " color: #2E2B3B;\n", + " }\n", + " .paginationContainer{\n", + " width: 100%;\n", + " height: 30px;\n", + " display: flex;\n", + " justify-content: center;\n", + " gap: 8px;\n", + " padding: 5px;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .page{\n", + " color: black;\n", + " font-weight: bold;\n", + " color: var(--tertiary-color);\n", + " }\n", + " .page:hover {\n", + " color: #38bdf8;\n", + " cursor: pointer;\n", + " }\n", + " .clipboard:hover{\n", + " cursor: pointer;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-field {\n", + " display: flex;\n", + " align-items: center;\n", + " border-radius: 30px;\n", + " background-color: var(--secondary-color);\n", + " }\n", + "\n", + " .syft-dropdown {\n", + " margin: 5px;\n", + " margin-left: 5px;\n", + " position: relative;\n", + " display: inline-block;\n", + " text-align: center;\n", + " background-color: var(--button-color);\n", + " min-width: 100px;\n", + " padding: 2px;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .syft-dropdown:hover {\n", + " cursor: pointer;\n", + " }\n", + " .syft-dropdown-content {\n", + " margin-top:26px;\n", + " display: none;\n", + " position: absolute;\n", + " min-width: 100px;\n", + " box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n", + " padding: 12px 6px;\n", + " z-index: 1;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + " .dd-options {\n", + " padding-top: 4px;\n", + " }\n", + " .dd-options:first-of-type {\n", + " padding-top: 0px;\n", + " }\n", + "\n", + " .dd-options:hover {\n", + " cursor: pointer;\n", + " background: #d1d5db;\n", + " }\n", + " .arrow {\n", + " border: solid black;\n", + " border-width: 0 3px 3px 0;\n", + " display: inline-block;\n", + " padding: 3px;\n", + " }\n", + " .down {\n", + " transform: rotate(45deg);\n", + " -webkit-transform: rotate(45deg);\n", + " }\n", + "</style>\n", + "\n", + "\n", + " <div style='margin-top:15px;'>\n", + " <div class='flex gap-10' style='align-items: center;'>\n", + " <div class='folder-icon'><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M28 6H4C3.73478 6 3.48043 6.10536 3.29289 6.29289C3.10536 6.48043 3 6.73478 3 7V24C3 24.5304 3.21071 25.0391 3.58579 25.4142C3.96086 25.7893 4.46957 26 5 26H27C27.5304 26 28.0391 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V7C29 6.73478 28.8946 6.48043 28.7071 6.29289C28.5196 6.10536 28.2652 6 28 6ZM5 14H10V18H5V14ZM12 14H27V18H12V14ZM27 8V12H5V8H27ZM5 20H10V24H5V20ZM27 24H12V20H27V24Z\" fill=\"#343330\"/></svg></div>\n", + " <div><p class='header-3'> List</p></div>\n", + " </div>\n", + "\n", + " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", + " <div class='pt-25 gap-10' style=\"display:flex;\">\n", + " <div class=\"search-field\">\n", + " <div id='search-menu32803def46e942ae84a4c48a8fc0b494' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content32803def46e942ae84a4c48a8fc0b494')\n", + " if (doc.style.display === 'block'){\n", + " doc.style.display = 'none'\n", + " } else {\n", + " doc.style.display = 'block'\n", + " }\n", + " }\">\n", + " <div id='search-dropdown-content32803def46e942ae84a4c48a8fc0b494' class='syft-dropdown-content'></div>\n", + " <script>\n", + " var element32803def46e942ae84a4c48a8fc0b494 = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}, {\"id\": {\"value\": \"2b3cf90527824a41ab41ce6b7a2f4107\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size32803def46e942ae84a4c48a8fc0b494 = 3\n", + " var pageIndex32803def46e942ae84a4c48a8fc0b494 = 1\n", + " var paginatedElements32803def46e942ae84a4c48a8fc0b494 = []\n", + " var activeFilter32803def46e942ae84a4c48a8fc0b494;\n", + "\n", + " function buildDropDownMenu(elements){\n", + " let init_filter;\n", + " let menu = document.getElementById('search-dropdown-content32803def46e942ae84a4c48a8fc0b494')\n", + " if (elements.length > 0) {\n", + " let sample = elements[0]\n", + " for (const attr in sample) {\n", + " if (typeof init_filter === 'undefined'){\n", + " init_filter = attr;\n", + " }\n", + " let content = document.createElement('div');\n", + " content.onclick = function(event) {\n", + " event.stopPropagation()\n", + " document.getElementById('menu-active-filter32803def46e942ae84a4c48a8fc0b494').innerText = attr;\n", + " activeFilter32803def46e942ae84a4c48a8fc0b494 = attr;\n", + " document.getElementById(\n", + " 'search-dropdown-content32803def46e942ae84a4c48a8fc0b494'\n", + " ).style.display= 'none';\n", + " }\n", + " content.classList.add(\"dd-options\");\n", + " content.innerText = attr;\n", + " menu.appendChild(content);\n", + " }\n", + " } else {\n", + " let init_filter = '---'\n", + " }\n", + " let dropdown_field = document.getElementById('search-menu32803def46e942ae84a4c48a8fc0b494')\n", + " let span = document.createElement('span')\n", + " span.setAttribute('id', 'menu-active-filter32803def46e942ae84a4c48a8fc0b494')\n", + " span.innerText = init_filter\n", + " activeFilter32803def46e942ae84a4c48a8fc0b494 = init_filter;\n", + " dropdown_field.appendChild(span)\n", + " }\n", + "\n", + " buildDropDownMenu(element32803def46e942ae84a4c48a8fc0b494)\n", + " </script>\n", + " </div>\n", + " <input id='searchKey32803def46e942ae84a4c48a8fc0b494' class='search-input' placeholder='Enter search here ...' />\n", + " </div>\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid32803def46e942ae84a4c48a8fc0b494(element32803def46e942ae84a4c48a8fc0b494)\">\n", + " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", + " <span class='pl-8'>Search</span>\n", + " </button>\n", + " </div>\n", + "\n", + " <div><h4 id='total32803def46e942ae84a4c48a8fc0b494'>0</h4></div>\n", + " </div>\n", + " <div id='table32803def46e942ae84a4c48a8fc0b494' class='grid-table32803def46e942ae84a4c48a8fc0b494' style='margin-top: 25px;'>\n", + " <script>\n", + " function paginate32803def46e942ae84a4c48a8fc0b494(arr, size) {\n", + " const res = [];\n", + " for (let i = 0; i < arr.length; i += size) {\n", + " const chunk = arr.slice(i, i + size);\n", + " res.push(chunk);\n", + " }\n", + "\n", + " return res;\n", + " }\n", + "\n", + " function searchGrid32803def46e942ae84a4c48a8fc0b494(elements){\n", + " let searchKey = document.getElementById('searchKey32803def46e942ae84a4c48a8fc0b494').value;\n", + " let result;\n", + " if (searchKey === ''){\n", + " result = elements;\n", + " } else {\n", + " result = elements.filter((element) => {\n", + " let property = element[activeFilter32803def46e942ae84a4c48a8fc0b494]\n", + " if (typeof property === 'object' && property !== null){\n", + " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (typeof property === 'string' ) {\n", + " return element[activeFilter32803def46e942ae84a4c48a8fc0b494].toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (property !== null ) {\n", + " return element[activeFilter32803def46e942ae84a4c48a8fc0b494].toString() === searchKey;\n", + " } else {\n", + " return element[activeFilter32803def46e942ae84a4c48a8fc0b494] === searchKey;\n", + " }\n", + " } );\n", + " }\n", + " resetById32803def46e942ae84a4c48a8fc0b494('table32803def46e942ae84a4c48a8fc0b494');\n", + " resetById32803def46e942ae84a4c48a8fc0b494('pag32803def46e942ae84a4c48a8fc0b494');\n", + " result = paginate32803def46e942ae84a4c48a8fc0b494(result, page_size32803def46e942ae84a4c48a8fc0b494)\n", + " paginatedElements32803def46e942ae84a4c48a8fc0b494 = result\n", + " buildGrid32803def46e942ae84a4c48a8fc0b494(result,pageIndex32803def46e942ae84a4c48a8fc0b494);\n", + " buildPaginationContainer32803def46e942ae84a4c48a8fc0b494(result);\n", + " }\n", + "\n", + " function resetById32803def46e942ae84a4c48a8fc0b494(id){\n", + " let element = document.getElementById(id);\n", + " while (element.firstChild) {\n", + " element.removeChild(element.firstChild);\n", + " }\n", + " }\n", + "\n", + " function buildGrid32803def46e942ae84a4c48a8fc0b494(items, pageIndex){\n", + " let headers = Object.keys(element32803def46e942ae84a4c48a8fc0b494[0]);\n", + "\n", + " let grid = document.getElementById(\"table32803def46e942ae84a4c48a8fc0b494\");\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-index-cells');\n", + " grid.appendChild(div);\n", + " headers.forEach((title) =>{\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-std-cells');\n", + " div.innerText = title;\n", + "\n", + " grid.appendChild(div);\n", + " });\n", + "\n", + " let page = items[pageIndex -1]\n", + " if (page !== 'undefine'){\n", + " let table_index32803def46e942ae84a4c48a8fc0b494 = ((pageIndex - 1) * page_size32803def46e942ae84a4c48a8fc0b494)\n", + " page.forEach((item) => {\n", + " let grid = document.getElementById(\"table32803def46e942ae84a4c48a8fc0b494\");\n", + " // Add new index value in index cells\n", + " let divIndex = document.createElement(\"div\");\n", + " divIndex.classList.add('grid-row', 'grid-index-cells');\n", + " divIndex.innerText = table_index32803def46e942ae84a4c48a8fc0b494;\n", + " grid.appendChild(divIndex);\n", + "\n", + " // Iterate over the actual obj\n", + " for (const attr in item) {\n", + " let div = document.createElement(\"div\");\n", + " if (typeof item[attr] === 'object'\n", + " && item[attr] !== null\n", + " && item[attr].hasOwnProperty('type')) {\n", + " if (item[attr].type.includes('badge')){\n", + " let badge_div = document.createElement(\"div\");\n", + " badge_div.classList.add('badge',item[attr].type)\n", + " badge_div.innerText = String(item[attr].value).toUpperCase();\n", + " div.appendChild(badge_div);\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " } else if (item[attr].type === \"clipboard\") {\n", + " div.classList.add('grid-row','grid-std-cells');\n", + "\n", + " // Create clipboard div\n", + " let clipboard_div = document.createElement('div');\n", + " clipboard_div.style.display= 'flex';\n", + " clipboard_div.classList.add(\"gap-10\")\n", + " clipboard_div.style.justifyContent = \"space-between\";\n", + "\n", + " let id_text = document.createElement('div');\n", + " if (item[attr].value == \"None\"){\n", + " id_text.innerText = \"None\";\n", + " }\n", + " else{\n", + " id_text.innerText = item[attr].value.slice(0,5) + \"...\";\n", + " }\n", + "\n", + " clipboard_div.appendChild(id_text);\n", + " let clipboard_img = document.createElement('div');\n", + " clipboard_img.classList.add(\"clipboard\")\n", + " div.onclick = function() {\n", + " navigator.clipboard.writeText(item[attr].value);\n", + " };\n", + " clipboard_img.innerHTML = \"<svg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M7.4375 0.25H2.4375C2.35462 0.25 2.27513 0.282924 2.21653 0.341529C2.15792 0.400134 2.125 0.47962 2.125 0.5625V2.125H0.5625C0.47962 2.125 0.400134 2.15792 0.341529 2.21653C0.282924 2.27513 0.25 2.35462 0.25 2.4375V7.4375C0.25 7.52038 0.282924 7.59987 0.341529 7.65847C0.400134 7.71708 0.47962 7.75 0.5625 7.75H5.5625C5.64538 7.75 5.72487 7.71708 5.78347 7.65847C5.84208 7.59987 5.875 7.52038 5.875 7.4375V5.875H7.4375C7.52038 5.875 7.59987 5.84208 7.65847 5.78347C7.71708 5.72487 7.75 5.64538 7.75 5.5625V0.5625C7.75 0.47962 7.71708 0.400134 7.65847 0.341529C7.59987 0.282924 7.52038 0.25 7.4375 0.25ZM5.25 7.125H0.875V2.75H5.25V7.125ZM7.125 5.25H5.875V2.4375C5.875 2.35462 5.84208 2.27513 5.78347 2.21653C5.72487 2.15792 5.64538 2.125 5.5625 2.125H2.75V0.875H7.125V5.25Z' fill='#464158'/></svg>\";\n", + "\n", + " clipboard_div.appendChild(clipboard_img);\n", + " div.appendChild(clipboard_div);\n", + " }\n", + " } else{\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " if (item[attr] == null) {\n", + " text = ' '\n", + " } else {\n", + " text = String(item[attr])\n", + " }\n", + " if (text.length > 150){\n", + " text = text.slice(0,150) + \"...\";\n", + " }\n", + " text = text.replaceAll(\"\\n\", \"</br>\");\n", + " div.innerHTML = text;\n", + " }\n", + " grid.appendChild(div);\n", + " }\n", + " table_index32803def46e942ae84a4c48a8fc0b494 = table_index32803def46e942ae84a4c48a8fc0b494 + 1;\n", + " })\n", + " }\n", + " }\n", + " paginatedElements32803def46e942ae84a4c48a8fc0b494 = paginate32803def46e942ae84a4c48a8fc0b494(element32803def46e942ae84a4c48a8fc0b494, page_size32803def46e942ae84a4c48a8fc0b494)\n", + " buildGrid32803def46e942ae84a4c48a8fc0b494(paginatedElements32803def46e942ae84a4c48a8fc0b494, 1)\n", + " document.getElementById('total32803def46e942ae84a4c48a8fc0b494').innerText = \"Total: \" + element32803def46e942ae84a4c48a8fc0b494.length\n", + " </script>\n", + " </div>\n", + " <div id='pag32803def46e942ae84a4c48a8fc0b494' class='paginationContainer'>\n", + " <script>\n", + " function buildPaginationContainer32803def46e942ae84a4c48a8fc0b494(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag32803def46e942ae84a4c48a8fc0b494\");\n", + " for (let i = 0; i < paginatedElements.length; i++) {\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('page');\n", + " if(i===0) div.style.color = \"gray\";\n", + " else div.style.color = 'var(--tertiary-color, \"gray\")';\n", + " div.onclick = function(event) {\n", + " let indexes = document.getElementsByClassName('page');\n", + " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", + " event.target.style.color = \"gray\";\n", + " setPage32803def46e942ae84a4c48a8fc0b494(i + 1);\n", + " };\n", + " div.innerText = i + 1;\n", + " pageContainer.appendChild(div);\n", + " }\n", + " }\n", + "\n", + " function setPage32803def46e942ae84a4c48a8fc0b494(newPage){\n", + " pageIndex = newPage\n", + " resetById32803def46e942ae84a4c48a8fc0b494('table32803def46e942ae84a4c48a8fc0b494')\n", + " buildGrid32803def46e942ae84a4c48a8fc0b494(paginatedElements32803def46e942ae84a4c48a8fc0b494, pageIndex)\n", + " }\n", + "\n", + " buildPaginationContainer32803def46e942ae84a4c48a8fc0b494(paginatedElements32803def46e942ae84a4c48a8fc0b494)\n", + " </script>\n", + " </div>\n", + " </div>\n", + " </div>\n", + " </div>\n" + ], + "text/plain": [ + "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}),\n", + " UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node_high.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "1351f1fc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "<style>\n", + " body[data-jp-theme-light='false'] {\n", + " --primary-color: #111111;\n", + " --secondary-color: #212121;\n", + " --tertiary-color: #CFCDD6;\n", + " --button-color: #111111;\n", + " }\n", + "\n", + " body {\n", + " --primary-color: #ffffff;\n", + " --secondary-color: #f5f5f5;\n", + " --tertiary-color: #000000de;\n", + " --button-color: #d1d5db;\n", + " }\n", + "\n", + " .header-1 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 2.0736em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-2 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.728em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .header-3 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.44em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .header-4 {\n", + " font-style: normal;\n", + " font-weight: 600;\n", + " font-size: 1.2em;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #17161D;\n", + " }\n", + "\n", + " .paragraph {\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 14px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .paragraph-sm {\n", + " font-family: 'Roboto';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 11.62px;\n", + " line-height: 100%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + " .code-text {\n", + " font-family: 'Consolas';\n", + " font-style: normal;\n", + " font-weight: 400;\n", + " font-size: 13px;\n", + " line-height: 130%;\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " color: #2E2B3B;\n", + " }\n", + "\n", + " .numbering-entry { display: none }\n", + "\n", + " /* Tooltip container */\n", + " .tooltip {\n", + " position: relative;\n", + " display: inline-block;\n", + " border-bottom: 1px dotted black; /* If you want dots under the hoverable text */\n", + " }\n", + "\n", + " /* Tooltip text */\n", + " .tooltip .tooltiptext {\n", + " visibility: hidden;\n", + " width: 120px;\n", + " background-color: black;\n", + " color: #fff;\n", + " text-align: center;\n", + " padding: 5px 0;\n", + " border-radius: 6px;\n", + "\n", + " /* Position the tooltip text - see examples below! */\n", + " position: absolute;\n", + " z-index: 1;\n", + " }\n", + "\n", + " .repr-cell {\n", + " padding-top: 20px;\n", + " }\n", + "\n", + " .text-bold {\n", + " font-weight: bold;\n", + " }\n", + "\n", + " .pr-8 {\n", + " padding-right: 8px;\n", + " }\n", + " .pt-8 {\n", + " padding-top: 8px;\n", + " }\n", + " .pl-8 {\n", + " padding-left: 8px;\n", + " }\n", + " .pb-8 {\n", + " padding-bottom: 8px;\n", + " }\n", + "\n", + " .py-25{\n", + " padding-top: 25px;\n", + " padding-bottom: 25px;\n", + " }\n", + "\n", + " .flex {\n", + " display: flex;\n", + " }\n", + "\n", + " .gap-10 {\n", + " gap: 10px;\n", + " }\n", + " .items-center{\n", + " align-items: center;\n", + " }\n", + "\n", + " .folder-icon {\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-input{\n", + " display: flex;\n", + " flex-direction: row;\n", + " align-items: center;\n", + " padding: 8px 12px;\n", + " width: 343px;\n", + " height: 24px;\n", + " /* Lt On Surface/Low */\n", + " background-color: var(--secondary-color);\n", + " border-radius: 30px;\n", + "\n", + " /* Lt On Surface/Highest */\n", + " color: var(--tertiary-color);\n", + " border:none;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 0;\n", + " flex-grow: 0;\n", + " }\n", + " .search-input:focus {\n", + " outline: none;\n", + " }\n", + " .search-input:focus::placeholder,\n", + " .search-input::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\n", + " color: var(--tertiary-color);\n", + " opacity: 1; /* Firefox */\n", + " }\n", + "\n", + " .search-button{\n", + " /* Search */\n", + " leading-trim: both;\n", + " text-edge: cap;\n", + " display: flex;\n", + " align-items: center;\n", + " text-align: center;\n", + "\n", + " /* Primary/On Light */\n", + " background-color: var(--button-color);\n", + " color: var(--tertiary-color);\n", + "\n", + " border-radius: 30px;\n", + " border-color: var(--secondary-color);\n", + " border-style: solid;\n", + " box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;\n", + " cursor: pointer;\n", + " /* Inside auto layout */\n", + " flex: none;\n", + " order: 1;\n", + " flex-grow: 0;\n", + " }\n", + "\n", + " .grid-table74686269b13844378b8b4c254710957c {\n", + " display:grid;\n", + " grid-template-columns: 1fr repeat(8, 1fr);\n", + " grid-template-rows: repeat(2, 1fr);\n", + " overflow-x: auto;\n", + " }\n", + "\n", + " .grid-std-cells {\n", + " grid-column: span 4;\n", + "\n", + " }\n", + " .grid-index-cells {\n", + " grid-column: span 1;\n", + " /* tmp fix to make left col stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color) !important;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-header {\n", + " /* Auto layout */\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " padding: 6px 4px;\n", + "\n", + " /* Lt On Surface/Surface */\n", + " /* Lt On Surface/High */\n", + " border: 1px solid #CFCDD6;\n", + " /* tmp fix to make header stand out (fix with font-family) */\n", + " font-weight: 600;\n", + " background-color: var(--secondary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .grid-row {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: flex-start;\n", + " padding: 6px 4px;\n", + " overflow: hidden;\n", + " border: 1px solid #CFCDD6;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .badge {\n", + " code-text;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .badge-blue {\n", + " badge;\n", + " background-color: #C2DEF0;\n", + " color: #1F567A;\n", + " }\n", + "\n", + " .badge-purple {\n", + " badge;\n", + " background-color: #C9CFE8;\n", + " color: #373B7B;\n", + " }\n", + "\n", + " .badge-green {\n", + " badge;\n", + "\n", + " /* Success/Container */\n", + " background-color: #D5F1D5;\n", + " color: #256B24;\n", + " }\n", + "\n", + " .badge-red {\n", + " badge;\n", + " background-color: #F2D9DE;\n", + " color: #9B2737;\n", + " }\n", + "\n", + " .badge-gray {\n", + " badge;\n", + " background-color: #ECEBEF;\n", + " color: #2E2B3B;\n", + " }\n", + " .paginationContainer{\n", + " width: 100%;\n", + " height: 30px;\n", + " display: flex;\n", + " justify-content: center;\n", + " gap: 8px;\n", + " padding: 5px;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .page{\n", + " color: black;\n", + " font-weight: bold;\n", + " color: var(--tertiary-color);\n", + " }\n", + " .page:hover {\n", + " color: #38bdf8;\n", + " cursor: pointer;\n", + " }\n", + " .clipboard:hover{\n", + " cursor: pointer;\n", + " color: var(--tertiary-color);\n", + " }\n", + "\n", + " .search-field {\n", + " display: flex;\n", + " align-items: center;\n", + " border-radius: 30px;\n", + " background-color: var(--secondary-color);\n", + " }\n", + "\n", + " .syft-dropdown {\n", + " margin: 5px;\n", + " margin-left: 5px;\n", + " position: relative;\n", + " display: inline-block;\n", + " text-align: center;\n", + " background-color: var(--button-color);\n", + " min-width: 100px;\n", + " padding: 2px;\n", + " border-radius: 30px;\n", + " }\n", + "\n", + " .syft-dropdown:hover {\n", + " cursor: pointer;\n", + " }\n", + " .syft-dropdown-content {\n", + " margin-top:26px;\n", + " display: none;\n", + " position: absolute;\n", + " min-width: 100px;\n", + " box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n", + " padding: 12px 6px;\n", + " z-index: 1;\n", + " background-color: var(--primary-color);\n", + " color: var(--tertiary-color);\n", + " }\n", + " .dd-options {\n", + " padding-top: 4px;\n", + " }\n", + " .dd-options:first-of-type {\n", + " padding-top: 0px;\n", + " }\n", + "\n", + " .dd-options:hover {\n", + " cursor: pointer;\n", + " background: #d1d5db;\n", + " }\n", + " .arrow {\n", + " border: solid black;\n", + " border-width: 0 3px 3px 0;\n", + " display: inline-block;\n", + " padding: 3px;\n", + " }\n", + " .down {\n", + " transform: rotate(45deg);\n", + " -webkit-transform: rotate(45deg);\n", + " }\n", + "</style>\n", + "\n", + "\n", + " <div style='margin-top:15px;'>\n", + " <div class='flex gap-10' style='align-items: center;'>\n", + " <div class='folder-icon'><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M28 6H4C3.73478 6 3.48043 6.10536 3.29289 6.29289C3.10536 6.48043 3 6.73478 3 7V24C3 24.5304 3.21071 25.0391 3.58579 25.4142C3.96086 25.7893 4.46957 26 5 26H27C27.5304 26 28.0391 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V7C29 6.73478 28.8946 6.48043 28.7071 6.29289C28.5196 6.10536 28.2652 6 28 6ZM5 14H10V18H5V14ZM12 14H27V18H12V14ZM27 8V12H5V8H27ZM5 20H10V24H5V20ZM27 24H12V20H27V24Z\" fill=\"#343330\"/></svg></div>\n", + " <div><p class='header-3'> List</p></div>\n", + " </div>\n", + "\n", + " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", + " <div class='pt-25 gap-10' style=\"display:flex;\">\n", + " <div class=\"search-field\">\n", + " <div id='search-menu74686269b13844378b8b4c254710957c' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content74686269b13844378b8b4c254710957c')\n", + " if (doc.style.display === 'block'){\n", + " doc.style.display = 'none'\n", + " } else {\n", + " doc.style.display = 'block'\n", + " }\n", + " }\">\n", + " <div id='search-dropdown-content74686269b13844378b8b4c254710957c' class='syft-dropdown-content'></div>\n", + " <script>\n", + " var element74686269b13844378b8b4c254710957c = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}, {\"id\": {\"value\": \"2b3cf90527824a41ab41ce6b7a2f4107\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size74686269b13844378b8b4c254710957c = 3\n", + " var pageIndex74686269b13844378b8b4c254710957c = 1\n", + " var paginatedElements74686269b13844378b8b4c254710957c = []\n", + " var activeFilter74686269b13844378b8b4c254710957c;\n", + "\n", + " function buildDropDownMenu(elements){\n", + " let init_filter;\n", + " let menu = document.getElementById('search-dropdown-content74686269b13844378b8b4c254710957c')\n", + " if (elements.length > 0) {\n", + " let sample = elements[0]\n", + " for (const attr in sample) {\n", + " if (typeof init_filter === 'undefined'){\n", + " init_filter = attr;\n", + " }\n", + " let content = document.createElement('div');\n", + " content.onclick = function(event) {\n", + " event.stopPropagation()\n", + " document.getElementById('menu-active-filter74686269b13844378b8b4c254710957c').innerText = attr;\n", + " activeFilter74686269b13844378b8b4c254710957c = attr;\n", + " document.getElementById(\n", + " 'search-dropdown-content74686269b13844378b8b4c254710957c'\n", + " ).style.display= 'none';\n", + " }\n", + " content.classList.add(\"dd-options\");\n", + " content.innerText = attr;\n", + " menu.appendChild(content);\n", + " }\n", + " } else {\n", + " let init_filter = '---'\n", + " }\n", + " let dropdown_field = document.getElementById('search-menu74686269b13844378b8b4c254710957c')\n", + " let span = document.createElement('span')\n", + " span.setAttribute('id', 'menu-active-filter74686269b13844378b8b4c254710957c')\n", + " span.innerText = init_filter\n", + " activeFilter74686269b13844378b8b4c254710957c = init_filter;\n", + " dropdown_field.appendChild(span)\n", + " }\n", + "\n", + " buildDropDownMenu(element74686269b13844378b8b4c254710957c)\n", + " </script>\n", + " </div>\n", + " <input id='searchKey74686269b13844378b8b4c254710957c' class='search-input' placeholder='Enter search here ...' />\n", + " </div>\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid74686269b13844378b8b4c254710957c(element74686269b13844378b8b4c254710957c)\">\n", + " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", + " <span class='pl-8'>Search</span>\n", + " </button>\n", + " </div>\n", + "\n", + " <div><h4 id='total74686269b13844378b8b4c254710957c'>0</h4></div>\n", + " </div>\n", + " <div id='table74686269b13844378b8b4c254710957c' class='grid-table74686269b13844378b8b4c254710957c' style='margin-top: 25px;'>\n", + " <script>\n", + " function paginate74686269b13844378b8b4c254710957c(arr, size) {\n", + " const res = [];\n", + " for (let i = 0; i < arr.length; i += size) {\n", + " const chunk = arr.slice(i, i + size);\n", + " res.push(chunk);\n", + " }\n", + "\n", + " return res;\n", + " }\n", + "\n", + " function searchGrid74686269b13844378b8b4c254710957c(elements){\n", + " let searchKey = document.getElementById('searchKey74686269b13844378b8b4c254710957c').value;\n", + " let result;\n", + " if (searchKey === ''){\n", + " result = elements;\n", + " } else {\n", + " result = elements.filter((element) => {\n", + " let property = element[activeFilter74686269b13844378b8b4c254710957c]\n", + " if (typeof property === 'object' && property !== null){\n", + " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (typeof property === 'string' ) {\n", + " return element[activeFilter74686269b13844378b8b4c254710957c].toLowerCase().includes(searchKey.toLowerCase());\n", + " } else if (property !== null ) {\n", + " return element[activeFilter74686269b13844378b8b4c254710957c].toString() === searchKey;\n", + " } else {\n", + " return element[activeFilter74686269b13844378b8b4c254710957c] === searchKey;\n", + " }\n", + " } );\n", + " }\n", + " resetById74686269b13844378b8b4c254710957c('table74686269b13844378b8b4c254710957c');\n", + " resetById74686269b13844378b8b4c254710957c('pag74686269b13844378b8b4c254710957c');\n", + " result = paginate74686269b13844378b8b4c254710957c(result, page_size74686269b13844378b8b4c254710957c)\n", + " paginatedElements74686269b13844378b8b4c254710957c = result\n", + " buildGrid74686269b13844378b8b4c254710957c(result,pageIndex74686269b13844378b8b4c254710957c);\n", + " buildPaginationContainer74686269b13844378b8b4c254710957c(result);\n", + " }\n", + "\n", + " function resetById74686269b13844378b8b4c254710957c(id){\n", + " let element = document.getElementById(id);\n", + " while (element.firstChild) {\n", + " element.removeChild(element.firstChild);\n", + " }\n", + " }\n", + "\n", + " function buildGrid74686269b13844378b8b4c254710957c(items, pageIndex){\n", + " let headers = Object.keys(element74686269b13844378b8b4c254710957c[0]);\n", + "\n", + " let grid = document.getElementById(\"table74686269b13844378b8b4c254710957c\");\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-index-cells');\n", + " grid.appendChild(div);\n", + " headers.forEach((title) =>{\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('grid-header', 'grid-std-cells');\n", + " div.innerText = title;\n", + "\n", + " grid.appendChild(div);\n", + " });\n", + "\n", + " let page = items[pageIndex -1]\n", + " if (page !== 'undefine'){\n", + " let table_index74686269b13844378b8b4c254710957c = ((pageIndex - 1) * page_size74686269b13844378b8b4c254710957c)\n", + " page.forEach((item) => {\n", + " let grid = document.getElementById(\"table74686269b13844378b8b4c254710957c\");\n", + " // Add new index value in index cells\n", + " let divIndex = document.createElement(\"div\");\n", + " divIndex.classList.add('grid-row', 'grid-index-cells');\n", + " divIndex.innerText = table_index74686269b13844378b8b4c254710957c;\n", + " grid.appendChild(divIndex);\n", + "\n", + " // Iterate over the actual obj\n", + " for (const attr in item) {\n", + " let div = document.createElement(\"div\");\n", + " if (typeof item[attr] === 'object'\n", + " && item[attr] !== null\n", + " && item[attr].hasOwnProperty('type')) {\n", + " if (item[attr].type.includes('badge')){\n", + " let badge_div = document.createElement(\"div\");\n", + " badge_div.classList.add('badge',item[attr].type)\n", + " badge_div.innerText = String(item[attr].value).toUpperCase();\n", + " div.appendChild(badge_div);\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " } else if (item[attr].type === \"clipboard\") {\n", + " div.classList.add('grid-row','grid-std-cells');\n", + "\n", + " // Create clipboard div\n", + " let clipboard_div = document.createElement('div');\n", + " clipboard_div.style.display= 'flex';\n", + " clipboard_div.classList.add(\"gap-10\")\n", + " clipboard_div.style.justifyContent = \"space-between\";\n", + "\n", + " let id_text = document.createElement('div');\n", + " if (item[attr].value == \"None\"){\n", + " id_text.innerText = \"None\";\n", + " }\n", + " else{\n", + " id_text.innerText = item[attr].value.slice(0,5) + \"...\";\n", + " }\n", + "\n", + " clipboard_div.appendChild(id_text);\n", + " let clipboard_img = document.createElement('div');\n", + " clipboard_img.classList.add(\"clipboard\")\n", + " div.onclick = function() {\n", + " navigator.clipboard.writeText(item[attr].value);\n", + " };\n", + " clipboard_img.innerHTML = \"<svg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M7.4375 0.25H2.4375C2.35462 0.25 2.27513 0.282924 2.21653 0.341529C2.15792 0.400134 2.125 0.47962 2.125 0.5625V2.125H0.5625C0.47962 2.125 0.400134 2.15792 0.341529 2.21653C0.282924 2.27513 0.25 2.35462 0.25 2.4375V7.4375C0.25 7.52038 0.282924 7.59987 0.341529 7.65847C0.400134 7.71708 0.47962 7.75 0.5625 7.75H5.5625C5.64538 7.75 5.72487 7.71708 5.78347 7.65847C5.84208 7.59987 5.875 7.52038 5.875 7.4375V5.875H7.4375C7.52038 5.875 7.59987 5.84208 7.65847 5.78347C7.71708 5.72487 7.75 5.64538 7.75 5.5625V0.5625C7.75 0.47962 7.71708 0.400134 7.65847 0.341529C7.59987 0.282924 7.52038 0.25 7.4375 0.25ZM5.25 7.125H0.875V2.75H5.25V7.125ZM7.125 5.25H5.875V2.4375C5.875 2.35462 5.84208 2.27513 5.78347 2.21653C5.72487 2.15792 5.64538 2.125 5.5625 2.125H2.75V0.875H7.125V5.25Z' fill='#464158'/></svg>\";\n", + "\n", + " clipboard_div.appendChild(clipboard_img);\n", + " div.appendChild(clipboard_div);\n", + " }\n", + " } else{\n", + " div.classList.add('grid-row','grid-std-cells');\n", + " if (item[attr] == null) {\n", + " text = ' '\n", + " } else {\n", + " text = String(item[attr])\n", + " }\n", + " if (text.length > 150){\n", + " text = text.slice(0,150) + \"...\";\n", + " }\n", + " text = text.replaceAll(\"\\n\", \"</br>\");\n", + " div.innerHTML = text;\n", + " }\n", + " grid.appendChild(div);\n", + " }\n", + " table_index74686269b13844378b8b4c254710957c = table_index74686269b13844378b8b4c254710957c + 1;\n", + " })\n", + " }\n", + " }\n", + " paginatedElements74686269b13844378b8b4c254710957c = paginate74686269b13844378b8b4c254710957c(element74686269b13844378b8b4c254710957c, page_size74686269b13844378b8b4c254710957c)\n", + " buildGrid74686269b13844378b8b4c254710957c(paginatedElements74686269b13844378b8b4c254710957c, 1)\n", + " document.getElementById('total74686269b13844378b8b4c254710957c').innerText = \"Total: \" + element74686269b13844378b8b4c254710957c.length\n", + " </script>\n", + " </div>\n", + " <div id='pag74686269b13844378b8b4c254710957c' class='paginationContainer'>\n", + " <script>\n", + " function buildPaginationContainer74686269b13844378b8b4c254710957c(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag74686269b13844378b8b4c254710957c\");\n", + " for (let i = 0; i < paginatedElements.length; i++) {\n", + " let div = document.createElement(\"div\");\n", + " div.classList.add('page');\n", + " if(i===0) div.style.color = \"gray\";\n", + " else div.style.color = 'var(--tertiary-color, \"gray\")';\n", + " div.onclick = function(event) {\n", + " let indexes = document.getElementsByClassName('page');\n", + " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", + " event.target.style.color = \"gray\";\n", + " setPage74686269b13844378b8b4c254710957c(i + 1);\n", + " };\n", + " div.innerText = i + 1;\n", + " pageContainer.appendChild(div);\n", + " }\n", + " }\n", + "\n", + " function setPage74686269b13844378b8b4c254710957c(newPage){\n", + " pageIndex = newPage\n", + " resetById74686269b13844378b8b4c254710957c('table74686269b13844378b8b4c254710957c')\n", + " buildGrid74686269b13844378b8b4c254710957c(paginatedElements74686269b13844378b8b4c254710957c, pageIndex)\n", + " }\n", + "\n", + " buildPaginationContainer74686269b13844378b8b4c254710957c(paginatedElements74686269b13844378b8b4c254710957c)\n", + " </script>\n", + " </div>\n", + " </div>\n", + " </div>\n", + " </div>\n" + ], + "text/plain": [ + "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}),\n", + " UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node_low.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "2b845ec8", + "metadata": {}, + "outputs": [], + "source": [ + "# we keep both events\n", + "assert len(node_high.event_log.log) ==3 and len(node_low.event_log.log) == 3" + ] + }, + { + "cell_type": "markdown", + "id": "c27219ec", + "metadata": {}, + "source": [ + "# Sync 3: both update same property to different value" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "286030cf", + "metadata": {}, + "outputs": [], + "source": [ + "dataset = list(node_high.store.values())[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c3030a8", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "92731b81", + "metadata": {}, + "outputs": [], + "source": [ + "# node_low.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "97608e6b", + "metadata": {}, + "outputs": [], + "source": [ + "if False:\n", + " node_high.update_dataset(dataset.id, {\"description\": \"b\"})\n", + "\n", + " node_high.event_log.log\n", + "\n", + " node_low.update_dataset(dataset.id, {\"description\": \"c\"})\n", + "\n", + " node_high.event_log.log\n", + " \n", + " sync(node_high, node_low)\n", + "\n", + " dataset_high = list(node_high.store.values())[0]\n", + " dataset_low = list(node_low.store.values())[0]\n", + "\n", + " assert dataset_high.description == dataset_low.description\n", + "\n", + " node_high.event_log.log\n", + "\n", + " assert len(node_high.event_log.log) ==4 and len(node_low.event_log.log) ==4" + ] + }, + { + "cell_type": "markdown", + "id": "101aaf6f", + "metadata": {}, + "source": [ + "# UserCode" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "14d872b5", + "metadata": {}, + "outputs": [], + "source": [ + "user_code_id = node_low.create_usercode(\"print('a')\")" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "6298def6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'), UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), CreateUserCodeEvent(id=<UID: 106bb60c0736406fa5befd8f6acf39eb>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 926518), object_id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=UserCode(id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=\"print('a')\", approved=False))]\n" + ] + } + ], + "source": [ + "sync(node_low, node_high)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "51899b83", + "metadata": {}, + "outputs": [], + "source": [ + "node_low.approve_usercode(user_code_id, True)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "e12b19c6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'), UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), CreateUserCodeEvent(id=<UID: 106bb60c0736406fa5befd8f6acf39eb>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 926518), object_id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=UserCode(id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=\"print('a')\", approved=True)), ApproveUserCodeEvent(id=<UID: 5e98b98bd6a84da3b794403b16b6564a>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 936117), code_id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, value=True)]\n" + ] + } + ], + "source": [ + "# TODO: is this result valid?\n", + "sync(node_low, node_high)" + ] + }, + { + "cell_type": "markdown", + "id": "8fbdf5bf", + "metadata": {}, + "source": [ + "# Scenario list" + ] + }, + { + "cell_type": "markdown", + "id": "6dc3e422", + "metadata": {}, + "source": [ + "\n", + "- create a dataset and sync\n", + " - should create the dataset object on both sides\n", + "- both update the same property (conflict)\n", + "- both update a different property (no conflict)\n", + "- code approval should have same state\n", + "- code execution should be approved" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f95403d9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": { + "height": "calc(100% - 180px)", + "left": "10px", + "top": "150px", + "width": "358.398px" + }, "toc_section_display": true, "toc_window_display": true } From 7446bda367e5ce99f68b957eb61f8eaedbbd6b52 Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Wed, 24 Jan 2024 13:34:43 +0100 Subject: [PATCH 4/9] add event code approval handling + some seaweed stuff --- .../append-only-event-log-prototype.ipynb | 756 +-- notebooks/helm/direct_azure.ipynb | 5433 ++++++++++++++++- notebooks/helm/helm-syft.ipynb | 2 +- packages/grid/default.env | 2 +- packages/grid/seaweedfs/seaweedfs.dockerfile | 6 +- packages/grid/seaweedfs/start.sh | 2 +- .../src/syft/store/blob_storage/seaweedfs.py | 2 +- 7 files changed, 5837 insertions(+), 366 deletions(-) diff --git a/notebooks/helm/append-only-event-log-prototype.ipynb b/notebooks/helm/append-only-event-log-prototype.ipynb index 902f6a544e5..7bd497e156b 100644 --- a/notebooks/helm/append-only-event-log-prototype.ipynb +++ b/notebooks/helm/append-only-event-log-prototype.ipynb @@ -5,15 +5,7 @@ "execution_count": 1, "id": "fb5821ba", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "kj/filesystem-disk-unix.c++:1703: warning: PWD environment variable doesn't match current directory; pwd = /Users/koen/workspace/pysyft/notebooks\n" - ] - } - ], + "outputs": [], "source": [ "# stdlib\n", "from datetime import datetime\n", @@ -96,7 +88,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "db4dcff1", + "id": "50df5253", "metadata": {}, "outputs": [], "source": [ @@ -243,7 +235,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "6e7d0062", + "id": "45454917", "metadata": {}, "outputs": [], "source": [ @@ -262,7 +254,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "3e9fec5c", + "id": "74a14171", "metadata": {}, "outputs": [], "source": [ @@ -397,6 +389,14 @@ "In the case of update, if only non overlapping sets of properties were updated its not a merge conflict, as long as those are not code approval mutations." ] }, + { + "cell_type": "markdown", + "id": "aa23dd3e", + "metadata": {}, + "source": [ + "# MergeState" + ] + }, { "cell_type": "code", "execution_count": 18, @@ -494,6 +494,14 @@ " " ] }, + { + "cell_type": "markdown", + "id": "70fac57b", + "metadata": {}, + "source": [ + "# Sync" + ] + }, { "cell_type": "code", "execution_count": 19, @@ -771,7 +779,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-table7d4a31735a3f4329b24ea19722ee1b14 {\n", + " .grid-tablef58dd1cd4e674e699a54888a3f1592fe {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(4, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -943,25 +951,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menu7d4a31735a3f4329b24ea19722ee1b14' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14')\n", + " <div id='search-menuf58dd1cd4e674e699a54888a3f1592fe' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-contentf58dd1cd4e674e699a54888a3f1592fe')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-contentf58dd1cd4e674e699a54888a3f1592fe' class='syft-dropdown-content'></div>\n", " <script>\n", - " var element7d4a31735a3f4329b24ea19722ee1b14 = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}}]\n", - " var page_size7d4a31735a3f4329b24ea19722ee1b14 = 1\n", - " var pageIndex7d4a31735a3f4329b24ea19722ee1b14 = 1\n", - " var paginatedElements7d4a31735a3f4329b24ea19722ee1b14 = []\n", - " var activeFilter7d4a31735a3f4329b24ea19722ee1b14;\n", + " var elementf58dd1cd4e674e699a54888a3f1592fe = [{\"id\": {\"value\": \"82f8e63aa515456483f6de9cf6eda223\", \"type\": \"clipboard\"}}]\n", + " var page_sizef58dd1cd4e674e699a54888a3f1592fe = 1\n", + " var pageIndexf58dd1cd4e674e699a54888a3f1592fe = 1\n", + " var paginatedElementsf58dd1cd4e674e699a54888a3f1592fe = []\n", + " var activeFilterf58dd1cd4e674e699a54888a3f1592fe;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14')\n", + " let menu = document.getElementById('search-dropdown-contentf58dd1cd4e674e699a54888a3f1592fe')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -971,10 +979,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filter7d4a31735a3f4329b24ea19722ee1b14').innerText = attr;\n", - " activeFilter7d4a31735a3f4329b24ea19722ee1b14 = attr;\n", + " document.getElementById('menu-active-filterf58dd1cd4e674e699a54888a3f1592fe').innerText = attr;\n", + " activeFilterf58dd1cd4e674e699a54888a3f1592fe = attr;\n", " document.getElementById(\n", - " 'search-dropdown-content7d4a31735a3f4329b24ea19722ee1b14'\n", + " 'search-dropdown-contentf58dd1cd4e674e699a54888a3f1592fe'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -984,30 +992,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menu7d4a31735a3f4329b24ea19722ee1b14')\n", + " let dropdown_field = document.getElementById('search-menuf58dd1cd4e674e699a54888a3f1592fe')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filter7d4a31735a3f4329b24ea19722ee1b14')\n", + " span.setAttribute('id', 'menu-active-filterf58dd1cd4e674e699a54888a3f1592fe')\n", " span.innerText = init_filter\n", - " activeFilter7d4a31735a3f4329b24ea19722ee1b14 = init_filter;\n", + " activeFilterf58dd1cd4e674e699a54888a3f1592fe = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(element7d4a31735a3f4329b24ea19722ee1b14)\n", + " buildDropDownMenu(elementf58dd1cd4e674e699a54888a3f1592fe)\n", " </script>\n", " </div>\n", - " <input id='searchKey7d4a31735a3f4329b24ea19722ee1b14' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKeyf58dd1cd4e674e699a54888a3f1592fe' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGrid7d4a31735a3f4329b24ea19722ee1b14(element7d4a31735a3f4329b24ea19722ee1b14)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGridf58dd1cd4e674e699a54888a3f1592fe(elementf58dd1cd4e674e699a54888a3f1592fe)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='total7d4a31735a3f4329b24ea19722ee1b14'>0</h4></div>\n", + " <div><h4 id='totalf58dd1cd4e674e699a54888a3f1592fe'>0</h4></div>\n", " </div>\n", - " <div id='table7d4a31735a3f4329b24ea19722ee1b14' class='grid-table7d4a31735a3f4329b24ea19722ee1b14' style='margin-top: 25px;'>\n", + " <div id='tablef58dd1cd4e674e699a54888a3f1592fe' class='grid-tablef58dd1cd4e674e699a54888a3f1592fe' style='margin-top: 25px;'>\n", " <script>\n", - " function paginate7d4a31735a3f4329b24ea19722ee1b14(arr, size) {\n", + " function paginatef58dd1cd4e674e699a54888a3f1592fe(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -1017,44 +1025,44 @@ " return res;\n", " }\n", "\n", - " function searchGrid7d4a31735a3f4329b24ea19722ee1b14(elements){\n", - " let searchKey = document.getElementById('searchKey7d4a31735a3f4329b24ea19722ee1b14').value;\n", + " function searchGridf58dd1cd4e674e699a54888a3f1592fe(elements){\n", + " let searchKey = document.getElementById('searchKeyf58dd1cd4e674e699a54888a3f1592fe').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilter7d4a31735a3f4329b24ea19722ee1b14]\n", + " let property = element[activeFilterf58dd1cd4e674e699a54888a3f1592fe]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilter7d4a31735a3f4329b24ea19722ee1b14].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilterf58dd1cd4e674e699a54888a3f1592fe].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilter7d4a31735a3f4329b24ea19722ee1b14].toString() === searchKey;\n", + " return element[activeFilterf58dd1cd4e674e699a54888a3f1592fe].toString() === searchKey;\n", " } else {\n", - " return element[activeFilter7d4a31735a3f4329b24ea19722ee1b14] === searchKey;\n", + " return element[activeFilterf58dd1cd4e674e699a54888a3f1592fe] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetById7d4a31735a3f4329b24ea19722ee1b14('table7d4a31735a3f4329b24ea19722ee1b14');\n", - " resetById7d4a31735a3f4329b24ea19722ee1b14('pag7d4a31735a3f4329b24ea19722ee1b14');\n", - " result = paginate7d4a31735a3f4329b24ea19722ee1b14(result, page_size7d4a31735a3f4329b24ea19722ee1b14)\n", - " paginatedElements7d4a31735a3f4329b24ea19722ee1b14 = result\n", - " buildGrid7d4a31735a3f4329b24ea19722ee1b14(result,pageIndex7d4a31735a3f4329b24ea19722ee1b14);\n", - " buildPaginationContainer7d4a31735a3f4329b24ea19722ee1b14(result);\n", + " resetByIdf58dd1cd4e674e699a54888a3f1592fe('tablef58dd1cd4e674e699a54888a3f1592fe');\n", + " resetByIdf58dd1cd4e674e699a54888a3f1592fe('pagf58dd1cd4e674e699a54888a3f1592fe');\n", + " result = paginatef58dd1cd4e674e699a54888a3f1592fe(result, page_sizef58dd1cd4e674e699a54888a3f1592fe)\n", + " paginatedElementsf58dd1cd4e674e699a54888a3f1592fe = result\n", + " buildGridf58dd1cd4e674e699a54888a3f1592fe(result,pageIndexf58dd1cd4e674e699a54888a3f1592fe);\n", + " buildPaginationContainerf58dd1cd4e674e699a54888a3f1592fe(result);\n", " }\n", "\n", - " function resetById7d4a31735a3f4329b24ea19722ee1b14(id){\n", + " function resetByIdf58dd1cd4e674e699a54888a3f1592fe(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGrid7d4a31735a3f4329b24ea19722ee1b14(items, pageIndex){\n", - " let headers = Object.keys(element7d4a31735a3f4329b24ea19722ee1b14[0]);\n", + " function buildGridf58dd1cd4e674e699a54888a3f1592fe(items, pageIndex){\n", + " let headers = Object.keys(elementf58dd1cd4e674e699a54888a3f1592fe[0]);\n", "\n", - " let grid = document.getElementById(\"table7d4a31735a3f4329b24ea19722ee1b14\");\n", + " let grid = document.getElementById(\"tablef58dd1cd4e674e699a54888a3f1592fe\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -1068,13 +1076,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_index7d4a31735a3f4329b24ea19722ee1b14 = ((pageIndex - 1) * page_size7d4a31735a3f4329b24ea19722ee1b14)\n", + " let table_indexf58dd1cd4e674e699a54888a3f1592fe = ((pageIndex - 1) * page_sizef58dd1cd4e674e699a54888a3f1592fe)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"table7d4a31735a3f4329b24ea19722ee1b14\");\n", + " let grid = document.getElementById(\"tablef58dd1cd4e674e699a54888a3f1592fe\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_index7d4a31735a3f4329b24ea19722ee1b14;\n", + " divIndex.innerText = table_indexf58dd1cd4e674e699a54888a3f1592fe;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -1132,19 +1140,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_index7d4a31735a3f4329b24ea19722ee1b14 = table_index7d4a31735a3f4329b24ea19722ee1b14 + 1;\n", + " table_indexf58dd1cd4e674e699a54888a3f1592fe = table_indexf58dd1cd4e674e699a54888a3f1592fe + 1;\n", " })\n", " }\n", " }\n", - " paginatedElements7d4a31735a3f4329b24ea19722ee1b14 = paginate7d4a31735a3f4329b24ea19722ee1b14(element7d4a31735a3f4329b24ea19722ee1b14, page_size7d4a31735a3f4329b24ea19722ee1b14)\n", - " buildGrid7d4a31735a3f4329b24ea19722ee1b14(paginatedElements7d4a31735a3f4329b24ea19722ee1b14, 1)\n", - " document.getElementById('total7d4a31735a3f4329b24ea19722ee1b14').innerText = \"Total: \" + element7d4a31735a3f4329b24ea19722ee1b14.length\n", + " paginatedElementsf58dd1cd4e674e699a54888a3f1592fe = paginatef58dd1cd4e674e699a54888a3f1592fe(elementf58dd1cd4e674e699a54888a3f1592fe, page_sizef58dd1cd4e674e699a54888a3f1592fe)\n", + " buildGridf58dd1cd4e674e699a54888a3f1592fe(paginatedElementsf58dd1cd4e674e699a54888a3f1592fe, 1)\n", + " document.getElementById('totalf58dd1cd4e674e699a54888a3f1592fe').innerText = \"Total: \" + elementf58dd1cd4e674e699a54888a3f1592fe.length\n", " </script>\n", " </div>\n", - " <div id='pag7d4a31735a3f4329b24ea19722ee1b14' class='paginationContainer'>\n", + " <div id='pagf58dd1cd4e674e699a54888a3f1592fe' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainer7d4a31735a3f4329b24ea19722ee1b14(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pag7d4a31735a3f4329b24ea19722ee1b14\");\n", + " function buildPaginationContainerf58dd1cd4e674e699a54888a3f1592fe(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pagf58dd1cd4e674e699a54888a3f1592fe\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -1154,20 +1162,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPage7d4a31735a3f4329b24ea19722ee1b14(i + 1);\n", + " setPagef58dd1cd4e674e699a54888a3f1592fe(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPage7d4a31735a3f4329b24ea19722ee1b14(newPage){\n", + " function setPagef58dd1cd4e674e699a54888a3f1592fe(newPage){\n", " pageIndex = newPage\n", - " resetById7d4a31735a3f4329b24ea19722ee1b14('table7d4a31735a3f4329b24ea19722ee1b14')\n", - " buildGrid7d4a31735a3f4329b24ea19722ee1b14(paginatedElements7d4a31735a3f4329b24ea19722ee1b14, pageIndex)\n", + " resetByIdf58dd1cd4e674e699a54888a3f1592fe('tablef58dd1cd4e674e699a54888a3f1592fe')\n", + " buildGridf58dd1cd4e674e699a54888a3f1592fe(paginatedElementsf58dd1cd4e674e699a54888a3f1592fe, pageIndex)\n", " }\n", "\n", - " buildPaginationContainer7d4a31735a3f4329b24ea19722ee1b14(paginatedElements7d4a31735a3f4329b24ea19722ee1b14)\n", + " buildPaginationContainerf58dd1cd4e674e699a54888a3f1592fe(paginatedElementsf58dd1cd4e674e699a54888a3f1592fe)\n", " </script>\n", " </div>\n", " </div>\n", @@ -1175,7 +1183,7 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla')]" + "[CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla')]" ] }, "execution_count": 22, @@ -1197,7 +1205,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla')]\n" + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla')]\n" ] } ], @@ -1417,7 +1425,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-table4536ada1bdb848ffbaa910afe47b946d {\n", + " .grid-tableb012a2683aa4408d8ced44772986903f {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(4, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -1589,25 +1597,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menu4536ada1bdb848ffbaa910afe47b946d' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-content4536ada1bdb848ffbaa910afe47b946d')\n", + " <div id='search-menub012a2683aa4408d8ced44772986903f' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-contentb012a2683aa4408d8ced44772986903f')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-content4536ada1bdb848ffbaa910afe47b946d' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-contentb012a2683aa4408d8ced44772986903f' class='syft-dropdown-content'></div>\n", " <script>\n", - " var element4536ada1bdb848ffbaa910afe47b946d = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}}]\n", - " var page_size4536ada1bdb848ffbaa910afe47b946d = 1\n", - " var pageIndex4536ada1bdb848ffbaa910afe47b946d = 1\n", - " var paginatedElements4536ada1bdb848ffbaa910afe47b946d = []\n", - " var activeFilter4536ada1bdb848ffbaa910afe47b946d;\n", + " var elementb012a2683aa4408d8ced44772986903f = [{\"id\": {\"value\": \"82f8e63aa515456483f6de9cf6eda223\", \"type\": \"clipboard\"}}]\n", + " var page_sizeb012a2683aa4408d8ced44772986903f = 1\n", + " var pageIndexb012a2683aa4408d8ced44772986903f = 1\n", + " var paginatedElementsb012a2683aa4408d8ced44772986903f = []\n", + " var activeFilterb012a2683aa4408d8ced44772986903f;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-content4536ada1bdb848ffbaa910afe47b946d')\n", + " let menu = document.getElementById('search-dropdown-contentb012a2683aa4408d8ced44772986903f')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -1617,10 +1625,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filter4536ada1bdb848ffbaa910afe47b946d').innerText = attr;\n", - " activeFilter4536ada1bdb848ffbaa910afe47b946d = attr;\n", + " document.getElementById('menu-active-filterb012a2683aa4408d8ced44772986903f').innerText = attr;\n", + " activeFilterb012a2683aa4408d8ced44772986903f = attr;\n", " document.getElementById(\n", - " 'search-dropdown-content4536ada1bdb848ffbaa910afe47b946d'\n", + " 'search-dropdown-contentb012a2683aa4408d8ced44772986903f'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -1630,30 +1638,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menu4536ada1bdb848ffbaa910afe47b946d')\n", + " let dropdown_field = document.getElementById('search-menub012a2683aa4408d8ced44772986903f')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filter4536ada1bdb848ffbaa910afe47b946d')\n", + " span.setAttribute('id', 'menu-active-filterb012a2683aa4408d8ced44772986903f')\n", " span.innerText = init_filter\n", - " activeFilter4536ada1bdb848ffbaa910afe47b946d = init_filter;\n", + " activeFilterb012a2683aa4408d8ced44772986903f = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(element4536ada1bdb848ffbaa910afe47b946d)\n", + " buildDropDownMenu(elementb012a2683aa4408d8ced44772986903f)\n", " </script>\n", " </div>\n", - " <input id='searchKey4536ada1bdb848ffbaa910afe47b946d' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKeyb012a2683aa4408d8ced44772986903f' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGrid4536ada1bdb848ffbaa910afe47b946d(element4536ada1bdb848ffbaa910afe47b946d)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGridb012a2683aa4408d8ced44772986903f(elementb012a2683aa4408d8ced44772986903f)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='total4536ada1bdb848ffbaa910afe47b946d'>0</h4></div>\n", + " <div><h4 id='totalb012a2683aa4408d8ced44772986903f'>0</h4></div>\n", " </div>\n", - " <div id='table4536ada1bdb848ffbaa910afe47b946d' class='grid-table4536ada1bdb848ffbaa910afe47b946d' style='margin-top: 25px;'>\n", + " <div id='tableb012a2683aa4408d8ced44772986903f' class='grid-tableb012a2683aa4408d8ced44772986903f' style='margin-top: 25px;'>\n", " <script>\n", - " function paginate4536ada1bdb848ffbaa910afe47b946d(arr, size) {\n", + " function paginateb012a2683aa4408d8ced44772986903f(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -1663,44 +1671,44 @@ " return res;\n", " }\n", "\n", - " function searchGrid4536ada1bdb848ffbaa910afe47b946d(elements){\n", - " let searchKey = document.getElementById('searchKey4536ada1bdb848ffbaa910afe47b946d').value;\n", + " function searchGridb012a2683aa4408d8ced44772986903f(elements){\n", + " let searchKey = document.getElementById('searchKeyb012a2683aa4408d8ced44772986903f').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilter4536ada1bdb848ffbaa910afe47b946d]\n", + " let property = element[activeFilterb012a2683aa4408d8ced44772986903f]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilter4536ada1bdb848ffbaa910afe47b946d].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilterb012a2683aa4408d8ced44772986903f].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilter4536ada1bdb848ffbaa910afe47b946d].toString() === searchKey;\n", + " return element[activeFilterb012a2683aa4408d8ced44772986903f].toString() === searchKey;\n", " } else {\n", - " return element[activeFilter4536ada1bdb848ffbaa910afe47b946d] === searchKey;\n", + " return element[activeFilterb012a2683aa4408d8ced44772986903f] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetById4536ada1bdb848ffbaa910afe47b946d('table4536ada1bdb848ffbaa910afe47b946d');\n", - " resetById4536ada1bdb848ffbaa910afe47b946d('pag4536ada1bdb848ffbaa910afe47b946d');\n", - " result = paginate4536ada1bdb848ffbaa910afe47b946d(result, page_size4536ada1bdb848ffbaa910afe47b946d)\n", - " paginatedElements4536ada1bdb848ffbaa910afe47b946d = result\n", - " buildGrid4536ada1bdb848ffbaa910afe47b946d(result,pageIndex4536ada1bdb848ffbaa910afe47b946d);\n", - " buildPaginationContainer4536ada1bdb848ffbaa910afe47b946d(result);\n", + " resetByIdb012a2683aa4408d8ced44772986903f('tableb012a2683aa4408d8ced44772986903f');\n", + " resetByIdb012a2683aa4408d8ced44772986903f('pagb012a2683aa4408d8ced44772986903f');\n", + " result = paginateb012a2683aa4408d8ced44772986903f(result, page_sizeb012a2683aa4408d8ced44772986903f)\n", + " paginatedElementsb012a2683aa4408d8ced44772986903f = result\n", + " buildGridb012a2683aa4408d8ced44772986903f(result,pageIndexb012a2683aa4408d8ced44772986903f);\n", + " buildPaginationContainerb012a2683aa4408d8ced44772986903f(result);\n", " }\n", "\n", - " function resetById4536ada1bdb848ffbaa910afe47b946d(id){\n", + " function resetByIdb012a2683aa4408d8ced44772986903f(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGrid4536ada1bdb848ffbaa910afe47b946d(items, pageIndex){\n", - " let headers = Object.keys(element4536ada1bdb848ffbaa910afe47b946d[0]);\n", + " function buildGridb012a2683aa4408d8ced44772986903f(items, pageIndex){\n", + " let headers = Object.keys(elementb012a2683aa4408d8ced44772986903f[0]);\n", "\n", - " let grid = document.getElementById(\"table4536ada1bdb848ffbaa910afe47b946d\");\n", + " let grid = document.getElementById(\"tableb012a2683aa4408d8ced44772986903f\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -1714,13 +1722,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_index4536ada1bdb848ffbaa910afe47b946d = ((pageIndex - 1) * page_size4536ada1bdb848ffbaa910afe47b946d)\n", + " let table_indexb012a2683aa4408d8ced44772986903f = ((pageIndex - 1) * page_sizeb012a2683aa4408d8ced44772986903f)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"table4536ada1bdb848ffbaa910afe47b946d\");\n", + " let grid = document.getElementById(\"tableb012a2683aa4408d8ced44772986903f\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_index4536ada1bdb848ffbaa910afe47b946d;\n", + " divIndex.innerText = table_indexb012a2683aa4408d8ced44772986903f;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -1778,19 +1786,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_index4536ada1bdb848ffbaa910afe47b946d = table_index4536ada1bdb848ffbaa910afe47b946d + 1;\n", + " table_indexb012a2683aa4408d8ced44772986903f = table_indexb012a2683aa4408d8ced44772986903f + 1;\n", " })\n", " }\n", " }\n", - " paginatedElements4536ada1bdb848ffbaa910afe47b946d = paginate4536ada1bdb848ffbaa910afe47b946d(element4536ada1bdb848ffbaa910afe47b946d, page_size4536ada1bdb848ffbaa910afe47b946d)\n", - " buildGrid4536ada1bdb848ffbaa910afe47b946d(paginatedElements4536ada1bdb848ffbaa910afe47b946d, 1)\n", - " document.getElementById('total4536ada1bdb848ffbaa910afe47b946d').innerText = \"Total: \" + element4536ada1bdb848ffbaa910afe47b946d.length\n", + " paginatedElementsb012a2683aa4408d8ced44772986903f = paginateb012a2683aa4408d8ced44772986903f(elementb012a2683aa4408d8ced44772986903f, page_sizeb012a2683aa4408d8ced44772986903f)\n", + " buildGridb012a2683aa4408d8ced44772986903f(paginatedElementsb012a2683aa4408d8ced44772986903f, 1)\n", + " document.getElementById('totalb012a2683aa4408d8ced44772986903f').innerText = \"Total: \" + elementb012a2683aa4408d8ced44772986903f.length\n", " </script>\n", " </div>\n", - " <div id='pag4536ada1bdb848ffbaa910afe47b946d' class='paginationContainer'>\n", + " <div id='pagb012a2683aa4408d8ced44772986903f' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainer4536ada1bdb848ffbaa910afe47b946d(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pag4536ada1bdb848ffbaa910afe47b946d\");\n", + " function buildPaginationContainerb012a2683aa4408d8ced44772986903f(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pagb012a2683aa4408d8ced44772986903f\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -1800,20 +1808,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPage4536ada1bdb848ffbaa910afe47b946d(i + 1);\n", + " setPageb012a2683aa4408d8ced44772986903f(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPage4536ada1bdb848ffbaa910afe47b946d(newPage){\n", + " function setPageb012a2683aa4408d8ced44772986903f(newPage){\n", " pageIndex = newPage\n", - " resetById4536ada1bdb848ffbaa910afe47b946d('table4536ada1bdb848ffbaa910afe47b946d')\n", - " buildGrid4536ada1bdb848ffbaa910afe47b946d(paginatedElements4536ada1bdb848ffbaa910afe47b946d, pageIndex)\n", + " resetByIdb012a2683aa4408d8ced44772986903f('tableb012a2683aa4408d8ced44772986903f')\n", + " buildGridb012a2683aa4408d8ced44772986903f(paginatedElementsb012a2683aa4408d8ced44772986903f, pageIndex)\n", " }\n", "\n", - " buildPaginationContainer4536ada1bdb848ffbaa910afe47b946d(paginatedElements4536ada1bdb848ffbaa910afe47b946d)\n", + " buildPaginationContainerb012a2683aa4408d8ced44772986903f(paginatedElementsb012a2683aa4408d8ced44772986903f)\n", " </script>\n", " </div>\n", " </div>\n", @@ -1821,7 +1829,7 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla')]" + "[CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla')]" ] }, "execution_count": 24, @@ -2083,7 +2091,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-tablef18861bcfebc4f38b3562162126e044c {\n", + " .grid-table8a2599d65b76402197bffb3eb8fd82df {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(8, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -2255,25 +2263,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menuf18861bcfebc4f38b3562162126e044c' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-contentf18861bcfebc4f38b3562162126e044c')\n", + " <div id='search-menu8a2599d65b76402197bffb3eb8fd82df' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content8a2599d65b76402197bffb3eb8fd82df')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-contentf18861bcfebc4f38b3562162126e044c' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-content8a2599d65b76402197bffb3eb8fd82df' class='syft-dropdown-content'></div>\n", " <script>\n", - " var elementf18861bcfebc4f38b3562162126e044c = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", - " var page_sizef18861bcfebc4f38b3562162126e044c = 2\n", - " var pageIndexf18861bcfebc4f38b3562162126e044c = 1\n", - " var paginatedElementsf18861bcfebc4f38b3562162126e044c = []\n", - " var activeFilterf18861bcfebc4f38b3562162126e044c;\n", + " var element8a2599d65b76402197bffb3eb8fd82df = [{\"id\": {\"value\": \"82f8e63aa515456483f6de9cf6eda223\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"abbf245d31ce44b487a505e379c4645e\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size8a2599d65b76402197bffb3eb8fd82df = 2\n", + " var pageIndex8a2599d65b76402197bffb3eb8fd82df = 1\n", + " var paginatedElements8a2599d65b76402197bffb3eb8fd82df = []\n", + " var activeFilter8a2599d65b76402197bffb3eb8fd82df;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-contentf18861bcfebc4f38b3562162126e044c')\n", + " let menu = document.getElementById('search-dropdown-content8a2599d65b76402197bffb3eb8fd82df')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -2283,10 +2291,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filterf18861bcfebc4f38b3562162126e044c').innerText = attr;\n", - " activeFilterf18861bcfebc4f38b3562162126e044c = attr;\n", + " document.getElementById('menu-active-filter8a2599d65b76402197bffb3eb8fd82df').innerText = attr;\n", + " activeFilter8a2599d65b76402197bffb3eb8fd82df = attr;\n", " document.getElementById(\n", - " 'search-dropdown-contentf18861bcfebc4f38b3562162126e044c'\n", + " 'search-dropdown-content8a2599d65b76402197bffb3eb8fd82df'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -2296,30 +2304,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menuf18861bcfebc4f38b3562162126e044c')\n", + " let dropdown_field = document.getElementById('search-menu8a2599d65b76402197bffb3eb8fd82df')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filterf18861bcfebc4f38b3562162126e044c')\n", + " span.setAttribute('id', 'menu-active-filter8a2599d65b76402197bffb3eb8fd82df')\n", " span.innerText = init_filter\n", - " activeFilterf18861bcfebc4f38b3562162126e044c = init_filter;\n", + " activeFilter8a2599d65b76402197bffb3eb8fd82df = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(elementf18861bcfebc4f38b3562162126e044c)\n", + " buildDropDownMenu(element8a2599d65b76402197bffb3eb8fd82df)\n", " </script>\n", " </div>\n", - " <input id='searchKeyf18861bcfebc4f38b3562162126e044c' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKey8a2599d65b76402197bffb3eb8fd82df' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGridf18861bcfebc4f38b3562162126e044c(elementf18861bcfebc4f38b3562162126e044c)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid8a2599d65b76402197bffb3eb8fd82df(element8a2599d65b76402197bffb3eb8fd82df)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='totalf18861bcfebc4f38b3562162126e044c'>0</h4></div>\n", + " <div><h4 id='total8a2599d65b76402197bffb3eb8fd82df'>0</h4></div>\n", " </div>\n", - " <div id='tablef18861bcfebc4f38b3562162126e044c' class='grid-tablef18861bcfebc4f38b3562162126e044c' style='margin-top: 25px;'>\n", + " <div id='table8a2599d65b76402197bffb3eb8fd82df' class='grid-table8a2599d65b76402197bffb3eb8fd82df' style='margin-top: 25px;'>\n", " <script>\n", - " function paginatef18861bcfebc4f38b3562162126e044c(arr, size) {\n", + " function paginate8a2599d65b76402197bffb3eb8fd82df(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -2329,44 +2337,44 @@ " return res;\n", " }\n", "\n", - " function searchGridf18861bcfebc4f38b3562162126e044c(elements){\n", - " let searchKey = document.getElementById('searchKeyf18861bcfebc4f38b3562162126e044c').value;\n", + " function searchGrid8a2599d65b76402197bffb3eb8fd82df(elements){\n", + " let searchKey = document.getElementById('searchKey8a2599d65b76402197bffb3eb8fd82df').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilterf18861bcfebc4f38b3562162126e044c]\n", + " let property = element[activeFilter8a2599d65b76402197bffb3eb8fd82df]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilterf18861bcfebc4f38b3562162126e044c].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilter8a2599d65b76402197bffb3eb8fd82df].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilterf18861bcfebc4f38b3562162126e044c].toString() === searchKey;\n", + " return element[activeFilter8a2599d65b76402197bffb3eb8fd82df].toString() === searchKey;\n", " } else {\n", - " return element[activeFilterf18861bcfebc4f38b3562162126e044c] === searchKey;\n", + " return element[activeFilter8a2599d65b76402197bffb3eb8fd82df] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetByIdf18861bcfebc4f38b3562162126e044c('tablef18861bcfebc4f38b3562162126e044c');\n", - " resetByIdf18861bcfebc4f38b3562162126e044c('pagf18861bcfebc4f38b3562162126e044c');\n", - " result = paginatef18861bcfebc4f38b3562162126e044c(result, page_sizef18861bcfebc4f38b3562162126e044c)\n", - " paginatedElementsf18861bcfebc4f38b3562162126e044c = result\n", - " buildGridf18861bcfebc4f38b3562162126e044c(result,pageIndexf18861bcfebc4f38b3562162126e044c);\n", - " buildPaginationContainerf18861bcfebc4f38b3562162126e044c(result);\n", + " resetById8a2599d65b76402197bffb3eb8fd82df('table8a2599d65b76402197bffb3eb8fd82df');\n", + " resetById8a2599d65b76402197bffb3eb8fd82df('pag8a2599d65b76402197bffb3eb8fd82df');\n", + " result = paginate8a2599d65b76402197bffb3eb8fd82df(result, page_size8a2599d65b76402197bffb3eb8fd82df)\n", + " paginatedElements8a2599d65b76402197bffb3eb8fd82df = result\n", + " buildGrid8a2599d65b76402197bffb3eb8fd82df(result,pageIndex8a2599d65b76402197bffb3eb8fd82df);\n", + " buildPaginationContainer8a2599d65b76402197bffb3eb8fd82df(result);\n", " }\n", "\n", - " function resetByIdf18861bcfebc4f38b3562162126e044c(id){\n", + " function resetById8a2599d65b76402197bffb3eb8fd82df(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGridf18861bcfebc4f38b3562162126e044c(items, pageIndex){\n", - " let headers = Object.keys(elementf18861bcfebc4f38b3562162126e044c[0]);\n", + " function buildGrid8a2599d65b76402197bffb3eb8fd82df(items, pageIndex){\n", + " let headers = Object.keys(element8a2599d65b76402197bffb3eb8fd82df[0]);\n", "\n", - " let grid = document.getElementById(\"tablef18861bcfebc4f38b3562162126e044c\");\n", + " let grid = document.getElementById(\"table8a2599d65b76402197bffb3eb8fd82df\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -2380,13 +2388,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_indexf18861bcfebc4f38b3562162126e044c = ((pageIndex - 1) * page_sizef18861bcfebc4f38b3562162126e044c)\n", + " let table_index8a2599d65b76402197bffb3eb8fd82df = ((pageIndex - 1) * page_size8a2599d65b76402197bffb3eb8fd82df)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"tablef18861bcfebc4f38b3562162126e044c\");\n", + " let grid = document.getElementById(\"table8a2599d65b76402197bffb3eb8fd82df\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_indexf18861bcfebc4f38b3562162126e044c;\n", + " divIndex.innerText = table_index8a2599d65b76402197bffb3eb8fd82df;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -2444,19 +2452,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_indexf18861bcfebc4f38b3562162126e044c = table_indexf18861bcfebc4f38b3562162126e044c + 1;\n", + " table_index8a2599d65b76402197bffb3eb8fd82df = table_index8a2599d65b76402197bffb3eb8fd82df + 1;\n", " })\n", " }\n", " }\n", - " paginatedElementsf18861bcfebc4f38b3562162126e044c = paginatef18861bcfebc4f38b3562162126e044c(elementf18861bcfebc4f38b3562162126e044c, page_sizef18861bcfebc4f38b3562162126e044c)\n", - " buildGridf18861bcfebc4f38b3562162126e044c(paginatedElementsf18861bcfebc4f38b3562162126e044c, 1)\n", - " document.getElementById('totalf18861bcfebc4f38b3562162126e044c').innerText = \"Total: \" + elementf18861bcfebc4f38b3562162126e044c.length\n", + " paginatedElements8a2599d65b76402197bffb3eb8fd82df = paginate8a2599d65b76402197bffb3eb8fd82df(element8a2599d65b76402197bffb3eb8fd82df, page_size8a2599d65b76402197bffb3eb8fd82df)\n", + " buildGrid8a2599d65b76402197bffb3eb8fd82df(paginatedElements8a2599d65b76402197bffb3eb8fd82df, 1)\n", + " document.getElementById('total8a2599d65b76402197bffb3eb8fd82df').innerText = \"Total: \" + element8a2599d65b76402197bffb3eb8fd82df.length\n", " </script>\n", " </div>\n", - " <div id='pagf18861bcfebc4f38b3562162126e044c' class='paginationContainer'>\n", + " <div id='pag8a2599d65b76402197bffb3eb8fd82df' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainerf18861bcfebc4f38b3562162126e044c(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pagf18861bcfebc4f38b3562162126e044c\");\n", + " function buildPaginationContainer8a2599d65b76402197bffb3eb8fd82df(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag8a2599d65b76402197bffb3eb8fd82df\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -2466,20 +2474,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPagef18861bcfebc4f38b3562162126e044c(i + 1);\n", + " setPage8a2599d65b76402197bffb3eb8fd82df(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPagef18861bcfebc4f38b3562162126e044c(newPage){\n", + " function setPage8a2599d65b76402197bffb3eb8fd82df(newPage){\n", " pageIndex = newPage\n", - " resetByIdf18861bcfebc4f38b3562162126e044c('tablef18861bcfebc4f38b3562162126e044c')\n", - " buildGridf18861bcfebc4f38b3562162126e044c(paginatedElementsf18861bcfebc4f38b3562162126e044c, pageIndex)\n", + " resetById8a2599d65b76402197bffb3eb8fd82df('table8a2599d65b76402197bffb3eb8fd82df')\n", + " buildGrid8a2599d65b76402197bffb3eb8fd82df(paginatedElements8a2599d65b76402197bffb3eb8fd82df, pageIndex)\n", " }\n", "\n", - " buildPaginationContainerf18861bcfebc4f38b3562162126e044c(paginatedElementsf18861bcfebc4f38b3562162126e044c)\n", + " buildPaginationContainer8a2599d65b76402197bffb3eb8fd82df(paginatedElements8a2599d65b76402197bffb3eb8fd82df)\n", " </script>\n", " </div>\n", " </div>\n", @@ -2487,8 +2495,8 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", - " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + "[CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: abbf245d31ce44b487a505e379c4645e>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 172952), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'})]" ] }, "execution_count": 28, @@ -2722,7 +2730,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-table8d88d7cd8eb74d4fb4c74bdef9f1d5a1 {\n", + " .grid-table10b6eb454f4b44a19fde1602c69dd11c {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(8, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -2894,25 +2902,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menu8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " <div id='search-menu10b6eb454f4b44a19fde1602c69dd11c' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content10b6eb454f4b44a19fde1602c69dd11c')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-content10b6eb454f4b44a19fde1602c69dd11c' class='syft-dropdown-content'></div>\n", " <script>\n", - " var element8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", - " var page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = 2\n", - " var pageIndex8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = 1\n", - " var paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = []\n", - " var activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1;\n", + " var element10b6eb454f4b44a19fde1602c69dd11c = [{\"id\": {\"value\": \"82f8e63aa515456483f6de9cf6eda223\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"abbf245d31ce44b487a505e379c4645e\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size10b6eb454f4b44a19fde1602c69dd11c = 2\n", + " var pageIndex10b6eb454f4b44a19fde1602c69dd11c = 1\n", + " var paginatedElements10b6eb454f4b44a19fde1602c69dd11c = []\n", + " var activeFilter10b6eb454f4b44a19fde1602c69dd11c;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " let menu = document.getElementById('search-dropdown-content10b6eb454f4b44a19fde1602c69dd11c')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -2922,10 +2930,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filter8d88d7cd8eb74d4fb4c74bdef9f1d5a1').innerText = attr;\n", - " activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = attr;\n", + " document.getElementById('menu-active-filter10b6eb454f4b44a19fde1602c69dd11c').innerText = attr;\n", + " activeFilter10b6eb454f4b44a19fde1602c69dd11c = attr;\n", " document.getElementById(\n", - " 'search-dropdown-content8d88d7cd8eb74d4fb4c74bdef9f1d5a1'\n", + " 'search-dropdown-content10b6eb454f4b44a19fde1602c69dd11c'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -2935,30 +2943,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menu8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " let dropdown_field = document.getElementById('search-menu10b6eb454f4b44a19fde1602c69dd11c')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filter8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", + " span.setAttribute('id', 'menu-active-filter10b6eb454f4b44a19fde1602c69dd11c')\n", " span.innerText = init_filter\n", - " activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = init_filter;\n", + " activeFilter10b6eb454f4b44a19fde1602c69dd11c = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " buildDropDownMenu(element10b6eb454f4b44a19fde1602c69dd11c)\n", " </script>\n", " </div>\n", - " <input id='searchKey8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKey10b6eb454f4b44a19fde1602c69dd11c' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid10b6eb454f4b44a19fde1602c69dd11c(element10b6eb454f4b44a19fde1602c69dd11c)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='total8d88d7cd8eb74d4fb4c74bdef9f1d5a1'>0</h4></div>\n", + " <div><h4 id='total10b6eb454f4b44a19fde1602c69dd11c'>0</h4></div>\n", " </div>\n", - " <div id='table8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='grid-table8d88d7cd8eb74d4fb4c74bdef9f1d5a1' style='margin-top: 25px;'>\n", + " <div id='table10b6eb454f4b44a19fde1602c69dd11c' class='grid-table10b6eb454f4b44a19fde1602c69dd11c' style='margin-top: 25px;'>\n", " <script>\n", - " function paginate8d88d7cd8eb74d4fb4c74bdef9f1d5a1(arr, size) {\n", + " function paginate10b6eb454f4b44a19fde1602c69dd11c(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -2968,44 +2976,44 @@ " return res;\n", " }\n", "\n", - " function searchGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(elements){\n", - " let searchKey = document.getElementById('searchKey8d88d7cd8eb74d4fb4c74bdef9f1d5a1').value;\n", + " function searchGrid10b6eb454f4b44a19fde1602c69dd11c(elements){\n", + " let searchKey = document.getElementById('searchKey10b6eb454f4b44a19fde1602c69dd11c').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1]\n", + " let property = element[activeFilter10b6eb454f4b44a19fde1602c69dd11c]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilter10b6eb454f4b44a19fde1602c69dd11c].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1].toString() === searchKey;\n", + " return element[activeFilter10b6eb454f4b44a19fde1602c69dd11c].toString() === searchKey;\n", " } else {\n", - " return element[activeFilter8d88d7cd8eb74d4fb4c74bdef9f1d5a1] === searchKey;\n", + " return element[activeFilter10b6eb454f4b44a19fde1602c69dd11c] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1('table8d88d7cd8eb74d4fb4c74bdef9f1d5a1');\n", - " resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1('pag8d88d7cd8eb74d4fb4c74bdef9f1d5a1');\n", - " result = paginate8d88d7cd8eb74d4fb4c74bdef9f1d5a1(result, page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", - " paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = result\n", - " buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(result,pageIndex8d88d7cd8eb74d4fb4c74bdef9f1d5a1);\n", - " buildPaginationContainer8d88d7cd8eb74d4fb4c74bdef9f1d5a1(result);\n", + " resetById10b6eb454f4b44a19fde1602c69dd11c('table10b6eb454f4b44a19fde1602c69dd11c');\n", + " resetById10b6eb454f4b44a19fde1602c69dd11c('pag10b6eb454f4b44a19fde1602c69dd11c');\n", + " result = paginate10b6eb454f4b44a19fde1602c69dd11c(result, page_size10b6eb454f4b44a19fde1602c69dd11c)\n", + " paginatedElements10b6eb454f4b44a19fde1602c69dd11c = result\n", + " buildGrid10b6eb454f4b44a19fde1602c69dd11c(result,pageIndex10b6eb454f4b44a19fde1602c69dd11c);\n", + " buildPaginationContainer10b6eb454f4b44a19fde1602c69dd11c(result);\n", " }\n", "\n", - " function resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1(id){\n", + " function resetById10b6eb454f4b44a19fde1602c69dd11c(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(items, pageIndex){\n", - " let headers = Object.keys(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1[0]);\n", + " function buildGrid10b6eb454f4b44a19fde1602c69dd11c(items, pageIndex){\n", + " let headers = Object.keys(element10b6eb454f4b44a19fde1602c69dd11c[0]);\n", "\n", - " let grid = document.getElementById(\"table8d88d7cd8eb74d4fb4c74bdef9f1d5a1\");\n", + " let grid = document.getElementById(\"table10b6eb454f4b44a19fde1602c69dd11c\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -3019,13 +3027,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = ((pageIndex - 1) * page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " let table_index10b6eb454f4b44a19fde1602c69dd11c = ((pageIndex - 1) * page_size10b6eb454f4b44a19fde1602c69dd11c)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"table8d88d7cd8eb74d4fb4c74bdef9f1d5a1\");\n", + " let grid = document.getElementById(\"table10b6eb454f4b44a19fde1602c69dd11c\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1;\n", + " divIndex.innerText = table_index10b6eb454f4b44a19fde1602c69dd11c;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -3083,19 +3091,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = table_index8d88d7cd8eb74d4fb4c74bdef9f1d5a1 + 1;\n", + " table_index10b6eb454f4b44a19fde1602c69dd11c = table_index10b6eb454f4b44a19fde1602c69dd11c + 1;\n", " })\n", " }\n", " }\n", - " paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1 = paginate8d88d7cd8eb74d4fb4c74bdef9f1d5a1(element8d88d7cd8eb74d4fb4c74bdef9f1d5a1, page_size8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", - " buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1, 1)\n", - " document.getElementById('total8d88d7cd8eb74d4fb4c74bdef9f1d5a1').innerText = \"Total: \" + element8d88d7cd8eb74d4fb4c74bdef9f1d5a1.length\n", + " paginatedElements10b6eb454f4b44a19fde1602c69dd11c = paginate10b6eb454f4b44a19fde1602c69dd11c(element10b6eb454f4b44a19fde1602c69dd11c, page_size10b6eb454f4b44a19fde1602c69dd11c)\n", + " buildGrid10b6eb454f4b44a19fde1602c69dd11c(paginatedElements10b6eb454f4b44a19fde1602c69dd11c, 1)\n", + " document.getElementById('total10b6eb454f4b44a19fde1602c69dd11c').innerText = \"Total: \" + element10b6eb454f4b44a19fde1602c69dd11c.length\n", " </script>\n", " </div>\n", - " <div id='pag8d88d7cd8eb74d4fb4c74bdef9f1d5a1' class='paginationContainer'>\n", + " <div id='pag10b6eb454f4b44a19fde1602c69dd11c' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainer8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pag8d88d7cd8eb74d4fb4c74bdef9f1d5a1\");\n", + " function buildPaginationContainer10b6eb454f4b44a19fde1602c69dd11c(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag10b6eb454f4b44a19fde1602c69dd11c\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -3105,20 +3113,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPage8d88d7cd8eb74d4fb4c74bdef9f1d5a1(i + 1);\n", + " setPage10b6eb454f4b44a19fde1602c69dd11c(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPage8d88d7cd8eb74d4fb4c74bdef9f1d5a1(newPage){\n", + " function setPage10b6eb454f4b44a19fde1602c69dd11c(newPage){\n", " pageIndex = newPage\n", - " resetById8d88d7cd8eb74d4fb4c74bdef9f1d5a1('table8d88d7cd8eb74d4fb4c74bdef9f1d5a1')\n", - " buildGrid8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1, pageIndex)\n", + " resetById10b6eb454f4b44a19fde1602c69dd11c('table10b6eb454f4b44a19fde1602c69dd11c')\n", + " buildGrid10b6eb454f4b44a19fde1602c69dd11c(paginatedElements10b6eb454f4b44a19fde1602c69dd11c, pageIndex)\n", " }\n", "\n", - " buildPaginationContainer8d88d7cd8eb74d4fb4c74bdef9f1d5a1(paginatedElements8d88d7cd8eb74d4fb4c74bdef9f1d5a1)\n", + " buildPaginationContainer10b6eb454f4b44a19fde1602c69dd11c(paginatedElements10b6eb454f4b44a19fde1602c69dd11c)\n", " </script>\n", " </div>\n", " </div>\n", @@ -3126,8 +3134,8 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", - " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + "[CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: abbf245d31ce44b487a505e379c4645e>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 172952), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'})]" ] }, "execution_count": 30, @@ -3159,7 +3167,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'), UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]\n" + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla'), UpdateDatasetEvent(id=<UID: abbf245d31ce44b487a505e379c4645e>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 172952), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 6b698e9fccd04f2499a0bcdb588ff49d>, creator=<UID: 9a1f1170f50546a68f11734b9e60b534>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 182961), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'})]\n" ] } ], @@ -3400,7 +3408,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-table32803def46e942ae84a4c48a8fc0b494 {\n", + " .grid-table8e106a851491452cb680159b3395f5ff {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(8, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -3572,25 +3580,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menu32803def46e942ae84a4c48a8fc0b494' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-content32803def46e942ae84a4c48a8fc0b494')\n", + " <div id='search-menu8e106a851491452cb680159b3395f5ff' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content8e106a851491452cb680159b3395f5ff')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-content32803def46e942ae84a4c48a8fc0b494' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-content8e106a851491452cb680159b3395f5ff' class='syft-dropdown-content'></div>\n", " <script>\n", - " var element32803def46e942ae84a4c48a8fc0b494 = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}, {\"id\": {\"value\": \"2b3cf90527824a41ab41ce6b7a2f4107\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", - " var page_size32803def46e942ae84a4c48a8fc0b494 = 3\n", - " var pageIndex32803def46e942ae84a4c48a8fc0b494 = 1\n", - " var paginatedElements32803def46e942ae84a4c48a8fc0b494 = []\n", - " var activeFilter32803def46e942ae84a4c48a8fc0b494;\n", + " var element8e106a851491452cb680159b3395f5ff = [{\"id\": {\"value\": \"82f8e63aa515456483f6de9cf6eda223\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"abbf245d31ce44b487a505e379c4645e\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}, {\"id\": {\"value\": \"6b698e9fccd04f2499a0bcdb588ff49d\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size8e106a851491452cb680159b3395f5ff = 3\n", + " var pageIndex8e106a851491452cb680159b3395f5ff = 1\n", + " var paginatedElements8e106a851491452cb680159b3395f5ff = []\n", + " var activeFilter8e106a851491452cb680159b3395f5ff;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-content32803def46e942ae84a4c48a8fc0b494')\n", + " let menu = document.getElementById('search-dropdown-content8e106a851491452cb680159b3395f5ff')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -3600,10 +3608,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filter32803def46e942ae84a4c48a8fc0b494').innerText = attr;\n", - " activeFilter32803def46e942ae84a4c48a8fc0b494 = attr;\n", + " document.getElementById('menu-active-filter8e106a851491452cb680159b3395f5ff').innerText = attr;\n", + " activeFilter8e106a851491452cb680159b3395f5ff = attr;\n", " document.getElementById(\n", - " 'search-dropdown-content32803def46e942ae84a4c48a8fc0b494'\n", + " 'search-dropdown-content8e106a851491452cb680159b3395f5ff'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -3613,30 +3621,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menu32803def46e942ae84a4c48a8fc0b494')\n", + " let dropdown_field = document.getElementById('search-menu8e106a851491452cb680159b3395f5ff')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filter32803def46e942ae84a4c48a8fc0b494')\n", + " span.setAttribute('id', 'menu-active-filter8e106a851491452cb680159b3395f5ff')\n", " span.innerText = init_filter\n", - " activeFilter32803def46e942ae84a4c48a8fc0b494 = init_filter;\n", + " activeFilter8e106a851491452cb680159b3395f5ff = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(element32803def46e942ae84a4c48a8fc0b494)\n", + " buildDropDownMenu(element8e106a851491452cb680159b3395f5ff)\n", " </script>\n", " </div>\n", - " <input id='searchKey32803def46e942ae84a4c48a8fc0b494' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKey8e106a851491452cb680159b3395f5ff' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGrid32803def46e942ae84a4c48a8fc0b494(element32803def46e942ae84a4c48a8fc0b494)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid8e106a851491452cb680159b3395f5ff(element8e106a851491452cb680159b3395f5ff)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='total32803def46e942ae84a4c48a8fc0b494'>0</h4></div>\n", + " <div><h4 id='total8e106a851491452cb680159b3395f5ff'>0</h4></div>\n", " </div>\n", - " <div id='table32803def46e942ae84a4c48a8fc0b494' class='grid-table32803def46e942ae84a4c48a8fc0b494' style='margin-top: 25px;'>\n", + " <div id='table8e106a851491452cb680159b3395f5ff' class='grid-table8e106a851491452cb680159b3395f5ff' style='margin-top: 25px;'>\n", " <script>\n", - " function paginate32803def46e942ae84a4c48a8fc0b494(arr, size) {\n", + " function paginate8e106a851491452cb680159b3395f5ff(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -3646,44 +3654,44 @@ " return res;\n", " }\n", "\n", - " function searchGrid32803def46e942ae84a4c48a8fc0b494(elements){\n", - " let searchKey = document.getElementById('searchKey32803def46e942ae84a4c48a8fc0b494').value;\n", + " function searchGrid8e106a851491452cb680159b3395f5ff(elements){\n", + " let searchKey = document.getElementById('searchKey8e106a851491452cb680159b3395f5ff').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilter32803def46e942ae84a4c48a8fc0b494]\n", + " let property = element[activeFilter8e106a851491452cb680159b3395f5ff]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilter32803def46e942ae84a4c48a8fc0b494].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilter8e106a851491452cb680159b3395f5ff].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilter32803def46e942ae84a4c48a8fc0b494].toString() === searchKey;\n", + " return element[activeFilter8e106a851491452cb680159b3395f5ff].toString() === searchKey;\n", " } else {\n", - " return element[activeFilter32803def46e942ae84a4c48a8fc0b494] === searchKey;\n", + " return element[activeFilter8e106a851491452cb680159b3395f5ff] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetById32803def46e942ae84a4c48a8fc0b494('table32803def46e942ae84a4c48a8fc0b494');\n", - " resetById32803def46e942ae84a4c48a8fc0b494('pag32803def46e942ae84a4c48a8fc0b494');\n", - " result = paginate32803def46e942ae84a4c48a8fc0b494(result, page_size32803def46e942ae84a4c48a8fc0b494)\n", - " paginatedElements32803def46e942ae84a4c48a8fc0b494 = result\n", - " buildGrid32803def46e942ae84a4c48a8fc0b494(result,pageIndex32803def46e942ae84a4c48a8fc0b494);\n", - " buildPaginationContainer32803def46e942ae84a4c48a8fc0b494(result);\n", + " resetById8e106a851491452cb680159b3395f5ff('table8e106a851491452cb680159b3395f5ff');\n", + " resetById8e106a851491452cb680159b3395f5ff('pag8e106a851491452cb680159b3395f5ff');\n", + " result = paginate8e106a851491452cb680159b3395f5ff(result, page_size8e106a851491452cb680159b3395f5ff)\n", + " paginatedElements8e106a851491452cb680159b3395f5ff = result\n", + " buildGrid8e106a851491452cb680159b3395f5ff(result,pageIndex8e106a851491452cb680159b3395f5ff);\n", + " buildPaginationContainer8e106a851491452cb680159b3395f5ff(result);\n", " }\n", "\n", - " function resetById32803def46e942ae84a4c48a8fc0b494(id){\n", + " function resetById8e106a851491452cb680159b3395f5ff(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGrid32803def46e942ae84a4c48a8fc0b494(items, pageIndex){\n", - " let headers = Object.keys(element32803def46e942ae84a4c48a8fc0b494[0]);\n", + " function buildGrid8e106a851491452cb680159b3395f5ff(items, pageIndex){\n", + " let headers = Object.keys(element8e106a851491452cb680159b3395f5ff[0]);\n", "\n", - " let grid = document.getElementById(\"table32803def46e942ae84a4c48a8fc0b494\");\n", + " let grid = document.getElementById(\"table8e106a851491452cb680159b3395f5ff\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -3697,13 +3705,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_index32803def46e942ae84a4c48a8fc0b494 = ((pageIndex - 1) * page_size32803def46e942ae84a4c48a8fc0b494)\n", + " let table_index8e106a851491452cb680159b3395f5ff = ((pageIndex - 1) * page_size8e106a851491452cb680159b3395f5ff)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"table32803def46e942ae84a4c48a8fc0b494\");\n", + " let grid = document.getElementById(\"table8e106a851491452cb680159b3395f5ff\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_index32803def46e942ae84a4c48a8fc0b494;\n", + " divIndex.innerText = table_index8e106a851491452cb680159b3395f5ff;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -3761,19 +3769,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_index32803def46e942ae84a4c48a8fc0b494 = table_index32803def46e942ae84a4c48a8fc0b494 + 1;\n", + " table_index8e106a851491452cb680159b3395f5ff = table_index8e106a851491452cb680159b3395f5ff + 1;\n", " })\n", " }\n", " }\n", - " paginatedElements32803def46e942ae84a4c48a8fc0b494 = paginate32803def46e942ae84a4c48a8fc0b494(element32803def46e942ae84a4c48a8fc0b494, page_size32803def46e942ae84a4c48a8fc0b494)\n", - " buildGrid32803def46e942ae84a4c48a8fc0b494(paginatedElements32803def46e942ae84a4c48a8fc0b494, 1)\n", - " document.getElementById('total32803def46e942ae84a4c48a8fc0b494').innerText = \"Total: \" + element32803def46e942ae84a4c48a8fc0b494.length\n", + " paginatedElements8e106a851491452cb680159b3395f5ff = paginate8e106a851491452cb680159b3395f5ff(element8e106a851491452cb680159b3395f5ff, page_size8e106a851491452cb680159b3395f5ff)\n", + " buildGrid8e106a851491452cb680159b3395f5ff(paginatedElements8e106a851491452cb680159b3395f5ff, 1)\n", + " document.getElementById('total8e106a851491452cb680159b3395f5ff').innerText = \"Total: \" + element8e106a851491452cb680159b3395f5ff.length\n", " </script>\n", " </div>\n", - " <div id='pag32803def46e942ae84a4c48a8fc0b494' class='paginationContainer'>\n", + " <div id='pag8e106a851491452cb680159b3395f5ff' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainer32803def46e942ae84a4c48a8fc0b494(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pag32803def46e942ae84a4c48a8fc0b494\");\n", + " function buildPaginationContainer8e106a851491452cb680159b3395f5ff(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag8e106a851491452cb680159b3395f5ff\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -3783,20 +3791,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPage32803def46e942ae84a4c48a8fc0b494(i + 1);\n", + " setPage8e106a851491452cb680159b3395f5ff(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPage32803def46e942ae84a4c48a8fc0b494(newPage){\n", + " function setPage8e106a851491452cb680159b3395f5ff(newPage){\n", " pageIndex = newPage\n", - " resetById32803def46e942ae84a4c48a8fc0b494('table32803def46e942ae84a4c48a8fc0b494')\n", - " buildGrid32803def46e942ae84a4c48a8fc0b494(paginatedElements32803def46e942ae84a4c48a8fc0b494, pageIndex)\n", + " resetById8e106a851491452cb680159b3395f5ff('table8e106a851491452cb680159b3395f5ff')\n", + " buildGrid8e106a851491452cb680159b3395f5ff(paginatedElements8e106a851491452cb680159b3395f5ff, pageIndex)\n", " }\n", "\n", - " buildPaginationContainer32803def46e942ae84a4c48a8fc0b494(paginatedElements32803def46e942ae84a4c48a8fc0b494)\n", + " buildPaginationContainer8e106a851491452cb680159b3395f5ff(paginatedElements8e106a851491452cb680159b3395f5ff)\n", " </script>\n", " </div>\n", " </div>\n", @@ -3804,9 +3812,9 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", - " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}),\n", - " UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + "[CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: abbf245d31ce44b487a505e379c4645e>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 172952), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'}),\n", + " UpdateDatasetEvent(id=<UID: 6b698e9fccd04f2499a0bcdb588ff49d>, creator=<UID: 9a1f1170f50546a68f11734b9e60b534>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 182961), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'})]" ] }, "execution_count": 35, @@ -4030,7 +4038,7 @@ " flex-grow: 0;\n", " }\n", "\n", - " .grid-table74686269b13844378b8b4c254710957c {\n", + " .grid-table9acd681e74694a1cb2960a51d205fa9a {\n", " display:grid;\n", " grid-template-columns: 1fr repeat(8, 1fr);\n", " grid-template-rows: repeat(2, 1fr);\n", @@ -4202,25 +4210,25 @@ " <div style=\"padding-top: 16px; display:flex;justify-content: space-between; align-items: center;\">\n", " <div class='pt-25 gap-10' style=\"display:flex;\">\n", " <div class=\"search-field\">\n", - " <div id='search-menu74686269b13844378b8b4c254710957c' class=\"syft-dropdown\" onclick=\"{\n", - " let doc = document.getElementById('search-dropdown-content74686269b13844378b8b4c254710957c')\n", + " <div id='search-menu9acd681e74694a1cb2960a51d205fa9a' class=\"syft-dropdown\" onclick=\"{\n", + " let doc = document.getElementById('search-dropdown-content9acd681e74694a1cb2960a51d205fa9a')\n", " if (doc.style.display === 'block'){\n", " doc.style.display = 'none'\n", " } else {\n", " doc.style.display = 'block'\n", " }\n", " }\">\n", - " <div id='search-dropdown-content74686269b13844378b8b4c254710957c' class='syft-dropdown-content'></div>\n", + " <div id='search-dropdown-content9acd681e74694a1cb2960a51d205fa9a' class='syft-dropdown-content'></div>\n", " <script>\n", - " var element74686269b13844378b8b4c254710957c = [{\"id\": {\"value\": \"1136cc585ee04af6bfff1c61c25e16c2\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"c53f962e77b247f5b90eac6e5d67643b\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}, {\"id\": {\"value\": \"2b3cf90527824a41ab41ce6b7a2f4107\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", - " var page_size74686269b13844378b8b4c254710957c = 3\n", - " var pageIndex74686269b13844378b8b4c254710957c = 1\n", - " var paginatedElements74686269b13844378b8b4c254710957c = []\n", - " var activeFilter74686269b13844378b8b4c254710957c;\n", + " var element9acd681e74694a1cb2960a51d205fa9a = [{\"id\": {\"value\": \"82f8e63aa515456483f6de9cf6eda223\", \"type\": \"clipboard\"}, \"type\": \"CreateDatasetEvent\"}, {\"id\": {\"value\": \"abbf245d31ce44b487a505e379c4645e\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}, {\"id\": {\"value\": \"6b698e9fccd04f2499a0bcdb588ff49d\", \"type\": \"clipboard\"}, \"type\": \"UpdateDatasetEvent\"}]\n", + " var page_size9acd681e74694a1cb2960a51d205fa9a = 3\n", + " var pageIndex9acd681e74694a1cb2960a51d205fa9a = 1\n", + " var paginatedElements9acd681e74694a1cb2960a51d205fa9a = []\n", + " var activeFilter9acd681e74694a1cb2960a51d205fa9a;\n", "\n", " function buildDropDownMenu(elements){\n", " let init_filter;\n", - " let menu = document.getElementById('search-dropdown-content74686269b13844378b8b4c254710957c')\n", + " let menu = document.getElementById('search-dropdown-content9acd681e74694a1cb2960a51d205fa9a')\n", " if (elements.length > 0) {\n", " let sample = elements[0]\n", " for (const attr in sample) {\n", @@ -4230,10 +4238,10 @@ " let content = document.createElement('div');\n", " content.onclick = function(event) {\n", " event.stopPropagation()\n", - " document.getElementById('menu-active-filter74686269b13844378b8b4c254710957c').innerText = attr;\n", - " activeFilter74686269b13844378b8b4c254710957c = attr;\n", + " document.getElementById('menu-active-filter9acd681e74694a1cb2960a51d205fa9a').innerText = attr;\n", + " activeFilter9acd681e74694a1cb2960a51d205fa9a = attr;\n", " document.getElementById(\n", - " 'search-dropdown-content74686269b13844378b8b4c254710957c'\n", + " 'search-dropdown-content9acd681e74694a1cb2960a51d205fa9a'\n", " ).style.display= 'none';\n", " }\n", " content.classList.add(\"dd-options\");\n", @@ -4243,30 +4251,30 @@ " } else {\n", " let init_filter = '---'\n", " }\n", - " let dropdown_field = document.getElementById('search-menu74686269b13844378b8b4c254710957c')\n", + " let dropdown_field = document.getElementById('search-menu9acd681e74694a1cb2960a51d205fa9a')\n", " let span = document.createElement('span')\n", - " span.setAttribute('id', 'menu-active-filter74686269b13844378b8b4c254710957c')\n", + " span.setAttribute('id', 'menu-active-filter9acd681e74694a1cb2960a51d205fa9a')\n", " span.innerText = init_filter\n", - " activeFilter74686269b13844378b8b4c254710957c = init_filter;\n", + " activeFilter9acd681e74694a1cb2960a51d205fa9a = init_filter;\n", " dropdown_field.appendChild(span)\n", " }\n", "\n", - " buildDropDownMenu(element74686269b13844378b8b4c254710957c)\n", + " buildDropDownMenu(element9acd681e74694a1cb2960a51d205fa9a)\n", " </script>\n", " </div>\n", - " <input id='searchKey74686269b13844378b8b4c254710957c' class='search-input' placeholder='Enter search here ...' />\n", + " <input id='searchKey9acd681e74694a1cb2960a51d205fa9a' class='search-input' placeholder='Enter search here ...' />\n", " </div>\n", - " <button class='search-button' type=\"button\" onclick=\"searchGrid74686269b13844378b8b4c254710957c(element74686269b13844378b8b4c254710957c)\">\n", + " <button class='search-button' type=\"button\" onclick=\"searchGrid9acd681e74694a1cb2960a51d205fa9a(element9acd681e74694a1cb2960a51d205fa9a)\">\n", " <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5652 9.23467L8.21819 6.88811C8.89846 6.07141 9.23767 5.02389 9.16527 3.96345C9.09287 2.90302 8.61443 1.91132 7.82948 1.19466C7.04453 0.477995 6.01349 0.0915414 4.95087 0.115691C3.88824 0.139841 2.87583 0.572735 2.12425 1.32432C1.37266 2.0759 0.939768 3.08831 0.915618 4.15094C0.891468 5.21357 1.27792 6.2446 1.99459 7.02955C2.71125 7.8145 3.70295 8.29294 4.76338 8.36535C5.82381 8.43775 6.87134 8.09853 7.68804 7.41827L10.0346 9.7653C10.0694 9.80014 10.1108 9.82778 10.1563 9.84663C10.2018 9.86549 10.2506 9.87519 10.2999 9.87519C10.3492 9.87519 10.398 9.86549 10.4435 9.84663C10.489 9.82778 10.5304 9.80014 10.5652 9.7653C10.6001 9.73046 10.6277 9.68909 10.6466 9.64357C10.6654 9.59805 10.6751 9.54926 10.6751 9.49998C10.6751 9.45071 10.6654 9.40192 10.6466 9.3564C10.6277 9.31088 10.6001 9.26951 10.5652 9.23467ZM1.67491 4.24998C1.67491 3.58247 1.87285 2.92995 2.2437 2.37493C2.61455 1.81992 3.14165 1.38734 3.75835 1.13189C4.37506 0.876446 5.05366 0.809609 5.70834 0.939835C6.36303 1.07006 6.96439 1.3915 7.4364 1.8635C7.9084 2.3355 8.22984 2.93687 8.36006 3.59155C8.49029 4.24624 8.42345 4.92484 8.168 5.54154C7.91256 6.15824 7.47998 6.68535 6.92496 7.05619C6.36995 7.42704 5.71742 7.62498 5.04991 7.62498C4.15511 7.62399 3.29724 7.26809 2.66452 6.63537C2.0318 6.00265 1.6759 5.14479 1.67491 4.24998Z\" fill=\"currentColor\"/></svg>\n", " <span class='pl-8'>Search</span>\n", " </button>\n", " </div>\n", "\n", - " <div><h4 id='total74686269b13844378b8b4c254710957c'>0</h4></div>\n", + " <div><h4 id='total9acd681e74694a1cb2960a51d205fa9a'>0</h4></div>\n", " </div>\n", - " <div id='table74686269b13844378b8b4c254710957c' class='grid-table74686269b13844378b8b4c254710957c' style='margin-top: 25px;'>\n", + " <div id='table9acd681e74694a1cb2960a51d205fa9a' class='grid-table9acd681e74694a1cb2960a51d205fa9a' style='margin-top: 25px;'>\n", " <script>\n", - " function paginate74686269b13844378b8b4c254710957c(arr, size) {\n", + " function paginate9acd681e74694a1cb2960a51d205fa9a(arr, size) {\n", " const res = [];\n", " for (let i = 0; i < arr.length; i += size) {\n", " const chunk = arr.slice(i, i + size);\n", @@ -4276,44 +4284,44 @@ " return res;\n", " }\n", "\n", - " function searchGrid74686269b13844378b8b4c254710957c(elements){\n", - " let searchKey = document.getElementById('searchKey74686269b13844378b8b4c254710957c').value;\n", + " function searchGrid9acd681e74694a1cb2960a51d205fa9a(elements){\n", + " let searchKey = document.getElementById('searchKey9acd681e74694a1cb2960a51d205fa9a').value;\n", " let result;\n", " if (searchKey === ''){\n", " result = elements;\n", " } else {\n", " result = elements.filter((element) => {\n", - " let property = element[activeFilter74686269b13844378b8b4c254710957c]\n", + " let property = element[activeFilter9acd681e74694a1cb2960a51d205fa9a]\n", " if (typeof property === 'object' && property !== null){\n", " return property.value.toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (typeof property === 'string' ) {\n", - " return element[activeFilter74686269b13844378b8b4c254710957c].toLowerCase().includes(searchKey.toLowerCase());\n", + " return element[activeFilter9acd681e74694a1cb2960a51d205fa9a].toLowerCase().includes(searchKey.toLowerCase());\n", " } else if (property !== null ) {\n", - " return element[activeFilter74686269b13844378b8b4c254710957c].toString() === searchKey;\n", + " return element[activeFilter9acd681e74694a1cb2960a51d205fa9a].toString() === searchKey;\n", " } else {\n", - " return element[activeFilter74686269b13844378b8b4c254710957c] === searchKey;\n", + " return element[activeFilter9acd681e74694a1cb2960a51d205fa9a] === searchKey;\n", " }\n", " } );\n", " }\n", - " resetById74686269b13844378b8b4c254710957c('table74686269b13844378b8b4c254710957c');\n", - " resetById74686269b13844378b8b4c254710957c('pag74686269b13844378b8b4c254710957c');\n", - " result = paginate74686269b13844378b8b4c254710957c(result, page_size74686269b13844378b8b4c254710957c)\n", - " paginatedElements74686269b13844378b8b4c254710957c = result\n", - " buildGrid74686269b13844378b8b4c254710957c(result,pageIndex74686269b13844378b8b4c254710957c);\n", - " buildPaginationContainer74686269b13844378b8b4c254710957c(result);\n", + " resetById9acd681e74694a1cb2960a51d205fa9a('table9acd681e74694a1cb2960a51d205fa9a');\n", + " resetById9acd681e74694a1cb2960a51d205fa9a('pag9acd681e74694a1cb2960a51d205fa9a');\n", + " result = paginate9acd681e74694a1cb2960a51d205fa9a(result, page_size9acd681e74694a1cb2960a51d205fa9a)\n", + " paginatedElements9acd681e74694a1cb2960a51d205fa9a = result\n", + " buildGrid9acd681e74694a1cb2960a51d205fa9a(result,pageIndex9acd681e74694a1cb2960a51d205fa9a);\n", + " buildPaginationContainer9acd681e74694a1cb2960a51d205fa9a(result);\n", " }\n", "\n", - " function resetById74686269b13844378b8b4c254710957c(id){\n", + " function resetById9acd681e74694a1cb2960a51d205fa9a(id){\n", " let element = document.getElementById(id);\n", " while (element.firstChild) {\n", " element.removeChild(element.firstChild);\n", " }\n", " }\n", "\n", - " function buildGrid74686269b13844378b8b4c254710957c(items, pageIndex){\n", - " let headers = Object.keys(element74686269b13844378b8b4c254710957c[0]);\n", + " function buildGrid9acd681e74694a1cb2960a51d205fa9a(items, pageIndex){\n", + " let headers = Object.keys(element9acd681e74694a1cb2960a51d205fa9a[0]);\n", "\n", - " let grid = document.getElementById(\"table74686269b13844378b8b4c254710957c\");\n", + " let grid = document.getElementById(\"table9acd681e74694a1cb2960a51d205fa9a\");\n", " let div = document.createElement(\"div\");\n", " div.classList.add('grid-header', 'grid-index-cells');\n", " grid.appendChild(div);\n", @@ -4327,13 +4335,13 @@ "\n", " let page = items[pageIndex -1]\n", " if (page !== 'undefine'){\n", - " let table_index74686269b13844378b8b4c254710957c = ((pageIndex - 1) * page_size74686269b13844378b8b4c254710957c)\n", + " let table_index9acd681e74694a1cb2960a51d205fa9a = ((pageIndex - 1) * page_size9acd681e74694a1cb2960a51d205fa9a)\n", " page.forEach((item) => {\n", - " let grid = document.getElementById(\"table74686269b13844378b8b4c254710957c\");\n", + " let grid = document.getElementById(\"table9acd681e74694a1cb2960a51d205fa9a\");\n", " // Add new index value in index cells\n", " let divIndex = document.createElement(\"div\");\n", " divIndex.classList.add('grid-row', 'grid-index-cells');\n", - " divIndex.innerText = table_index74686269b13844378b8b4c254710957c;\n", + " divIndex.innerText = table_index9acd681e74694a1cb2960a51d205fa9a;\n", " grid.appendChild(divIndex);\n", "\n", " // Iterate over the actual obj\n", @@ -4391,19 +4399,19 @@ " }\n", " grid.appendChild(div);\n", " }\n", - " table_index74686269b13844378b8b4c254710957c = table_index74686269b13844378b8b4c254710957c + 1;\n", + " table_index9acd681e74694a1cb2960a51d205fa9a = table_index9acd681e74694a1cb2960a51d205fa9a + 1;\n", " })\n", " }\n", " }\n", - " paginatedElements74686269b13844378b8b4c254710957c = paginate74686269b13844378b8b4c254710957c(element74686269b13844378b8b4c254710957c, page_size74686269b13844378b8b4c254710957c)\n", - " buildGrid74686269b13844378b8b4c254710957c(paginatedElements74686269b13844378b8b4c254710957c, 1)\n", - " document.getElementById('total74686269b13844378b8b4c254710957c').innerText = \"Total: \" + element74686269b13844378b8b4c254710957c.length\n", + " paginatedElements9acd681e74694a1cb2960a51d205fa9a = paginate9acd681e74694a1cb2960a51d205fa9a(element9acd681e74694a1cb2960a51d205fa9a, page_size9acd681e74694a1cb2960a51d205fa9a)\n", + " buildGrid9acd681e74694a1cb2960a51d205fa9a(paginatedElements9acd681e74694a1cb2960a51d205fa9a, 1)\n", + " document.getElementById('total9acd681e74694a1cb2960a51d205fa9a').innerText = \"Total: \" + element9acd681e74694a1cb2960a51d205fa9a.length\n", " </script>\n", " </div>\n", - " <div id='pag74686269b13844378b8b4c254710957c' class='paginationContainer'>\n", + " <div id='pag9acd681e74694a1cb2960a51d205fa9a' class='paginationContainer'>\n", " <script>\n", - " function buildPaginationContainer74686269b13844378b8b4c254710957c(paginatedElements){\n", - " let pageContainer = document.getElementById(\"pag74686269b13844378b8b4c254710957c\");\n", + " function buildPaginationContainer9acd681e74694a1cb2960a51d205fa9a(paginatedElements){\n", + " let pageContainer = document.getElementById(\"pag9acd681e74694a1cb2960a51d205fa9a\");\n", " for (let i = 0; i < paginatedElements.length; i++) {\n", " let div = document.createElement(\"div\");\n", " div.classList.add('page');\n", @@ -4413,20 +4421,20 @@ " let indexes = document.getElementsByClassName('page');\n", " for (let index of indexes) { index.style.color = 'var(--tertiary-color, \"gray\")' }\n", " event.target.style.color = \"gray\";\n", - " setPage74686269b13844378b8b4c254710957c(i + 1);\n", + " setPage9acd681e74694a1cb2960a51d205fa9a(i + 1);\n", " };\n", " div.innerText = i + 1;\n", " pageContainer.appendChild(div);\n", " }\n", " }\n", "\n", - " function setPage74686269b13844378b8b4c254710957c(newPage){\n", + " function setPage9acd681e74694a1cb2960a51d205fa9a(newPage){\n", " pageIndex = newPage\n", - " resetById74686269b13844378b8b4c254710957c('table74686269b13844378b8b4c254710957c')\n", - " buildGrid74686269b13844378b8b4c254710957c(paginatedElements74686269b13844378b8b4c254710957c, pageIndex)\n", + " resetById9acd681e74694a1cb2960a51d205fa9a('table9acd681e74694a1cb2960a51d205fa9a')\n", + " buildGrid9acd681e74694a1cb2960a51d205fa9a(paginatedElements9acd681e74694a1cb2960a51d205fa9a, pageIndex)\n", " }\n", "\n", - " buildPaginationContainer74686269b13844378b8b4c254710957c(paginatedElements74686269b13844378b8b4c254710957c)\n", + " buildPaginationContainer9acd681e74694a1cb2960a51d205fa9a(paginatedElements9acd681e74694a1cb2960a51d205fa9a)\n", " </script>\n", " </div>\n", " </div>\n", @@ -4434,9 +4442,9 @@ " </div>\n" ], "text/plain": [ - "[CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'),\n", - " UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}),\n", - " UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'})]" + "[CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla'),\n", + " UpdateDatasetEvent(id=<UID: abbf245d31ce44b487a505e379c4645e>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 172952), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'}),\n", + " UpdateDatasetEvent(id=<UID: 6b698e9fccd04f2499a0bcdb588ff49d>, creator=<UID: 9a1f1170f50546a68f11734b9e60b534>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 182961), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'})]" ] }, "execution_count": 36, @@ -4528,7 +4536,7 @@ "id": "101aaf6f", "metadata": {}, "source": [ - "# UserCode" + "# Sync 4: UserCode" ] }, { @@ -4551,7 +4559,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'), UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), CreateUserCodeEvent(id=<UID: 106bb60c0736406fa5befd8f6acf39eb>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 926518), object_id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=UserCode(id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=\"print('a')\", approved=False))]\n" + "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 82f8e63aa515456483f6de9cf6eda223>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 140729), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, mock='def', real=LinkedObject(id=<UID: c36ca6511ccf42b094836640df93b1a5>, node_id=<UID: 5905d8a7d328416c81cd114f8cc0f060>, obj_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>), description='blabla'), UpdateDatasetEvent(id=<UID: abbf245d31ce44b487a505e379c4645e>, creator=<UID: 5905d8a7d328416c81cd114f8cc0f060>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 172952), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 6b698e9fccd04f2499a0bcdb588ff49d>, creator=<UID: 9a1f1170f50546a68f11734b9e60b534>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 182961), object_id=<UID: 8031ca8c83da4217bdc7e2f51fdb0dca>, updates={'description': 'a'}), CreateUserCodeEvent(id=<UID: 0ff11347f03842e8a77df91811f87d53>, creator=<UID: 9a1f1170f50546a68f11734b9e60b534>, creation_date=datetime.datetime(2024, 1, 23, 13, 0, 35, 246659), object_id=<UID: 87d01bce6f0a449a8b7f57f79af9a21c>, code=UserCode(id=<UID: 87d01bce6f0a449a8b7f57f79af9a21c>, code=\"print('a')\", approved=False))]\n" ] } ], @@ -4560,34 +4568,68 @@ ] }, { - "cell_type": "code", - "execution_count": 43, - "id": "51899b83", + "cell_type": "markdown", + "id": "0a80b1c4", "metadata": {}, - "outputs": [], "source": [ - "node_low.approve_usercode(user_code_id, True)" + "# Sync 4: Approve UserCode" ] }, { "cell_type": "code", - "execution_count": 44, - "id": "e12b19c6", + "execution_count": 43, + "id": "51899b83", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "proposed merge (before merging): [CreateDatasetEvent(id=<UID: 1136cc585ee04af6bfff1c61c25e16c2>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 825242), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, mock='def', real=LinkedObject(id=<UID: 4c9d83586ad24e4b8b5eb3b1871685ad>, node_id=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, obj_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>), description='blabla'), UpdateDatasetEvent(id=<UID: c53f962e77b247f5b90eac6e5d67643b>, creator=<UID: b074ba6cdebc4a8f97a7ec8d0e81ee48>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 855965), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), UpdateDatasetEvent(id=<UID: 2b3cf90527824a41ab41ce6b7a2f4107>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 871512), object_id=<UID: 9ed0b5dad4d54ec9974f5898d0a644a8>, updates={'description': 'a'}), CreateUserCodeEvent(id=<UID: 106bb60c0736406fa5befd8f6acf39eb>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 926518), object_id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=UserCode(id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, code=\"print('a')\", approved=True)), ApproveUserCodeEvent(id=<UID: 5e98b98bd6a84da3b794403b16b6564a>, creator=<UID: 07f0ab085f944b139ca6c454aa0125c3>, creation_date=datetime.datetime(2024, 1, 22, 18, 5, 46, 936117), code_id=<UID: 61614194f9124f29a4c2b1eb2238dac2>, value=True)]\n" + "ename": "KeyError", + "evalue": "<UID: 315d9b9b704b46b2bdf5379f389de967>", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[43], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mnode_high\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapprove_usercode\u001b[49m\u001b[43m(\u001b[49m\u001b[43muser_code_id\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[17], line 39\u001b[0m, in \u001b[0;36mNode.approve_usercode\u001b[0;34m(self, code_id, to)\u001b[0m\n\u001b[1;32m 33\u001b[0m event \u001b[38;5;241m=\u001b[39m ApproveUserCodeEvent(\n\u001b[1;32m 34\u001b[0m code_id\u001b[38;5;241m=\u001b[39mcode_id,\n\u001b[1;32m 35\u001b[0m creator\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m 36\u001b[0m value\u001b[38;5;241m=\u001b[39mto\n\u001b[1;32m 37\u001b[0m )\n\u001b[1;32m 38\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent_log\u001b[38;5;241m.\u001b[39mlog\u001b[38;5;241m.\u001b[39mappend(event)\n\u001b[0;32m---> 39\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_approve_usercode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcode_id\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mto\u001b[49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[17], line 43\u001b[0m, in \u001b[0;36mNode._approve_usercode\u001b[0;34m(self, code_id, to)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;129m@register_event_handler\u001b[39m(ApproveUserCodeEvent)\n\u001b[1;32m 42\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_approve_usercode\u001b[39m(\u001b[38;5;28mself\u001b[39m, code_id, to):\n\u001b[0;32m---> 43\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstore\u001b[49m\u001b[43m[\u001b[49m\u001b[43mcode_id\u001b[49m\u001b[43m]\u001b[49m\u001b[38;5;241m.\u001b[39mapproved\u001b[38;5;241m=\u001b[39mto\n", + "\u001b[0;31mKeyError\u001b[0m: <UID: 315d9b9b704b46b2bdf5379f389de967>" ] } ], + "source": [ + "node_high.approve_usercode(user_code_id, True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e12b19c6", + "metadata": {}, + "outputs": [], "source": [ "# TODO: is this result valid?\n", "sync(node_low, node_high)" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ef53526", + "metadata": {}, + "outputs": [], + "source": [ + "node_low.event_log.log" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d625bb85", + "metadata": {}, + "outputs": [], + "source": [ + "node_high.event_log.log" + ] + }, { "cell_type": "markdown", "id": "8fbdf5bf", diff --git a/notebooks/helm/direct_azure.ipynb b/notebooks/helm/direct_azure.ipynb index ddb00875b61..801130be39d 100644 --- a/notebooks/helm/direct_azure.ipynb +++ b/notebooks/helm/direct_azure.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 40, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -53,11 +53,5344 @@ ")" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "job.get_result() -> block + return result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "job.wait().get(block=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@syft_funciton\n", + "def my_func():\n", + " res =domain.launch_job(very_long_function)\n", + " return res" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "job = my_func(blocking=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "job.wait(job_only=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "job.wait()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def wait(job_only=False):\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. wait for the job to finish but not for the result to be ready\n", + "2. basic usecase: wait for the result\n", + "\n", + "\n", + "3. wait for the all the subjobs to finish" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# [x.wait() for x in job.subjobs]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import string" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# import random\n", + "# import string\n", + "\n", + "# def generate_random_line(length):\n", + "# return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length))\n", + "\n", + "# def generate_large_file(file_path, num_lines, line_length):\n", + "# with open(file_path, 'w') as file:\n", + "# for _ in range(num_lines):\n", + "# line = generate_random_line(line_length)\n", + "# file.write(line + '\\n')\n", + "\n", + "# file_path = \"large_file.txt\"\n", + "# num_lines = 34359712 # Adjust the number of lines as needed\n", + "# line_length = 1000 # Adjust the line length as needed\n", + "\n", + "# generate_large_file(file_path, num_lines, line_length)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# with open(\"somefile16gb.txt\", 'rb') as input_file, open(\"somefile32gb.txt\", 'ab') as output_file:\n", + "# while True:\n", + "# chunk = input_file.read(50 -random.randint(1, 10))\n", + "# if not chunk:\n", + "# break\n", + "# output_file.write(chunk)\n", + "# # while True:\n", + "# # chunk = input_file.read(50 -random.randint(1, 10))\n", + "# # if not chunk:\n", + "# # break\n", + "# # output_file.write(chunk)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "lines_per_gb = int(2**30 / 1000)\n", + "gbs=32\n", + "with open(f'somefilerandom{gbs}gb.txt', 'wb') as f:\n", + " for x in range(lines_per_gb*gbs):\n", + " f.write(str.encode(''.join(random.choices(string.ascii_uppercase + string.digits, k=1000))) + b'\\n')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "# syft absolute\n", + "from syft.client.client import SyftClient\n", + "from syft.store.blob_storage import BlobDeposit\n", + "from syft.types.blob_storage import CreateBlobStorageEntry\n", + "from syft.types.syft_object import SyftObject" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def allocate_file(client: SyftClient, path: Path) -> BlobDeposit:\n", + " create_blob_storage_entry = CreateBlobStorageEntry.from_path(path)\n", + " return client.api.services.blob_storage.allocate(create_blob_storage_entry)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "file = \"somefile32gb.txt\"" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "dep = allocate_file(client, Path(file))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "```python\n", + "class SeaweedFSBlobDeposit:\n", + " id: str = 28d3991c2dbd4c2a8cb8e46f97f1196f\n", + "\n", + "```" + ], + "text/plain": [ + "syft.store.blob_storage.seaweedfs.SeaweedFSBlobDeposit" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dep" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# from syft.client.api import APIRegistry\n", + "\n", + "# api = APIRegistry.api_for(\n", + "# node_uid=dep.syft_node_location,\n", + "# user_verify_key=dep.syft_client_verify_key,\n", + "# )\n", + "\n", + "# url = dep.urls[0]\n", + "\n", + "# if api is not None:\n", + "# blob_url = api.connection.to_blob_route(\n", + "# url.url_path, host=url.host_or_ip\n", + "# )\n", + "# else:\n", + "# blob_url = url\n", + "\n", + "# url = str(blob_url)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import requests" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "from syft import SyftError" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from io import BytesIO" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "from typing import Generator" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def _byte_chunks(bytes: BytesIO, size: int) -> Generator[bytes, None, None]:\n", + " while True:\n", + " try:\n", + " yield bytes.read(size)\n", + " except BlockingIOError:\n", + " return" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "DEFAULT_CHUNK_SIZE = (1024**3 // 10) # 100MB\n", + "DEFAULT_TIMEOUT = 5000 # in seconds" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "321\n" + ] + } + ], + "source": [ + "print(len(dep.urls))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "from tqdm import tqdm" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# byte_chunk[16384: 16384+10000]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "0it [00:00, ?it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 107265\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "1it [00:01, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 214532\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "2it [00:03, 1.78s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 321800\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "3it [00:05, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4 429067\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "4it [00:06, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5 536334\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "5it [00:08, 1.67s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6 643601\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "6it [00:10, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7 750868\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "7it [00:11, 1.70s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8 858134\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "8it [00:13, 1.70s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9 965401\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "9it [00:15, 1.67s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 1072668\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "10it [00:16, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "11 1179935\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "11it [00:18, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12 1287202\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "12it [00:20, 1.66s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13 1394468\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "13it [00:21, 1.67s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "14 1501735\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "14it [00:23, 1.73s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15 1609002\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "15it [00:25, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "16 1716269\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "16it [00:27, 1.81s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "17 1823536\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "17it [00:29, 1.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "18 1930804\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "18it [00:30, 1.71s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "19 2038071\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "19it [00:32, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20 2145338\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "20it [00:34, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "21 2252605\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "21it [00:36, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "22 2359872\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "22it [00:37, 1.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23 2467138\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "23it [00:39, 1.79s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "24 2574405\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "24it [00:41, 1.78s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "25 2681672\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "25it [00:43, 1.84s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "26 2788939\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "26it [00:45, 1.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "27 2896206\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "27it [00:47, 1.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "28 3003472\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "28it [00:49, 2.08s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29 3110739\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "29it [00:52, 2.20s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "30 3218006\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "30it [00:54, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "31 3325273\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "31it [00:56, 2.08s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "32 3432540\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "32it [00:58, 2.00s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "33 3539808\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "33it [00:59, 1.93s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "34 3647075\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "34it [01:01, 1.88s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "35 3754342\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "35it [01:03, 1.89s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "36 3861607\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "36it [01:05, 1.85s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "37 3968874\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "37it [01:07, 1.82s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "38 4076142\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "38it [01:09, 1.88s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "39 4183409\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "39it [01:11, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "40 4290676\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "40it [01:13, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "41 4397943\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "41it [01:14, 1.91s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "42 4505210\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "42it [01:17, 1.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "43 4612476\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "43it [01:18, 1.92s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "44 4719743\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "44it [01:20, 1.88s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "45 4827010\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "45it [01:23, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "46 4934277\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "46it [01:26, 2.35s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "47 5041544\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "47it [01:27, 2.18s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "48 5148810\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "48it [01:29, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "49 5256077\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "49it [01:31, 2.07s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "50 5363344\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "50it [01:33, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "51 5470611\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "51it [01:35, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "52 5577878\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "52it [01:37, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "53 5685146\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "53it [01:39, 2.08s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "54 5792413\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "54it [01:41, 2.07s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "55 5899680\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "55it [01:44, 2.35s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "56 6006947\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "56it [01:47, 2.36s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "57 6114214\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "57it [01:50, 2.69s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "58 6221480\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "58it [01:53, 2.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "59 6328747\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "59it [01:57, 3.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "60 6436014\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "60it [01:59, 2.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "61 6543281\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "61it [02:01, 2.48s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "62 6650548\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "62it [02:03, 2.26s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "63 6757814\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "63it [02:04, 2.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "64 6865081\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "64it [02:06, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "65 6972348\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "65it [02:09, 2.41s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "66 7079615\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "66it [02:11, 2.22s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "67 7186882\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "67it [02:13, 2.08s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "68 7294150\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "68it [02:15, 1.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "69 7401417\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "69it [02:16, 1.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "70 7508684\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "70it [02:19, 1.98s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "71 7615949\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "71it [02:21, 2.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "72 7723216\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "72it [02:23, 2.03s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "73 7830484\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "73it [02:25, 1.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "74 7937751\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "74it [02:26, 1.86s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "75 8045018\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "75it [02:29, 2.06s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "76 8152285\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "76it [02:31, 1.99s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "77 8259552\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "77it [02:32, 1.90s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "78 8366818\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "78it [02:34, 1.84s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "79 8474085\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "79it [02:36, 1.82s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "80 8581352\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "80it [02:37, 1.79s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "81 8688619\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "81it [02:39, 1.77s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "82 8795886\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "82it [02:41, 1.73s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "83 8903153\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "83it [02:43, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "84 9010419\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "84it [02:47, 2.43s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "85 9117686\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "85it [02:49, 2.27s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "86 9224953\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "86it [02:50, 2.17s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "87 9332220\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "87it [02:52, 2.11s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "88 9439488\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "88it [02:54, 2.05s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "89 9546755\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "89it [02:56, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "90 9654022\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "90it [02:58, 1.88s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "91 9761289\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "91it [03:00, 1.99s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "92 9868556\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "92it [03:02, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "93 9975822\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "93it [03:04, 2.00s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "94 10083089\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "94it [03:06, 1.91s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "95 10190356\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "95it [03:08, 1.83s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "96 10297623\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "96it [03:09, 1.79s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "97 10404890\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "97it [03:13, 2.51s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "98 10512156\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "98it [03:15, 2.30s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "99 10619423\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "99it [03:17, 2.29s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100 10726690\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "100it [03:20, 2.32s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "101 10833957\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "101it [03:22, 2.26s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "102 10941224\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "102it [03:24, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "103 11048492\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "103it [03:26, 2.07s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "104 11155759\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "104it [03:28, 2.02s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "105 11263026\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "105it [03:29, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "106 11370292\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "106it [03:31, 1.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "107 11477558\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "107it [03:33, 1.99s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "108 11584826\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "108it [03:36, 2.02s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "109 11692093\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "109it [03:37, 1.91s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "110 11799360\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "110it [03:39, 1.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "111 11906627\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "111it [03:41, 1.82s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "112 12013894\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "112it [03:43, 1.82s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "113 12121160\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "113it [03:44, 1.79s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "114 12228427\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "114it [03:47, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "115 12335694\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "115it [03:49, 1.94s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "116 12442961\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "116it [03:52, 2.49s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "117 12550228\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "117it [03:54, 2.38s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "118 12657495\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "118it [03:57, 2.39s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "119 12764761\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "119it [03:59, 2.34s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "120 12872028\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "120it [04:01, 2.19s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "121 12979295\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "121it [04:03, 2.10s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "122 13086562\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "122it [04:05, 2.01s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "123 13193830\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "123it [04:06, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "124 13301097\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "124it [04:08, 1.90s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "125 13408364\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "125it [04:10, 1.84s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "126 13515631\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "126it [04:12, 1.84s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "127 13622898\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "127it [04:14, 1.86s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "128 13730164\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "128it [04:15, 1.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "129 13837431\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "129it [04:17, 1.85s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "130 13944698\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "130it [04:19, 1.81s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "131 14051965\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "131it [04:21, 1.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "132 14159232\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "132it [04:22, 1.71s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "133 14266498\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "133it [04:24, 1.72s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "134 14373765\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "134it [04:26, 1.72s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "135 14481032\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "135it [04:27, 1.73s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "136 14588299\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "136it [04:29, 1.78s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "137 14695566\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "137it [04:31, 1.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "138 14802834\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "138it [04:33, 1.80s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "139 14910101\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "139it [04:35, 1.81s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "140 15017368\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "140it [04:37, 1.85s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "141 15124634\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "141it [04:38, 1.81s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "142 15231900\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "142it [04:42, 2.44s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "143 15339168\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "143it [04:45, 2.37s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "144 15446435\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "144it [04:48, 2.60s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "145 15553702\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "145it [04:50, 2.45s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "146 15660969\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "146it [04:53, 2.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "147 15768236\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "147it [04:55, 2.45s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "148 15875502\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "148it [04:57, 2.23s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "149 15982769\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "149it [04:59, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "150 16090036\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "150it [05:00, 2.02s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "151 16197303\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "151it [05:02, 1.90s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "152 16304570\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "152it [05:04, 1.83s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "153 16411837\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "153it [05:05, 1.77s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "154 16519103\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "154it [05:07, 1.72s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "155 16626370\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "155it [05:09, 1.69s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "156 16733637\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "156it [05:10, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "157 16840904\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "157it [05:12, 1.83s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "158 16948172\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "158it [05:14, 1.85s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "159 17055439\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "159it [05:16, 1.80s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "160 17162706\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "160it [05:18, 1.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "161 17269972\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "161it [05:19, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "162 17377239\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "162it [05:21, 1.71s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "163 17484506\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "163it [05:23, 1.71s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "164 17591773\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "164it [05:24, 1.69s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "165 17699040\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "165it [05:26, 1.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "166 17806307\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "166it [05:28, 1.67s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "167 17913573\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "167it [05:29, 1.70s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "168 18020840\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "168it [05:31, 1.74s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "169 18128108\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "169it [05:33, 1.71s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "170 18235375\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "170it [05:36, 2.01s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "171 18342642\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "171it [05:38, 2.01s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "172 18449909\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "172it [05:39, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "173 18557176\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "173it [05:41, 1.93s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "174 18664442\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "174it [05:45, 2.55s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "175 18771709\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "175it [05:49, 2.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "176 18878976\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "176it [05:51, 2.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "177 18986243\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "177it [05:53, 2.44s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "178 19093510\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "178it [05:55, 2.28s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "179 19200776\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "179it [05:57, 2.11s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "180 19308043\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "180it [05:58, 1.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "181 19415310\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "181it [06:00, 1.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "182 19522577\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "182it [06:02, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "183 19629844\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "183it [06:04, 1.93s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "184 19737112\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "184it [06:06, 1.85s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "185 19844379\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "185it [06:10, 2.48s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "186 19951646\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "186it [06:12, 2.36s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "187 20058913\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "187it [06:13, 2.17s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "188 20166179\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "188it [06:16, 2.19s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "189 20273446\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "189it [06:18, 2.30s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "190 20380713\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "190it [06:20, 2.16s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "191 20487980\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "191it [06:23, 2.26s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "192 20595247\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "192it [06:25, 2.22s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "193 20702514\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "193it [06:27, 2.11s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "194 20809780\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "194it [06:29, 2.27s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "195 20917047\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "195it [06:31, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "196 21024314\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "196it [06:33, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "197 21131581\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "197it [06:36, 2.39s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "198 21238848\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "198it [06:38, 2.26s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "199 21346115\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "199it [06:40, 2.19s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "200 21453382\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "200it [06:42, 2.17s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "201 21560649\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "201it [06:44, 2.15s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "202 21667915\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "202it [06:50, 3.33s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "203 21775182\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "203it [06:54, 3.49s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "204 21882450\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "204it [06:57, 3.38s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "205 21989717\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "205it [06:59, 2.99s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "206 22096984\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "206it [07:02, 2.79s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "207 22204251\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "207it [07:04, 2.53s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "208 22311518\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "208it [07:06, 2.35s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "209 22418784\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "209it [07:08, 2.28s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "210 22526051\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "210it [07:10, 2.18s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "211 22633318\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "211it [07:12, 2.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "212 22740585\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "212it [07:14, 2.10s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "213 22847852\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "213it [07:16, 2.08s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "214 22955118\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "214it [07:18, 2.05s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "215 23062385\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "215it [07:20, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "216 23169652\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "216it [07:22, 2.06s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "217 23276919\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "217it [07:24, 2.17s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "218 23384186\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "218it [07:27, 2.22s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "219 23491454\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "219it [07:29, 2.21s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "220 23598721\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "220it [07:31, 2.11s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "221 23705988\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "221it [07:33, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "222 23813255\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "222it [07:35, 2.10s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "223 23920521\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "223it [07:40, 2.96s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "224 24027788\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "224it [07:42, 2.69s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "225 24135055\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "225it [07:44, 2.52s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "226 24242322\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "226it [07:46, 2.36s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "227 24349589\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "227it [07:48, 2.27s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "228 24456856\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "228it [07:51, 2.36s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "229 24564122\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "229it [07:53, 2.26s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "230 24671389\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "230it [07:55, 2.29s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "231 24778656\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "231it [07:57, 2.32s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "232 24885923\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "232it [08:00, 2.38s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233 24993190\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "233it [08:03, 2.55s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "234 25100457\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "234it [08:06, 2.65s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "235 25207724\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "235it [08:08, 2.48s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "236 25314991\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "236it [08:10, 2.37s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "237 25422258\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "237it [08:14, 2.76s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "238 25529524\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "238it [08:16, 2.51s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "239 25636792\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "239it [08:18, 2.58s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "240 25744059\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "240it [08:20, 2.43s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "241 25851326\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "241it [08:22, 2.30s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "242 25958593\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "242it [08:25, 2.24s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "243 26065860\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "243it [08:26, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "244 26173126\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "244it [08:28, 2.10s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "245 26280393\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "245it [08:31, 2.10s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "246 26387660\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "246it [08:32, 2.03s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "247 26494927\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "247it [08:34, 2.03s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "248 26602194\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "248it [08:37, 2.04s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "249 26709461\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "249it [08:38, 2.01s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "250 26816727\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "250it [08:40, 2.01s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "251 26923994\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "251it [08:43, 2.04s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "252 27031261\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "252it [08:45, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "253 27138528\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "253it [08:47, 2.15s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "254 27245796\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "254it [08:49, 2.15s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "255 27353063\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "255it [08:53, 2.64s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "256 27460330\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "256it [08:56, 2.61s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "257 27567597\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "257it [08:58, 2.53s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "258 27674863\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "258it [09:01, 2.64s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "259 27782130\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "259it [09:03, 2.43s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "260 27889397\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "260it [09:05, 2.29s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "261 27996664\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "261it [09:07, 2.23s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "262 28103931\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "262it [09:09, 2.22s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "263 28211198\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "263it [09:11, 2.18s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "264 28318464\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "264it [09:13, 2.20s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "265 28425731\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "265it [09:17, 2.51s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "266 28532998\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "266it [09:19, 2.57s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "267 28640265\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "267it [09:21, 2.41s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "268 28747532\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "268it [09:24, 2.48s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "269 28854799\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "269it [09:30, 3.45s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "270 28962066\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "270it [09:32, 3.07s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "271 29069333\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "271it [09:34, 2.78s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "272 29176600\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "272it [09:36, 2.56s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "273 29283866\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "273it [09:38, 2.39s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "274 29391134\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "274it [09:40, 2.31s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "275 29498401\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "275it [09:42, 2.33s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "276 29605668\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "276it [09:45, 2.27s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "277 29712935\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "277it [09:46, 2.14s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "278 29820202\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "278it [09:48, 2.06s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "279 29927468\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "279it [09:50, 2.07s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "280 30034735\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "280it [09:53, 2.24s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "281 30142002\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "281it [09:55, 2.27s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "282 30249269\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "282it [09:58, 2.25s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "283 30356536\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "283it [10:00, 2.24s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "284 30463803\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "284it [10:02, 2.31s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "285 30571069\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "285it [10:05, 2.34s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "286 30678336\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "286it [10:07, 2.33s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "287 30785603\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "287it [10:09, 2.21s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "288 30892870\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "288it [10:11, 2.17s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "289 31000138\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "289it [10:13, 2.15s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "290 31107405\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "290it [10:15, 2.10s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "291 31214672\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "291it [10:17, 2.08s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "292 31321939\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "292it [10:20, 2.46s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "293 31429205\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "293it [10:23, 2.39s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "294 31536472\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "294it [10:25, 2.25s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "295 31643739\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "295it [10:27, 2.22s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "296 31751006\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "296it [10:29, 2.32s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "297 31858273\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "297it [10:31, 2.23s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "298 31965540\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "298it [10:33, 2.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "299 32072806\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "299it [10:35, 2.06s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "300 32180073\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "300it [10:37, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "301 32287340\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "301it [10:39, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "302 32394607\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "302it [10:41, 2.03s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "303 32501874\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "303it [10:43, 1.97s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "304 32609141\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "304it [10:45, 2.03s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "305 32716408\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "305it [10:47, 1.99s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "306 32823675\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "306it [10:49, 1.98s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "307 32930942\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "307it [10:51, 1.93s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "308 33038209\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "308it [10:53, 2.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "309 33145476\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "309it [10:56, 2.22s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "310 33252743\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "310it [10:58, 2.14s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "311 33360010\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "311it [11:00, 2.11s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "312 33467277\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "312it [11:02, 2.19s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "313 33574544\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "313it [11:04, 2.16s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "314 33681810\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "314it [11:06, 2.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "315 33789077\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "315it [11:10, 2.68s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "316 33896344\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "316it [11:12, 2.47s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "317 34003611\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "317it [11:14, 2.30s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "318 34110878\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "318it [11:16, 2.13s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "319 34218145\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "319it [11:18, 2.01s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "320 34325412\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "320it [11:20, 2.02s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "321 34359712\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "321it [11:21, 2.12s/it]\n" + ] + } + ], + "source": [ + "# relative\n", + "with open(file, \"rb\") as data:\n", + " from syft.client.api import APIRegistry\n", + "\n", + " api = APIRegistry.api_for(\n", + " node_uid=dep.syft_node_location,\n", + " user_verify_key=dep.syft_client_verify_key,\n", + " )\n", + "\n", + " etags = []\n", + "\n", + " try:\n", + " no_lines = 0\n", + " for part_no, (byte_chunk, url) in tqdm(enumerate(\n", + " zip(_byte_chunks(data, DEFAULT_CHUNK_SIZE), dep.urls),\n", + " start=1,\n", + " )):\n", + " no_lines += byte_chunk.count(b\"\\n\")\n", + " if api is not None:\n", + " blob_url = api.connection.to_blob_route(\n", + " url.url_path, host=url.host_or_ip\n", + " )\n", + " else:\n", + " blob_url = url\n", + " \n", + " def data_generator(bytes_, chunk_size=819200):\n", + " n=0\n", + " while n*chunk_size <= len(bytes_):\n", + " chunk = bytes_[n*chunk_size:(n+1)*chunk_size]\n", + " n += 1\n", + " yield chunk\n", + " print(part_no, no_lines)\n", + " response = requests.put(\n", + " url=str(blob_url), data=data_generator(byte_chunk), timeout=DEFAULT_TIMEOUT, stream=True\n", + " )\n", + " response.raise_for_status()\n", + " etag = response.headers[\"ETag\"]\n", + " etags.append({\"ETag\": etag, \"PartNumber\": part_no})\n", + " except requests.RequestException as e:\n", + " print(e)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# len([x for x in data_generator(byte_chunk)])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "107374182" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(1024 ** 3) // 10" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div class=\"alert-success\" style=\"padding:5px;\"><strong>SyftSuccess</strong>: Successfully saved file.</div><br />" + ], + "text/plain": [ + "SyftSuccess: Successfully saved file." + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "api.services.blob_storage.mark_write_complete(etags=etags, uid=dep.blob_storage_entry_id, no_lines=no_lines)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + " # mark_write_complete_method = from_api_or_context(\n", + " # func_or_path=\"blob_storage.mark_write_complete\",\n", + " # syft_node_location=self.syft_node_location,\n", + " # syft_client_verify_key=self.syft_client_verify_key,\n", + " # )\n", + " # return mark_write_complete_method(\n", + " # etags=etags, uid=self.blob_storage_entry_id, no_lines=no_lines\n", + " # )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"somefile.txt\", \"rb\") as f:\n", + " dep.write(f)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = BlobFile.upload_from_path(\"somefile.txt\", client)" + ] + }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], "source": [ "# # syft absolute\n", "# from syft.store.blob_storage import BlobStorageClientConfig\n", @@ -80,6 +5413,100 @@ "# node.python_node.init_blob_storage(blob_config)" ] }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "from syft.types.blob_storage import BlobFile" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "x = BlobFile.upload_from_path(\"somefile.txt\", client)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "ename": "ConnectionError", + "evalue": "Failed to fetch metadata. Response returned with code 500", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mConnectionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[43mBlobFile\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupload_from_path\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43msomefile4gb.txt\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mclient\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/workspace/PySyft/packages/syft/src/syft/types/blob_storage.py:82\u001b[0m, in \u001b[0;36mBlobFile.upload_from_path\u001b[0;34m(self, path, client)\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mupload_from_path\u001b[39m(\u001b[38;5;28mself\u001b[39m, path, client):\n\u001b[1;32m 79\u001b[0m \u001b[38;5;66;03m# syft absolute\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msyft\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01msy\u001b[39;00m\n\u001b[0;32m---> 82\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mActionObject\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_path\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpath\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mclient\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39msyft_action_data\n", + "File \u001b[0;32m~/workspace/PySyft/packages/syft/src/syft/service/action/action_object.py:1079\u001b[0m, in \u001b[0;36mActionObject.send\u001b[0;34m(self, client)\u001b[0m\n\u001b[1;32m 1077\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_obj_location_(client\u001b[38;5;241m.\u001b[39mid, client\u001b[38;5;241m.\u001b[39mverify_key)\n\u001b[1;32m 1078\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_save_to_blob_storage()\n\u001b[0;32m-> 1079\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapi\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mservices\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1080\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(res, ActionObject):\n\u001b[1;32m 1081\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msyft_created_at \u001b[38;5;241m=\u001b[39m res\u001b[38;5;241m.\u001b[39msyft_created_at\n", + "File \u001b[0;32m~/workspace/PySyft/packages/syft/src/syft/client/api.py:260\u001b[0m, in \u001b[0;36mgenerate_remote_function.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m allowed:\n\u001b[1;32m 259\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m--> 260\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mmake_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43mapi_call\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mapi_call\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 262\u001b[0m result, _ \u001b[38;5;241m=\u001b[39m migrate_args_and_kwargs(\n\u001b[1;32m 263\u001b[0m [result], kwargs\u001b[38;5;241m=\u001b[39m{}, to_latest_protocol\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 264\u001b[0m )\n\u001b[1;32m 265\u001b[0m result \u001b[38;5;241m=\u001b[39m result[\u001b[38;5;241m0\u001b[39m]\n", + "File \u001b[0;32m~/workspace/PySyft/packages/syft/src/syft/client/api.py:613\u001b[0m, in \u001b[0;36mSyftAPI.make_call\u001b[0;34m(self, api_call)\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mmake_call\u001b[39m(\u001b[38;5;28mself\u001b[39m, api_call: SyftAPICall) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Result:\n\u001b[1;32m 612\u001b[0m signed_call \u001b[38;5;241m=\u001b[39m api_call\u001b[38;5;241m.\u001b[39msign(credentials\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msigning_key)\n\u001b[0;32m--> 613\u001b[0m signed_result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconnection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43msigned_call\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 615\u001b[0m result \u001b[38;5;241m=\u001b[39m debox_signed_syftapicall_response(signed_result\u001b[38;5;241m=\u001b[39msigned_result)\n\u001b[1;32m 617\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(result, OkErr):\n", + "File \u001b[0;32m~/workspace/PySyft/packages/syft/src/syft/client/client.py:290\u001b[0m, in \u001b[0;36mHTTPConnection.make_call\u001b[0;34m(self, signed_call)\u001b[0m\n\u001b[1;32m 284\u001b[0m response \u001b[38;5;241m=\u001b[39m requests\u001b[38;5;241m.\u001b[39mpost( \u001b[38;5;66;03m# nosec\u001b[39;00m\n\u001b[1;32m 285\u001b[0m url\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapi_url),\n\u001b[1;32m 286\u001b[0m data\u001b[38;5;241m=\u001b[39mmsg_bytes,\n\u001b[1;32m 287\u001b[0m )\n\u001b[1;32m 289\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m200\u001b[39m:\n\u001b[0;32m--> 290\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m requests\u001b[38;5;241m.\u001b[39mConnectionError(\n\u001b[1;32m 291\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed to fetch metadata. Response returned with code \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mresponse\u001b[38;5;241m.\u001b[39mstatus_code\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 292\u001b[0m )\n\u001b[1;32m 294\u001b[0m result \u001b[38;5;241m=\u001b[39m _deserialize(response\u001b[38;5;241m.\u001b[39mcontent, from_bytes\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 295\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", + "\u001b[0;31mConnectionError\u001b[0m: Failed to fetch metadata. Response returned with code 500" + ] + } + ], + "source": [ + "x = BlobFile.upload_from_path(\"somefile4gb.txt\", client)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "b'abcdef'" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x.read()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"somefile.txt\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 35, @@ -858,7 +6285,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.2" + "version": "3.9.16" }, "toc": { "base_numbering": 1, diff --git a/notebooks/helm/helm-syft.ipynb b/notebooks/helm/helm-syft.ipynb index ea88e25b7c2..11fed544520 100644 --- a/notebooks/helm/helm-syft.ipynb +++ b/notebooks/helm/helm-syft.ipynb @@ -530,7 +530,7 @@ " n=n,\n", " )\n", " batch_results.append(batch_job.result)\n", - "\n", + " \n", " aggregate_job = domain.launch_job(aggregate, batch_results=batch_results)\n", " print(\"Finished main function\")\n", " return aggregate_job.result" diff --git a/packages/grid/default.env b/packages/grid/default.env index d9b6da763ed..f162f5b4ff5 100644 --- a/packages/grid/default.env +++ b/packages/grid/default.env @@ -26,7 +26,7 @@ DOCKER_IMAGE_TRAEFIK=traefik TRAEFIK_VERSION=v2.10 REDIS_VERSION=6.2 RABBITMQ_VERSION=3 -SEAWEEDFS_VERSION=3.59 +SEAWEEDFS_VERSION=3.62 DOCKER_IMAGE_SEAWEEDFS=openmined/grid-seaweedfs VERSION=latest VERSION_HASH=unknown diff --git a/packages/grid/seaweedfs/seaweedfs.dockerfile b/packages/grid/seaweedfs/seaweedfs.dockerfile index bc652e2a1b9..2758dbac457 100644 --- a/packages/grid/seaweedfs/seaweedfs.dockerfile +++ b/packages/grid/seaweedfs/seaweedfs.dockerfile @@ -1,6 +1,7 @@ ARG SEAWEEDFS_VERSION -FROM chrislusf/seaweedfs:${SEAWEEDFS_VERSION}_large_disk +# FROM chrislusf/seaweedfs:${SEAWEEDFS_VERSION}_large_disk +FROM chrislusf/seaweedfs:3.62_large_disk WORKDIR / @@ -8,7 +9,8 @@ RUN apk update && \ apk add --no-cache python3 py3-pip ca-certificates bash COPY requirements.txt app.py / -RUN pip install --no-cache-dir -r requirements.txt + +RUN pip install --no-cache-dir --break-system-packages -r requirements.txt COPY --chmod=755 start.sh mount_command.sh / diff --git a/packages/grid/seaweedfs/start.sh b/packages/grid/seaweedfs/start.sh index d6e6f8d6116..64ba9581722 100644 --- a/packages/grid/seaweedfs/start.sh +++ b/packages/grid/seaweedfs/start.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -weed server -s3 -s3.port="$S3_PORT" -master.volumePreallocate -volume.max=500 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & +weed server -s3 -s3.port="$S3_PORT" -volume.max=5 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & echo "s3.configure -access_key $S3_ROOT_USER -secret_key $S3_ROOT_PWD \ -user iam -actions Read,Write,List,Tagging,Admin -apply" | weed shell > /dev/null 2>&1 diff --git a/packages/syft/src/syft/store/blob_storage/seaweedfs.py b/packages/syft/src/syft/store/blob_storage/seaweedfs.py index 2a27fc2518a..9babf94143e 100644 --- a/packages/syft/src/syft/store/blob_storage/seaweedfs.py +++ b/packages/syft/src/syft/store/blob_storage/seaweedfs.py @@ -37,7 +37,7 @@ from ...util.constants import DEFAULT_TIMEOUT WRITE_EXPIRATION_TIME = 900 # seconds -DEFAULT_CHUNK_SIZE = 1024**3 # 1 GB +DEFAULT_CHUNK_SIZE = (1024**3) // 10 # 100 MB def _byte_chunks(bytes: BytesIO, size: int) -> Generator[bytes, None, None]: From 873eea85ab2a8382ee862fa1255c9ce6ee5e2491 Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Fri, 26 Jan 2024 18:23:45 +0100 Subject: [PATCH 5/9] increase volume max --- notebooks/helm/direct_azure.ipynb | 1125 ++++++++++++++--------------- packages/grid/seaweedfs/start.sh | 2 +- 2 files changed, 528 insertions(+), 599 deletions(-) diff --git a/notebooks/helm/direct_azure.ipynb b/notebooks/helm/direct_azure.ipynb index 801130be39d..5622ef8a644 100644 --- a/notebooks/helm/direct_azure.ipynb +++ b/notebooks/helm/direct_azure.ipynb @@ -2,13 +2,20 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "kj/filesystem-disk-unix.c++:1703: warning: PWD environment variable doesn't match current directory; pwd = /Users/koen/workspace/pysyft/notebooks\n" + ] + } + ], "source": [ "# stdlib\n", "import os\n", - "\n", "# syft absolute\n", "import syft as sy" ] @@ -55,85 +62,7 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job.get_result() -> block + return result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job.wait().get(block=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "@syft_funciton\n", - "def my_func():\n", - " res =domain.launch_job(very_long_function)\n", - " return res" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job = my_func(blocking=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job.wait(job_only=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "job.wait()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def wait(job_only=False):\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. wait for the job to finish but not for the result to be ready\n", - "2. basic usecase: wait for the result\n", - "\n", - "\n", - "3. wait for the all the subjobs to finish" - ] - }, - { - "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -149,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -159,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -191,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -210,20 +139,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "lines_per_gb = int(2**30 / 1000)\n", - "gbs=32\n", - "with open(f'somefilerandom{gbs}gb.txt', 'wb') as f:\n", - " for x in range(lines_per_gb*gbs):\n", - " f.write(str.encode(''.join(random.choices(string.ascii_uppercase + string.digits, k=1000))) + b'\\n')" + "# lines_per_gb = int(2**30 / 1000)\n", + "# gbs=32\n", + "# with open(f'somefilerandom{gbs}gb.txt', 'wb') as f:\n", + "# for x in range(lines_per_gb*gbs):\n", + "# f.write(str.encode(''.join(random.choices(string.ascii_uppercase + string.digits, k=1000))) + b'\\n')" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -238,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -249,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -258,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -267,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -275,7 +204,7 @@ "text/markdown": [ "```python\n", "class SeaweedFSBlobDeposit:\n", - " id: str = 28d3991c2dbd4c2a8cb8e46f97f1196f\n", + " id: str = 67edf1bd47ef40bea30b949e90fee4e0\n", "\n", "```" ], @@ -283,7 +212,7 @@ "syft.store.blob_storage.seaweedfs.SeaweedFSBlobDeposit" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -294,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -319,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -328,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -337,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -346,7 +275,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -355,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -369,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -379,7 +308,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -396,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -405,7 +334,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -421,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -436,7 +365,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "1 107265\n" + "1 107266\n" ] }, { @@ -444,14 +373,14 @@ "output_type": "stream", "text": [ "\r", - "1it [00:01, 1.97s/it]" + "1it [00:03, 3.91s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2 214532\n" + "2 214533\n" ] }, { @@ -459,7 +388,7 @@ "output_type": "stream", "text": [ "\r", - "2it [00:03, 1.78s/it]" + "2it [00:05, 2.76s/it]" ] }, { @@ -474,7 +403,7 @@ "output_type": "stream", "text": [ "\r", - "3it [00:05, 1.68s/it]" + "3it [00:07, 2.22s/it]" ] }, { @@ -489,7 +418,7 @@ "output_type": "stream", "text": [ "\r", - "4it [00:06, 1.68s/it]" + "4it [00:09, 1.98s/it]" ] }, { @@ -504,7 +433,7 @@ "output_type": "stream", "text": [ "\r", - "5it [00:08, 1.67s/it]" + "5it [00:10, 1.86s/it]" ] }, { @@ -519,7 +448,7 @@ "output_type": "stream", "text": [ "\r", - "6it [00:10, 1.68s/it]" + "6it [00:12, 1.77s/it]" ] }, { @@ -534,14 +463,14 @@ "output_type": "stream", "text": [ "\r", - "7it [00:11, 1.70s/it]" + "7it [00:14, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "8 858134\n" + "8 858135\n" ] }, { @@ -549,14 +478,14 @@ "output_type": "stream", "text": [ "\r", - "8it [00:13, 1.70s/it]" + "8it [00:16, 1.89s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "9 965401\n" + "9 965402\n" ] }, { @@ -564,14 +493,14 @@ "output_type": "stream", "text": [ "\r", - "9it [00:15, 1.67s/it]" + "9it [00:18, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "10 1072668\n" + "10 1072669\n" ] }, { @@ -579,14 +508,14 @@ "output_type": "stream", "text": [ "\r", - "10it [00:16, 1.68s/it]" + "10it [00:19, 1.79s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "11 1179935\n" + "11 1179936\n" ] }, { @@ -594,7 +523,7 @@ "output_type": "stream", "text": [ "\r", - "11it [00:18, 1.68s/it]" + "11it [00:21, 1.68s/it]" ] }, { @@ -609,14 +538,14 @@ "output_type": "stream", "text": [ "\r", - "12it [00:20, 1.66s/it]" + "12it [00:22, 1.63s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "13 1394468\n" + "13 1394469\n" ] }, { @@ -624,14 +553,14 @@ "output_type": "stream", "text": [ "\r", - "13it [00:21, 1.67s/it]" + "13it [00:24, 1.77s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "14 1501735\n" + "14 1501736\n" ] }, { @@ -639,14 +568,14 @@ "output_type": "stream", "text": [ "\r", - "14it [00:23, 1.73s/it]" + "14it [00:26, 1.72s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "15 1609002\n" + "15 1609003\n" ] }, { @@ -654,14 +583,14 @@ "output_type": "stream", "text": [ "\r", - "15it [00:25, 1.74s/it]" + "15it [00:27, 1.64s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "16 1716269\n" + "16 1716270\n" ] }, { @@ -669,14 +598,14 @@ "output_type": "stream", "text": [ "\r", - "16it [00:27, 1.81s/it]" + "16it [00:29, 1.59s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "17 1823536\n" + "17 1823537\n" ] }, { @@ -684,7 +613,7 @@ "output_type": "stream", "text": [ "\r", - "17it [00:29, 1.76s/it]" + "17it [00:30, 1.58s/it]" ] }, { @@ -699,7 +628,7 @@ "output_type": "stream", "text": [ "\r", - "18it [00:30, 1.71s/it]" + "18it [00:33, 1.87s/it]" ] }, { @@ -714,7 +643,7 @@ "output_type": "stream", "text": [ "\r", - "19it [00:32, 1.74s/it]" + "19it [00:34, 1.76s/it]" ] }, { @@ -729,7 +658,7 @@ "output_type": "stream", "text": [ "\r", - "20it [00:34, 1.74s/it]" + "20it [00:36, 1.69s/it]" ] }, { @@ -744,7 +673,7 @@ "output_type": "stream", "text": [ "\r", - "21it [00:36, 1.74s/it]" + "21it [00:38, 1.71s/it]" ] }, { @@ -759,14 +688,14 @@ "output_type": "stream", "text": [ "\r", - "22it [00:37, 1.76s/it]" + "22it [00:39, 1.69s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "23 2467138\n" + "23 2467139\n" ] }, { @@ -774,7 +703,7 @@ "output_type": "stream", "text": [ "\r", - "23it [00:39, 1.79s/it]" + "23it [00:41, 1.67s/it]" ] }, { @@ -789,7 +718,7 @@ "output_type": "stream", "text": [ "\r", - "24it [00:41, 1.78s/it]" + "24it [00:43, 1.68s/it]" ] }, { @@ -804,7 +733,7 @@ "output_type": "stream", "text": [ "\r", - "25it [00:43, 1.84s/it]" + "25it [00:45, 1.77s/it]" ] }, { @@ -819,7 +748,7 @@ "output_type": "stream", "text": [ "\r", - "26it [00:45, 1.87s/it]" + "26it [00:46, 1.74s/it]" ] }, { @@ -834,14 +763,14 @@ "output_type": "stream", "text": [ "\r", - "27it [00:47, 1.87s/it]" + "27it [00:48, 1.67s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "28 3003472\n" + "28 3003473\n" ] }, { @@ -849,14 +778,14 @@ "output_type": "stream", "text": [ "\r", - "28it [00:49, 2.08s/it]" + "28it [00:49, 1.64s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "29 3110739\n" + "29 3110740\n" ] }, { @@ -864,14 +793,14 @@ "output_type": "stream", "text": [ "\r", - "29it [00:52, 2.20s/it]" + "29it [00:51, 1.63s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "30 3218006\n" + "30 3218007\n" ] }, { @@ -879,14 +808,14 @@ "output_type": "stream", "text": [ "\r", - "30it [00:54, 2.13s/it]" + "30it [00:53, 1.61s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "31 3325273\n" + "31 3325274\n" ] }, { @@ -894,14 +823,14 @@ "output_type": "stream", "text": [ "\r", - "31it [00:56, 2.08s/it]" + "31it [00:54, 1.60s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "32 3432540\n" + "32 3432541\n" ] }, { @@ -909,7 +838,7 @@ "output_type": "stream", "text": [ "\r", - "32it [00:58, 2.00s/it]" + "32it [00:56, 1.56s/it]" ] }, { @@ -924,7 +853,7 @@ "output_type": "stream", "text": [ "\r", - "33it [00:59, 1.93s/it]" + "33it [00:58, 1.79s/it]" ] }, { @@ -939,7 +868,7 @@ "output_type": "stream", "text": [ "\r", - "34it [01:01, 1.88s/it]" + "34it [00:59, 1.69s/it]" ] }, { @@ -954,14 +883,14 @@ "output_type": "stream", "text": [ "\r", - "35it [01:03, 1.89s/it]" + "35it [01:01, 1.73s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "36 3861607\n" + "36 3861608\n" ] }, { @@ -969,14 +898,14 @@ "output_type": "stream", "text": [ "\r", - "36it [01:05, 1.85s/it]" + "36it [01:03, 1.70s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "37 3968874\n" + "37 3968875\n" ] }, { @@ -984,7 +913,7 @@ "output_type": "stream", "text": [ "\r", - "37it [01:07, 1.82s/it]" + "37it [01:05, 1.68s/it]" ] }, { @@ -999,7 +928,7 @@ "output_type": "stream", "text": [ "\r", - "38it [01:09, 1.88s/it]" + "38it [01:06, 1.63s/it]" ] }, { @@ -1014,7 +943,7 @@ "output_type": "stream", "text": [ "\r", - "39it [01:11, 1.97s/it]" + "39it [01:08, 1.61s/it]" ] }, { @@ -1029,7 +958,7 @@ "output_type": "stream", "text": [ "\r", - "40it [01:13, 1.97s/it]" + "40it [01:09, 1.61s/it]" ] }, { @@ -1044,7 +973,7 @@ "output_type": "stream", "text": [ "\r", - "41it [01:14, 1.91s/it]" + "41it [01:11, 1.63s/it]" ] }, { @@ -1059,14 +988,14 @@ "output_type": "stream", "text": [ "\r", - "42it [01:17, 1.96s/it]" + "42it [01:13, 1.65s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "43 4612476\n" + "43 4612477\n" ] }, { @@ -1074,14 +1003,14 @@ "output_type": "stream", "text": [ "\r", - "43it [01:18, 1.92s/it]" + "43it [01:14, 1.67s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "44 4719743\n" + "44 4719744\n" ] }, { @@ -1089,14 +1018,14 @@ "output_type": "stream", "text": [ "\r", - "44it [01:20, 1.88s/it]" + "44it [01:16, 1.69s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "45 4827010\n" + "45 4827011\n" ] }, { @@ -1104,14 +1033,14 @@ "output_type": "stream", "text": [ "\r", - "45it [01:23, 2.09s/it]" + "45it [01:18, 1.91s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "46 4934277\n" + "46 4934278\n" ] }, { @@ -1119,14 +1048,14 @@ "output_type": "stream", "text": [ "\r", - "46it [01:26, 2.35s/it]" + "46it [01:20, 1.79s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "47 5041544\n" + "47 5041545\n" ] }, { @@ -1134,14 +1063,14 @@ "output_type": "stream", "text": [ "\r", - "47it [01:27, 2.18s/it]" + "47it [01:21, 1.70s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "48 5148810\n" + "48 5148811\n" ] }, { @@ -1149,14 +1078,14 @@ "output_type": "stream", "text": [ "\r", - "48it [01:29, 2.09s/it]" + "48it [01:23, 1.74s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "49 5256077\n" + "49 5256078\n" ] }, { @@ -1164,14 +1093,14 @@ "output_type": "stream", "text": [ "\r", - "49it [01:31, 2.07s/it]" + "49it [01:25, 1.82s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "50 5363344\n" + "50 5363345\n" ] }, { @@ -1179,14 +1108,14 @@ "output_type": "stream", "text": [ "\r", - "50it [01:33, 1.95s/it]" + "50it [01:27, 1.85s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "51 5470611\n" + "51 5470612\n" ] }, { @@ -1194,14 +1123,14 @@ "output_type": "stream", "text": [ "\r", - "51it [01:35, 1.97s/it]" + "51it [01:30, 2.05s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "52 5577878\n" + "52 5577879\n" ] }, { @@ -1209,7 +1138,7 @@ "output_type": "stream", "text": [ "\r", - "52it [01:37, 1.97s/it]" + "52it [01:31, 1.92s/it]" ] }, { @@ -1224,7 +1153,7 @@ "output_type": "stream", "text": [ "\r", - "53it [01:39, 2.08s/it]" + "53it [01:33, 1.86s/it]" ] }, { @@ -1239,7 +1168,7 @@ "output_type": "stream", "text": [ "\r", - "54it [01:41, 2.07s/it]" + "54it [01:35, 1.99s/it]" ] }, { @@ -1254,7 +1183,7 @@ "output_type": "stream", "text": [ "\r", - "55it [01:44, 2.35s/it]" + "55it [01:37, 1.95s/it]" ] }, { @@ -1269,7 +1198,7 @@ "output_type": "stream", "text": [ "\r", - "56it [01:47, 2.36s/it]" + "56it [01:39, 1.85s/it]" ] }, { @@ -1284,14 +1213,14 @@ "output_type": "stream", "text": [ "\r", - "57it [01:50, 2.69s/it]" + "57it [01:41, 1.81s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "58 6221480\n" + "58 6221481\n" ] }, { @@ -1299,7 +1228,7 @@ "output_type": "stream", "text": [ "\r", - "58it [01:53, 2.74s/it]" + "58it [01:42, 1.75s/it]" ] }, { @@ -1314,7 +1243,7 @@ "output_type": "stream", "text": [ "\r", - "59it [01:57, 3.12s/it]" + "59it [01:44, 1.69s/it]" ] }, { @@ -1329,7 +1258,7 @@ "output_type": "stream", "text": [ "\r", - "60it [01:59, 2.76s/it]" + "60it [01:45, 1.69s/it]" ] }, { @@ -1344,7 +1273,7 @@ "output_type": "stream", "text": [ "\r", - "61it [02:01, 2.48s/it]" + "61it [01:47, 1.65s/it]" ] }, { @@ -1359,14 +1288,14 @@ "output_type": "stream", "text": [ "\r", - "62it [02:03, 2.26s/it]" + "62it [01:51, 2.22s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "63 6757814\n" + "63 6757815\n" ] }, { @@ -1374,14 +1303,14 @@ "output_type": "stream", "text": [ "\r", - "63it [02:04, 2.12s/it]" + "63it [01:52, 2.08s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "64 6865081\n" + "64 6865082\n" ] }, { @@ -1389,14 +1318,14 @@ "output_type": "stream", "text": [ "\r", - "64it [02:06, 1.95s/it]" + "64it [01:54, 1.94s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "65 6972348\n" + "65 6972349\n" ] }, { @@ -1404,14 +1333,14 @@ "output_type": "stream", "text": [ "\r", - "65it [02:09, 2.41s/it]" + "65it [01:56, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "66 7079615\n" + "66 7079616\n" ] }, { @@ -1419,14 +1348,14 @@ "output_type": "stream", "text": [ "\r", - "66it [02:11, 2.22s/it]" + "66it [01:57, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "67 7186882\n" + "67 7186883\n" ] }, { @@ -1434,7 +1363,7 @@ "output_type": "stream", "text": [ "\r", - "67it [02:13, 2.08s/it]" + "67it [01:59, 1.83s/it]" ] }, { @@ -1449,7 +1378,7 @@ "output_type": "stream", "text": [ "\r", - "68it [02:15, 1.96s/it]" + "68it [02:01, 1.92s/it]" ] }, { @@ -1464,7 +1393,7 @@ "output_type": "stream", "text": [ "\r", - "69it [02:16, 1.87s/it]" + "69it [02:03, 1.87s/it]" ] }, { @@ -1479,14 +1408,14 @@ "output_type": "stream", "text": [ "\r", - "70it [02:19, 1.98s/it]" + "70it [02:05, 1.83s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "71 7615949\n" + "71 7615950\n" ] }, { @@ -1494,14 +1423,14 @@ "output_type": "stream", "text": [ "\r", - "71it [02:21, 2.12s/it]" + "71it [02:06, 1.76s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "72 7723216\n" + "72 7723217\n" ] }, { @@ -1509,7 +1438,7 @@ "output_type": "stream", "text": [ "\r", - "72it [02:23, 2.03s/it]" + "72it [02:08, 1.80s/it]" ] }, { @@ -1524,7 +1453,7 @@ "output_type": "stream", "text": [ "\r", - "73it [02:25, 1.96s/it]" + "73it [02:10, 1.84s/it]" ] }, { @@ -1539,7 +1468,7 @@ "output_type": "stream", "text": [ "\r", - "74it [02:26, 1.86s/it]" + "74it [02:13, 2.04s/it]" ] }, { @@ -1554,7 +1483,7 @@ "output_type": "stream", "text": [ "\r", - "75it [02:29, 2.06s/it]" + "75it [02:15, 1.96s/it]" ] }, { @@ -1569,7 +1498,7 @@ "output_type": "stream", "text": [ "\r", - "76it [02:31, 1.99s/it]" + "76it [02:17, 2.18s/it]" ] }, { @@ -1584,14 +1513,14 @@ "output_type": "stream", "text": [ "\r", - "77it [02:32, 1.90s/it]" + "77it [02:19, 2.03s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "78 8366818\n" + "78 8366819\n" ] }, { @@ -1599,14 +1528,14 @@ "output_type": "stream", "text": [ "\r", - "78it [02:34, 1.84s/it]" + "78it [02:22, 2.49s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "79 8474085\n" + "79 8474086\n" ] }, { @@ -1614,14 +1543,14 @@ "output_type": "stream", "text": [ "\r", - "79it [02:36, 1.82s/it]" + "79it [02:25, 2.39s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "80 8581352\n" + "80 8581353\n" ] }, { @@ -1629,14 +1558,14 @@ "output_type": "stream", "text": [ "\r", - "80it [02:37, 1.79s/it]" + "80it [02:26, 2.17s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "81 8688619\n" + "81 8688620\n" ] }, { @@ -1644,14 +1573,14 @@ "output_type": "stream", "text": [ "\r", - "81it [02:39, 1.77s/it]" + "81it [02:28, 2.16s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "82 8795886\n" + "82 8795887\n" ] }, { @@ -1659,7 +1588,7 @@ "output_type": "stream", "text": [ "\r", - "82it [02:41, 1.73s/it]" + "82it [02:30, 2.04s/it]" ] }, { @@ -1674,14 +1603,14 @@ "output_type": "stream", "text": [ "\r", - "83it [02:43, 1.74s/it]" + "83it [02:32, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "84 9010419\n" + "84 9010420\n" ] }, { @@ -1689,14 +1618,14 @@ "output_type": "stream", "text": [ "\r", - "84it [02:47, 2.43s/it]" + "84it [02:35, 2.22s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "85 9117686\n" + "85 9117687\n" ] }, { @@ -1704,14 +1633,14 @@ "output_type": "stream", "text": [ "\r", - "85it [02:49, 2.27s/it]" + "85it [02:37, 2.19s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "86 9224953\n" + "86 9224954\n" ] }, { @@ -1719,14 +1648,14 @@ "output_type": "stream", "text": [ "\r", - "86it [02:50, 2.17s/it]" + "86it [02:39, 2.29s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "87 9332220\n" + "87 9332221\n" ] }, { @@ -1734,7 +1663,7 @@ "output_type": "stream", "text": [ "\r", - "87it [02:52, 2.11s/it]" + "87it [02:42, 2.39s/it]" ] }, { @@ -1749,7 +1678,7 @@ "output_type": "stream", "text": [ "\r", - "88it [02:54, 2.05s/it]" + "88it [02:44, 2.25s/it]" ] }, { @@ -1764,7 +1693,7 @@ "output_type": "stream", "text": [ "\r", - "89it [02:56, 1.95s/it]" + "89it [02:46, 2.11s/it]" ] }, { @@ -1779,7 +1708,7 @@ "output_type": "stream", "text": [ "\r", - "90it [02:58, 1.88s/it]" + "90it [02:48, 2.16s/it]" ] }, { @@ -1794,7 +1723,7 @@ "output_type": "stream", "text": [ "\r", - "91it [03:00, 1.99s/it]" + "91it [02:50, 2.04s/it]" ] }, { @@ -1809,14 +1738,14 @@ "output_type": "stream", "text": [ "\r", - "92it [03:02, 2.09s/it]" + "92it [02:52, 2.04s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "93 9975822\n" + "93 9975823\n" ] }, { @@ -1824,14 +1753,14 @@ "output_type": "stream", "text": [ "\r", - "93it [03:04, 2.00s/it]" + "93it [02:54, 2.09s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "94 10083089\n" + "94 10083090\n" ] }, { @@ -1839,7 +1768,7 @@ "output_type": "stream", "text": [ "\r", - "94it [03:06, 1.91s/it]" + "94it [02:56, 2.11s/it]" ] }, { @@ -1854,7 +1783,7 @@ "output_type": "stream", "text": [ "\r", - "95it [03:08, 1.83s/it]" + "95it [02:58, 1.96s/it]" ] }, { @@ -1869,7 +1798,7 @@ "output_type": "stream", "text": [ "\r", - "96it [03:09, 1.79s/it]" + "96it [03:00, 1.92s/it]" ] }, { @@ -1884,14 +1813,14 @@ "output_type": "stream", "text": [ "\r", - "97it [03:13, 2.51s/it]" + "97it [03:02, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "98 10512156\n" + "98 10512157\n" ] }, { @@ -1899,14 +1828,14 @@ "output_type": "stream", "text": [ "\r", - "98it [03:15, 2.30s/it]" + "98it [03:03, 1.90s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "99 10619423\n" + "99 10619424\n" ] }, { @@ -1914,14 +1843,14 @@ "output_type": "stream", "text": [ "\r", - "99it [03:17, 2.29s/it]" + "99it [03:06, 1.97s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "100 10726690\n" + "100 10726691\n" ] }, { @@ -1929,14 +1858,14 @@ "output_type": "stream", "text": [ "\r", - "100it [03:20, 2.32s/it]" + "100it [03:09, 2.42s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "101 10833957\n" + "101 10833958\n" ] }, { @@ -1944,14 +1873,14 @@ "output_type": "stream", "text": [ "\r", - "101it [03:22, 2.26s/it]" + "101it [03:11, 2.34s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "102 10941224\n" + "102 10941225\n" ] }, { @@ -1959,7 +1888,7 @@ "output_type": "stream", "text": [ "\r", - "102it [03:24, 2.13s/it]" + "102it [03:13, 2.16s/it]" ] }, { @@ -1974,7 +1903,7 @@ "output_type": "stream", "text": [ "\r", - "103it [03:26, 2.07s/it]" + "103it [03:15, 2.19s/it]" ] }, { @@ -1989,7 +1918,7 @@ "output_type": "stream", "text": [ "\r", - "104it [03:28, 2.02s/it]" + "104it [03:17, 2.16s/it]" ] }, { @@ -2004,7 +1933,7 @@ "output_type": "stream", "text": [ "\r", - "105it [03:29, 1.97s/it]" + "105it [03:19, 2.00s/it]" ] }, { @@ -2019,14 +1948,14 @@ "output_type": "stream", "text": [ "\r", - "106it [03:31, 1.96s/it]" + "106it [03:21, 1.92s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "107 11477558\n" + "107 11477559\n" ] }, { @@ -2034,7 +1963,7 @@ "output_type": "stream", "text": [ "\r", - "107it [03:33, 1.99s/it]" + "107it [03:22, 1.84s/it]" ] }, { @@ -2049,7 +1978,7 @@ "output_type": "stream", "text": [ "\r", - "108it [03:36, 2.02s/it]" + "108it [03:24, 1.86s/it]" ] }, { @@ -2064,7 +1993,7 @@ "output_type": "stream", "text": [ "\r", - "109it [03:37, 1.91s/it]" + "109it [03:27, 2.01s/it]" ] }, { @@ -2079,7 +2008,7 @@ "output_type": "stream", "text": [ "\r", - "110it [03:39, 1.87s/it]" + "110it [03:28, 1.95s/it]" ] }, { @@ -2094,7 +2023,7 @@ "output_type": "stream", "text": [ "\r", - "111it [03:41, 1.82s/it]" + "111it [03:30, 1.89s/it]" ] }, { @@ -2109,14 +2038,14 @@ "output_type": "stream", "text": [ "\r", - "112it [03:43, 1.82s/it]" + "112it [03:32, 1.83s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "113 12121160\n" + "113 12121161\n" ] }, { @@ -2124,14 +2053,14 @@ "output_type": "stream", "text": [ "\r", - "113it [03:44, 1.79s/it]" + "113it [03:33, 1.76s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "114 12228427\n" + "114 12228428\n" ] }, { @@ -2139,14 +2068,14 @@ "output_type": "stream", "text": [ "\r", - "114it [03:47, 1.97s/it]" + "114it [03:36, 1.89s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "115 12335694\n" + "115 12335695\n" ] }, { @@ -2154,14 +2083,14 @@ "output_type": "stream", "text": [ "\r", - "115it [03:49, 1.94s/it]" + "115it [03:37, 1.84s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "116 12442961\n" + "116 12442962\n" ] }, { @@ -2169,14 +2098,14 @@ "output_type": "stream", "text": [ "\r", - "116it [03:52, 2.49s/it]" + "116it [03:40, 2.06s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "117 12550228\n" + "117 12550229\n" ] }, { @@ -2184,7 +2113,7 @@ "output_type": "stream", "text": [ "\r", - "117it [03:54, 2.38s/it]" + "117it [03:42, 2.02s/it]" ] }, { @@ -2199,14 +2128,14 @@ "output_type": "stream", "text": [ "\r", - "118it [03:57, 2.39s/it]" + "118it [03:44, 1.97s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "119 12764761\n" + "119 12764762\n" ] }, { @@ -2214,14 +2143,14 @@ "output_type": "stream", "text": [ "\r", - "119it [03:59, 2.34s/it]" + "119it [03:45, 1.91s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "120 12872028\n" + "120 12872029\n" ] }, { @@ -2229,14 +2158,14 @@ "output_type": "stream", "text": [ "\r", - "120it [04:01, 2.19s/it]" + "120it [03:47, 1.85s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "121 12979295\n" + "121 12979296\n" ] }, { @@ -2244,14 +2173,14 @@ "output_type": "stream", "text": [ "\r", - "121it [04:03, 2.10s/it]" + "121it [03:49, 1.81s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "122 13086562\n" + "122 13086563\n" ] }, { @@ -2259,7 +2188,7 @@ "output_type": "stream", "text": [ "\r", - "122it [04:05, 2.01s/it]" + "122it [03:51, 1.81s/it]" ] }, { @@ -2274,7 +2203,7 @@ "output_type": "stream", "text": [ "\r", - "123it [04:06, 1.95s/it]" + "123it [03:53, 2.09s/it]" ] }, { @@ -2289,7 +2218,7 @@ "output_type": "stream", "text": [ "\r", - "124it [04:08, 1.90s/it]" + "124it [03:55, 2.02s/it]" ] }, { @@ -2304,7 +2233,7 @@ "output_type": "stream", "text": [ "\r", - "125it [04:10, 1.84s/it]" + "125it [03:57, 1.95s/it]" ] }, { @@ -2319,7 +2248,7 @@ "output_type": "stream", "text": [ "\r", - "126it [04:12, 1.84s/it]" + "126it [03:59, 1.92s/it]" ] }, { @@ -2334,14 +2263,14 @@ "output_type": "stream", "text": [ "\r", - "127it [04:14, 1.86s/it]" + "127it [04:01, 1.90s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "128 13730164\n" + "128 13730165\n" ] }, { @@ -2349,14 +2278,14 @@ "output_type": "stream", "text": [ "\r", - "128it [04:15, 1.87s/it]" + "128it [04:03, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "129 13837431\n" + "129 13837432\n" ] }, { @@ -2364,7 +2293,7 @@ "output_type": "stream", "text": [ "\r", - "129it [04:17, 1.85s/it]" + "129it [04:04, 1.79s/it]" ] }, { @@ -2379,7 +2308,7 @@ "output_type": "stream", "text": [ "\r", - "130it [04:19, 1.81s/it]" + "130it [04:06, 1.76s/it]" ] }, { @@ -2394,7 +2323,7 @@ "output_type": "stream", "text": [ "\r", - "131it [04:21, 1.76s/it]" + "131it [04:08, 1.75s/it]" ] }, { @@ -2409,14 +2338,14 @@ "output_type": "stream", "text": [ "\r", - "132it [04:22, 1.71s/it]" + "132it [04:09, 1.72s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "133 14266498\n" + "133 14266499\n" ] }, { @@ -2424,14 +2353,14 @@ "output_type": "stream", "text": [ "\r", - "133it [04:24, 1.72s/it]" + "133it [04:13, 2.29s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "134 14373765\n" + "134 14373766\n" ] }, { @@ -2439,14 +2368,14 @@ "output_type": "stream", "text": [ "\r", - "134it [04:26, 1.72s/it]" + "134it [04:15, 2.17s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "135 14481032\n" + "135 14481033\n" ] }, { @@ -2454,14 +2383,14 @@ "output_type": "stream", "text": [ "\r", - "135it [04:27, 1.73s/it]" + "135it [04:17, 2.08s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "136 14588299\n" + "136 14588300\n" ] }, { @@ -2469,14 +2398,14 @@ "output_type": "stream", "text": [ "\r", - "136it [04:29, 1.78s/it]" + "136it [04:18, 1.97s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "137 14695566\n" + "137 14695567\n" ] }, { @@ -2484,7 +2413,7 @@ "output_type": "stream", "text": [ "\r", - "137it [04:31, 1.76s/it]" + "137it [04:20, 1.97s/it]" ] }, { @@ -2499,7 +2428,7 @@ "output_type": "stream", "text": [ "\r", - "138it [04:33, 1.80s/it]" + "138it [04:22, 1.90s/it]" ] }, { @@ -2514,7 +2443,7 @@ "output_type": "stream", "text": [ "\r", - "139it [04:35, 1.81s/it]" + "139it [04:24, 1.85s/it]" ] }, { @@ -2529,14 +2458,14 @@ "output_type": "stream", "text": [ "\r", - "140it [04:37, 1.85s/it]" + "140it [04:26, 2.00s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "141 15124634\n" + "141 15124635\n" ] }, { @@ -2544,14 +2473,14 @@ "output_type": "stream", "text": [ "\r", - "141it [04:38, 1.81s/it]" + "141it [04:28, 1.88s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "142 15231900\n" + "142 15231901\n" ] }, { @@ -2559,7 +2488,7 @@ "output_type": "stream", "text": [ "\r", - "142it [04:42, 2.44s/it]" + "142it [04:30, 1.96s/it]" ] }, { @@ -2574,7 +2503,7 @@ "output_type": "stream", "text": [ "\r", - "143it [04:45, 2.37s/it]" + "143it [04:32, 1.93s/it]" ] }, { @@ -2589,7 +2518,7 @@ "output_type": "stream", "text": [ "\r", - "144it [04:48, 2.60s/it]" + "144it [04:33, 1.90s/it]" ] }, { @@ -2604,7 +2533,7 @@ "output_type": "stream", "text": [ "\r", - "145it [04:50, 2.45s/it]" + "145it [04:36, 1.95s/it]" ] }, { @@ -2619,7 +2548,7 @@ "output_type": "stream", "text": [ "\r", - "146it [04:53, 2.74s/it]" + "146it [04:39, 2.29s/it]" ] }, { @@ -2634,14 +2563,14 @@ "output_type": "stream", "text": [ "\r", - "147it [04:55, 2.45s/it]" + "147it [04:40, 2.10s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "148 15875502\n" + "148 15875503\n" ] }, { @@ -2649,14 +2578,14 @@ "output_type": "stream", "text": [ "\r", - "148it [04:57, 2.23s/it]" + "148it [04:42, 2.06s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "149 15982769\n" + "149 15982770\n" ] }, { @@ -2664,14 +2593,14 @@ "output_type": "stream", "text": [ "\r", - "149it [04:59, 2.13s/it]" + "149it [04:44, 1.98s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "150 16090036\n" + "150 16090037\n" ] }, { @@ -2679,14 +2608,14 @@ "output_type": "stream", "text": [ "\r", - "150it [05:00, 2.02s/it]" + "150it [04:46, 1.90s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "151 16197303\n" + "151 16197304\n" ] }, { @@ -2694,14 +2623,14 @@ "output_type": "stream", "text": [ "\r", - "151it [05:02, 1.90s/it]" + "151it [04:48, 1.88s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "152 16304570\n" + "152 16304571\n" ] }, { @@ -2709,14 +2638,14 @@ "output_type": "stream", "text": [ "\r", - "152it [05:04, 1.83s/it]" + "152it [04:49, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "153 16411837\n" + "153 16411838\n" ] }, { @@ -2724,14 +2653,14 @@ "output_type": "stream", "text": [ "\r", - "153it [05:05, 1.77s/it]" + "153it [04:51, 1.78s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "154 16519103\n" + "154 16519104\n" ] }, { @@ -2739,14 +2668,14 @@ "output_type": "stream", "text": [ "\r", - "154it [05:07, 1.72s/it]" + "154it [04:53, 1.75s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "155 16626370\n" + "155 16626371\n" ] }, { @@ -2754,14 +2683,14 @@ "output_type": "stream", "text": [ "\r", - "155it [05:09, 1.69s/it]" + "155it [04:54, 1.75s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "156 16733637\n" + "156 16733638\n" ] }, { @@ -2769,14 +2698,14 @@ "output_type": "stream", "text": [ "\r", - "156it [05:10, 1.68s/it]" + "156it [04:56, 1.75s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "157 16840904\n" + "157 16840905\n" ] }, { @@ -2784,7 +2713,7 @@ "output_type": "stream", "text": [ "\r", - "157it [05:12, 1.83s/it]" + "157it [04:58, 1.77s/it]" ] }, { @@ -2799,7 +2728,7 @@ "output_type": "stream", "text": [ "\r", - "158it [05:14, 1.85s/it]" + "158it [05:00, 1.74s/it]" ] }, { @@ -2814,7 +2743,7 @@ "output_type": "stream", "text": [ "\r", - "159it [05:16, 1.80s/it]" + "159it [05:02, 1.99s/it]" ] }, { @@ -2829,14 +2758,14 @@ "output_type": "stream", "text": [ "\r", - "160it [05:18, 1.76s/it]" + "160it [05:04, 1.92s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "161 17269972\n" + "161 17269973\n" ] }, { @@ -2844,14 +2773,14 @@ "output_type": "stream", "text": [ "\r", - "161it [05:19, 1.74s/it]" + "161it [05:06, 1.89s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "162 17377239\n" + "162 17377240\n" ] }, { @@ -2859,14 +2788,14 @@ "output_type": "stream", "text": [ "\r", - "162it [05:21, 1.71s/it]" + "162it [05:08, 1.83s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "163 17484506\n" + "163 17484507\n" ] }, { @@ -2874,14 +2803,14 @@ "output_type": "stream", "text": [ "\r", - "163it [05:23, 1.71s/it]" + "163it [05:09, 1.79s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "164 17591773\n" + "164 17591774\n" ] }, { @@ -2889,7 +2818,7 @@ "output_type": "stream", "text": [ "\r", - "164it [05:24, 1.69s/it]" + "164it [05:11, 1.80s/it]" ] }, { @@ -2904,7 +2833,7 @@ "output_type": "stream", "text": [ "\r", - "165it [05:26, 1.68s/it]" + "165it [05:13, 1.84s/it]" ] }, { @@ -2919,14 +2848,14 @@ "output_type": "stream", "text": [ "\r", - "166it [05:28, 1.67s/it]" + "166it [05:15, 2.01s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "167 17913573\n" + "167 17913574\n" ] }, { @@ -2934,14 +2863,14 @@ "output_type": "stream", "text": [ "\r", - "167it [05:29, 1.70s/it]" + "167it [05:17, 1.95s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "168 18020840\n" + "168 18020841\n" ] }, { @@ -2949,7 +2878,7 @@ "output_type": "stream", "text": [ "\r", - "168it [05:31, 1.74s/it]" + "168it [05:20, 2.11s/it]" ] }, { @@ -2964,7 +2893,7 @@ "output_type": "stream", "text": [ "\r", - "169it [05:33, 1.71s/it]" + "169it [05:21, 2.01s/it]" ] }, { @@ -2979,7 +2908,7 @@ "output_type": "stream", "text": [ "\r", - "170it [05:36, 2.01s/it]" + "170it [05:24, 2.06s/it]" ] }, { @@ -2994,7 +2923,7 @@ "output_type": "stream", "text": [ "\r", - "171it [05:38, 2.01s/it]" + "171it [05:25, 1.97s/it]" ] }, { @@ -3009,7 +2938,7 @@ "output_type": "stream", "text": [ "\r", - "172it [05:39, 1.97s/it]" + "172it [05:27, 1.92s/it]" ] }, { @@ -3024,14 +2953,14 @@ "output_type": "stream", "text": [ "\r", - "173it [05:41, 1.93s/it]" + "173it [05:29, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "174 18664442\n" + "174 18664443\n" ] }, { @@ -3039,14 +2968,14 @@ "output_type": "stream", "text": [ "\r", - "174it [05:45, 2.55s/it]" + "174it [05:31, 1.85s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "175 18771709\n" + "175 18771710\n" ] }, { @@ -3054,14 +2983,14 @@ "output_type": "stream", "text": [ "\r", - "175it [05:49, 2.87s/it]" + "175it [05:34, 2.13s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "176 18878976\n" + "176 18878977\n" ] }, { @@ -3069,7 +2998,7 @@ "output_type": "stream", "text": [ "\r", - "176it [05:51, 2.68s/it]" + "176it [05:35, 2.02s/it]" ] }, { @@ -3084,7 +3013,7 @@ "output_type": "stream", "text": [ "\r", - "177it [05:53, 2.44s/it]" + "177it [05:37, 1.96s/it]" ] }, { @@ -3099,14 +3028,14 @@ "output_type": "stream", "text": [ "\r", - "178it [05:55, 2.28s/it]" + "178it [05:39, 1.98s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "179 19200776\n" + "179 19200777\n" ] }, { @@ -3114,14 +3043,14 @@ "output_type": "stream", "text": [ "\r", - "179it [05:57, 2.11s/it]" + "179it [05:41, 1.91s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "180 19308043\n" + "180 19308044\n" ] }, { @@ -3129,14 +3058,14 @@ "output_type": "stream", "text": [ "\r", - "180it [05:58, 1.96s/it]" + "180it [05:43, 1.82s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "181 19415310\n" + "181 19415311\n" ] }, { @@ -3144,14 +3073,14 @@ "output_type": "stream", "text": [ "\r", - "181it [06:00, 1.96s/it]" + "181it [05:45, 1.94s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "182 19522577\n" + "182 19522578\n" ] }, { @@ -3159,14 +3088,14 @@ "output_type": "stream", "text": [ "\r", - "182it [06:02, 1.95s/it]" + "182it [05:47, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "183 19629844\n" + "183 19629845\n" ] }, { @@ -3174,7 +3103,7 @@ "output_type": "stream", "text": [ "\r", - "183it [06:04, 1.93s/it]" + "183it [05:48, 1.88s/it]" ] }, { @@ -3189,7 +3118,7 @@ "output_type": "stream", "text": [ "\r", - "184it [06:06, 1.85s/it]" + "184it [05:50, 1.87s/it]" ] }, { @@ -3204,7 +3133,7 @@ "output_type": "stream", "text": [ "\r", - "185it [06:10, 2.48s/it]" + "185it [05:52, 1.84s/it]" ] }, { @@ -3219,7 +3148,7 @@ "output_type": "stream", "text": [ "\r", - "186it [06:12, 2.36s/it]" + "186it [05:54, 1.87s/it]" ] }, { @@ -3234,14 +3163,14 @@ "output_type": "stream", "text": [ "\r", - "187it [06:13, 2.17s/it]" + "187it [05:56, 1.81s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "188 20166179\n" + "188 20166180\n" ] }, { @@ -3249,7 +3178,7 @@ "output_type": "stream", "text": [ "\r", - "188it [06:16, 2.19s/it]" + "188it [06:00, 2.52s/it]" ] }, { @@ -3264,7 +3193,7 @@ "output_type": "stream", "text": [ "\r", - "189it [06:18, 2.30s/it]" + "189it [06:03, 2.81s/it]" ] }, { @@ -3279,7 +3208,7 @@ "output_type": "stream", "text": [ "\r", - "190it [06:20, 2.16s/it]" + "190it [06:07, 3.02s/it]" ] }, { @@ -3294,7 +3223,7 @@ "output_type": "stream", "text": [ "\r", - "191it [06:23, 2.26s/it]" + "191it [06:09, 2.84s/it]" ] }, { @@ -3309,7 +3238,7 @@ "output_type": "stream", "text": [ "\r", - "192it [06:25, 2.22s/it]" + "192it [06:11, 2.54s/it]" ] }, { @@ -3324,14 +3253,14 @@ "output_type": "stream", "text": [ "\r", - "193it [06:27, 2.11s/it]" + "193it [06:13, 2.34s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "194 20809780\n" + "194 20809781\n" ] }, { @@ -3339,14 +3268,14 @@ "output_type": "stream", "text": [ "\r", - "194it [06:29, 2.27s/it]" + "194it [06:15, 2.14s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "195 20917047\n" + "195 20917048\n" ] }, { @@ -3354,14 +3283,14 @@ "output_type": "stream", "text": [ "\r", - "195it [06:31, 2.13s/it]" + "195it [06:16, 1.99s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "196 21024314\n" + "196 21024315\n" ] }, { @@ -3369,14 +3298,14 @@ "output_type": "stream", "text": [ "\r", - "196it [06:33, 2.13s/it]" + "196it [06:18, 2.06s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "197 21131581\n" + "197 21131582\n" ] }, { @@ -3384,14 +3313,14 @@ "output_type": "stream", "text": [ "\r", - "197it [06:36, 2.39s/it]" + "197it [06:20, 2.02s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "198 21238848\n" + "198 21238849\n" ] }, { @@ -3399,14 +3328,14 @@ "output_type": "stream", "text": [ "\r", - "198it [06:38, 2.26s/it]" + "198it [06:22, 1.97s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "199 21346115\n" + "199 21346116\n" ] }, { @@ -3414,14 +3343,14 @@ "output_type": "stream", "text": [ "\r", - "199it [06:40, 2.19s/it]" + "199it [06:24, 1.88s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "200 21453382\n" + "200 21453383\n" ] }, { @@ -3429,7 +3358,7 @@ "output_type": "stream", "text": [ "\r", - "200it [06:42, 2.17s/it]" + "200it [06:26, 1.88s/it]" ] }, { @@ -3444,14 +3373,14 @@ "output_type": "stream", "text": [ "\r", - "201it [06:44, 2.15s/it]" + "201it [06:28, 1.90s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "202 21667915\n" + "202 21667916\n" ] }, { @@ -3459,14 +3388,14 @@ "output_type": "stream", "text": [ "\r", - "202it [06:50, 3.33s/it]" + "202it [06:30, 1.88s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "203 21775182\n" + "203 21775183\n" ] }, { @@ -3474,7 +3403,7 @@ "output_type": "stream", "text": [ "\r", - "203it [06:54, 3.49s/it]" + "203it [06:31, 1.82s/it]" ] }, { @@ -3489,7 +3418,7 @@ "output_type": "stream", "text": [ "\r", - "204it [06:57, 3.38s/it]" + "204it [06:33, 1.78s/it]" ] }, { @@ -3504,7 +3433,7 @@ "output_type": "stream", "text": [ "\r", - "205it [06:59, 2.99s/it]" + "205it [06:35, 1.84s/it]" ] }, { @@ -3519,7 +3448,7 @@ "output_type": "stream", "text": [ "\r", - "206it [07:02, 2.79s/it]" + "206it [06:37, 1.86s/it]" ] }, { @@ -3534,7 +3463,7 @@ "output_type": "stream", "text": [ "\r", - "207it [07:04, 2.53s/it]" + "207it [06:40, 2.13s/it]" ] }, { @@ -3549,14 +3478,14 @@ "output_type": "stream", "text": [ "\r", - "208it [07:06, 2.35s/it]" + "208it [06:41, 2.01s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "209 22418784\n" + "209 22418785\n" ] }, { @@ -3564,14 +3493,14 @@ "output_type": "stream", "text": [ "\r", - "209it [07:08, 2.28s/it]" + "209it [06:43, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "210 22526051\n" + "210 22526052\n" ] }, { @@ -3579,14 +3508,14 @@ "output_type": "stream", "text": [ "\r", - "210it [07:10, 2.18s/it]" + "210it [06:45, 1.90s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "211 22633318\n" + "211 22633319\n" ] }, { @@ -3594,7 +3523,7 @@ "output_type": "stream", "text": [ "\r", - "211it [07:12, 2.12s/it]" + "211it [06:47, 1.99s/it]" ] }, { @@ -3609,7 +3538,7 @@ "output_type": "stream", "text": [ "\r", - "212it [07:14, 2.10s/it]" + "212it [06:49, 1.94s/it]" ] }, { @@ -3624,14 +3553,14 @@ "output_type": "stream", "text": [ "\r", - "213it [07:16, 2.08s/it]" + "213it [06:51, 2.07s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "214 22955118\n" + "214 22955119\n" ] }, { @@ -3639,14 +3568,14 @@ "output_type": "stream", "text": [ "\r", - "214it [07:18, 2.05s/it]" + "214it [06:53, 1.95s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "215 23062385\n" + "215 23062386\n" ] }, { @@ -3654,14 +3583,14 @@ "output_type": "stream", "text": [ "\r", - "215it [07:20, 2.09s/it]" + "215it [06:55, 1.88s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "216 23169652\n" + "216 23169653\n" ] }, { @@ -3669,14 +3598,14 @@ "output_type": "stream", "text": [ "\r", - "216it [07:22, 2.06s/it]" + "216it [06:57, 1.94s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "217 23276919\n" + "217 23276920\n" ] }, { @@ -3684,14 +3613,14 @@ "output_type": "stream", "text": [ "\r", - "217it [07:24, 2.17s/it]" + "217it [06:59, 2.04s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "218 23384186\n" + "218 23384187\n" ] }, { @@ -3699,7 +3628,7 @@ "output_type": "stream", "text": [ "\r", - "218it [07:27, 2.22s/it]" + "218it [07:01, 1.96s/it]" ] }, { @@ -3714,7 +3643,7 @@ "output_type": "stream", "text": [ "\r", - "219it [07:29, 2.21s/it]" + "219it [07:02, 1.88s/it]" ] }, { @@ -3729,7 +3658,7 @@ "output_type": "stream", "text": [ "\r", - "220it [07:31, 2.11s/it]" + "220it [07:04, 1.82s/it]" ] }, { @@ -3744,7 +3673,7 @@ "output_type": "stream", "text": [ "\r", - "221it [07:33, 2.13s/it]" + "221it [07:07, 2.04s/it]" ] }, { @@ -3759,14 +3688,14 @@ "output_type": "stream", "text": [ "\r", - "222it [07:35, 2.10s/it]" + "222it [07:09, 2.00s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "223 23920521\n" + "223 23920522\n" ] }, { @@ -3774,7 +3703,7 @@ "output_type": "stream", "text": [ "\r", - "223it [07:40, 2.96s/it]" + "223it [07:11, 2.13s/it]" ] }, { @@ -3789,7 +3718,7 @@ "output_type": "stream", "text": [ "\r", - "224it [07:42, 2.69s/it]" + "224it [07:13, 2.04s/it]" ] }, { @@ -3804,7 +3733,7 @@ "output_type": "stream", "text": [ "\r", - "225it [07:44, 2.52s/it]" + "225it [07:15, 1.93s/it]" ] }, { @@ -3819,7 +3748,7 @@ "output_type": "stream", "text": [ "\r", - "226it [07:46, 2.36s/it]" + "226it [07:16, 1.84s/it]" ] }, { @@ -3834,7 +3763,7 @@ "output_type": "stream", "text": [ "\r", - "227it [07:48, 2.27s/it]" + "227it [07:18, 1.79s/it]" ] }, { @@ -3849,14 +3778,14 @@ "output_type": "stream", "text": [ "\r", - "228it [07:51, 2.36s/it]" + "228it [07:20, 1.77s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "229 24564122\n" + "229 24564123\n" ] }, { @@ -3864,14 +3793,14 @@ "output_type": "stream", "text": [ "\r", - "229it [07:53, 2.26s/it]" + "229it [07:21, 1.76s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "230 24671389\n" + "230 24671390\n" ] }, { @@ -3879,14 +3808,14 @@ "output_type": "stream", "text": [ "\r", - "230it [07:55, 2.29s/it]" + "230it [07:23, 1.74s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "231 24778656\n" + "231 24778657\n" ] }, { @@ -3894,14 +3823,14 @@ "output_type": "stream", "text": [ "\r", - "231it [07:57, 2.32s/it]" + "231it [07:26, 2.00s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "232 24885923\n" + "232 24885924\n" ] }, { @@ -3909,14 +3838,14 @@ "output_type": "stream", "text": [ "\r", - "232it [08:00, 2.38s/it]" + "232it [07:27, 1.95s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "233 24993190\n" + "233 24993191\n" ] }, { @@ -3924,14 +3853,14 @@ "output_type": "stream", "text": [ "\r", - "233it [08:03, 2.55s/it]" + "233it [07:29, 1.86s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "234 25100457\n" + "234 25100458\n" ] }, { @@ -3939,14 +3868,14 @@ "output_type": "stream", "text": [ "\r", - "234it [08:06, 2.65s/it]" + "234it [07:31, 1.81s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "235 25207724\n" + "235 25207725\n" ] }, { @@ -3954,7 +3883,7 @@ "output_type": "stream", "text": [ "\r", - "235it [08:08, 2.48s/it]" + "235it [07:33, 1.80s/it]" ] }, { @@ -3969,7 +3898,7 @@ "output_type": "stream", "text": [ "\r", - "236it [08:10, 2.37s/it]" + "236it [07:34, 1.81s/it]" ] }, { @@ -3984,14 +3913,14 @@ "output_type": "stream", "text": [ "\r", - "237it [08:14, 2.76s/it]" + "237it [07:36, 1.76s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "238 25529524\n" + "238 25529525\n" ] }, { @@ -3999,7 +3928,7 @@ "output_type": "stream", "text": [ "\r", - "238it [08:16, 2.51s/it]" + "238it [07:38, 1.74s/it]" ] }, { @@ -4014,7 +3943,7 @@ "output_type": "stream", "text": [ "\r", - "239it [08:18, 2.58s/it]" + "239it [07:40, 1.77s/it]" ] }, { @@ -4029,7 +3958,7 @@ "output_type": "stream", "text": [ "\r", - "240it [08:20, 2.43s/it]" + "240it [07:43, 2.15s/it]" ] }, { @@ -4044,7 +3973,7 @@ "output_type": "stream", "text": [ "\r", - "241it [08:22, 2.30s/it]" + "241it [07:44, 2.01s/it]" ] }, { @@ -4059,7 +3988,7 @@ "output_type": "stream", "text": [ "\r", - "242it [08:25, 2.24s/it]" + "242it [07:47, 2.13s/it]" ] }, { @@ -4074,14 +4003,14 @@ "output_type": "stream", "text": [ "\r", - "243it [08:26, 2.13s/it]" + "243it [07:50, 2.33s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "244 26173126\n" + "244 26173127\n" ] }, { @@ -4089,14 +4018,14 @@ "output_type": "stream", "text": [ "\r", - "244it [08:28, 2.10s/it]" + "244it [07:52, 2.24s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "245 26280393\n" + "245 26280394\n" ] }, { @@ -4104,14 +4033,14 @@ "output_type": "stream", "text": [ "\r", - "245it [08:31, 2.10s/it]" + "245it [07:53, 2.11s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "246 26387660\n" + "246 26387661\n" ] }, { @@ -4119,14 +4048,14 @@ "output_type": "stream", "text": [ "\r", - "246it [08:32, 2.03s/it]" + "246it [07:55, 2.04s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "247 26494927\n" + "247 26494928\n" ] }, { @@ -4134,7 +4063,7 @@ "output_type": "stream", "text": [ "\r", - "247it [08:34, 2.03s/it]" + "247it [07:57, 1.93s/it]" ] }, { @@ -4149,7 +4078,7 @@ "output_type": "stream", "text": [ "\r", - "248it [08:37, 2.04s/it]" + "248it [07:59, 1.87s/it]" ] }, { @@ -4164,14 +4093,14 @@ "output_type": "stream", "text": [ "\r", - "249it [08:38, 2.01s/it]" + "249it [08:00, 1.81s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "250 26816727\n" + "250 26816728\n" ] }, { @@ -4179,14 +4108,14 @@ "output_type": "stream", "text": [ "\r", - "250it [08:40, 2.01s/it]" + "250it [08:02, 1.77s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "251 26923994\n" + "251 26923995\n" ] }, { @@ -4194,14 +4123,14 @@ "output_type": "stream", "text": [ "\r", - "251it [08:43, 2.04s/it]" + "251it [08:04, 1.81s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "252 27031261\n" + "252 27031262\n" ] }, { @@ -4209,14 +4138,14 @@ "output_type": "stream", "text": [ "\r", - "252it [08:45, 2.09s/it]" + "252it [08:06, 1.83s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "253 27138528\n" + "253 27138529\n" ] }, { @@ -4224,7 +4153,7 @@ "output_type": "stream", "text": [ "\r", - "253it [08:47, 2.15s/it]" + "253it [08:08, 1.83s/it]" ] }, { @@ -4239,7 +4168,7 @@ "output_type": "stream", "text": [ "\r", - "254it [08:49, 2.15s/it]" + "254it [08:10, 1.88s/it]" ] }, { @@ -4254,7 +4183,7 @@ "output_type": "stream", "text": [ "\r", - "255it [08:53, 2.64s/it]" + "255it [08:12, 1.92s/it]" ] }, { @@ -4269,7 +4198,7 @@ "output_type": "stream", "text": [ "\r", - "256it [08:56, 2.61s/it]" + "256it [08:14, 1.97s/it]" ] }, { @@ -4284,14 +4213,14 @@ "output_type": "stream", "text": [ "\r", - "257it [08:58, 2.53s/it]" + "257it [08:16, 1.95s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "258 27674863\n" + "258 27674864\n" ] }, { @@ -4299,14 +4228,14 @@ "output_type": "stream", "text": [ "\r", - "258it [09:01, 2.64s/it]" + "258it [08:21, 3.01s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "259 27782130\n" + "259 27782131\n" ] }, { @@ -4314,7 +4243,7 @@ "output_type": "stream", "text": [ "\r", - "259it [09:03, 2.43s/it]" + "259it [08:23, 2.72s/it]" ] }, { @@ -4329,7 +4258,7 @@ "output_type": "stream", "text": [ "\r", - "260it [09:05, 2.29s/it]" + "260it [08:25, 2.45s/it]" ] }, { @@ -4344,7 +4273,7 @@ "output_type": "stream", "text": [ "\r", - "261it [09:07, 2.23s/it]" + "261it [08:27, 2.26s/it]" ] }, { @@ -4359,7 +4288,7 @@ "output_type": "stream", "text": [ "\r", - "262it [09:09, 2.22s/it]" + "262it [08:28, 2.09s/it]" ] }, { @@ -4374,14 +4303,14 @@ "output_type": "stream", "text": [ "\r", - "263it [09:11, 2.18s/it]" + "263it [08:30, 1.96s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "264 28318464\n" + "264 28318465\n" ] }, { @@ -4389,14 +4318,14 @@ "output_type": "stream", "text": [ "\r", - "264it [09:13, 2.20s/it]" + "264it [08:32, 2.02s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "265 28425731\n" + "265 28425732\n" ] }, { @@ -4404,14 +4333,14 @@ "output_type": "stream", "text": [ "\r", - "265it [09:17, 2.51s/it]" + "265it [08:36, 2.41s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "266 28532998\n" + "266 28532999\n" ] }, { @@ -4419,14 +4348,14 @@ "output_type": "stream", "text": [ "\r", - "266it [09:19, 2.57s/it]" + "266it [08:37, 2.24s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "267 28640265\n" + "267 28640266\n" ] }, { @@ -4434,14 +4363,14 @@ "output_type": "stream", "text": [ "\r", - "267it [09:21, 2.41s/it]" + "267it [08:39, 2.14s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "268 28747532\n" + "268 28747533\n" ] }, { @@ -4449,14 +4378,14 @@ "output_type": "stream", "text": [ "\r", - "268it [09:24, 2.48s/it]" + "268it [08:41, 2.04s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "269 28854799\n" + "269 28854800\n" ] }, { @@ -4464,14 +4393,14 @@ "output_type": "stream", "text": [ "\r", - "269it [09:30, 3.45s/it]" + "269it [08:43, 1.97s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "270 28962066\n" + "270 28962067\n" ] }, { @@ -4479,7 +4408,7 @@ "output_type": "stream", "text": [ "\r", - "270it [09:32, 3.07s/it]" + "270it [08:45, 2.02s/it]" ] }, { @@ -4494,7 +4423,7 @@ "output_type": "stream", "text": [ "\r", - "271it [09:34, 2.78s/it]" + "271it [08:47, 1.97s/it]" ] }, { @@ -4509,14 +4438,14 @@ "output_type": "stream", "text": [ "\r", - "272it [09:36, 2.56s/it]" + "272it [08:49, 1.90s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "273 29283866\n" + "273 29283867\n" ] }, { @@ -4524,7 +4453,7 @@ "output_type": "stream", "text": [ "\r", - "273it [09:38, 2.39s/it]" + "273it [08:50, 1.84s/it]" ] }, { @@ -4539,7 +4468,7 @@ "output_type": "stream", "text": [ "\r", - "274it [09:40, 2.31s/it]" + "274it [08:55, 2.58s/it]" ] }, { @@ -4554,7 +4483,7 @@ "output_type": "stream", "text": [ "\r", - "275it [09:42, 2.33s/it]" + "275it [08:56, 2.32s/it]" ] }, { @@ -4569,7 +4498,7 @@ "output_type": "stream", "text": [ "\r", - "276it [09:45, 2.27s/it]" + "276it [08:58, 2.11s/it]" ] }, { @@ -4584,7 +4513,7 @@ "output_type": "stream", "text": [ "\r", - "277it [09:46, 2.14s/it]" + "277it [09:00, 2.01s/it]" ] }, { @@ -4599,14 +4528,14 @@ "output_type": "stream", "text": [ "\r", - "278it [09:48, 2.06s/it]" + "278it [09:01, 1.91s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "279 29927468\n" + "279 29927469\n" ] }, { @@ -4614,14 +4543,14 @@ "output_type": "stream", "text": [ "\r", - "279it [09:50, 2.07s/it]" + "279it [09:03, 1.88s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "280 30034735\n" + "280 30034736\n" ] }, { @@ -4629,14 +4558,14 @@ "output_type": "stream", "text": [ "\r", - "280it [09:53, 2.24s/it]" + "280it [09:06, 2.02s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "281 30142002\n" + "281 30142003\n" ] }, { @@ -4644,14 +4573,14 @@ "output_type": "stream", "text": [ "\r", - "281it [09:55, 2.27s/it]" + "281it [09:07, 1.91s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "282 30249269\n" + "282 30249270\n" ] }, { @@ -4659,7 +4588,7 @@ "output_type": "stream", "text": [ "\r", - "282it [09:58, 2.25s/it]" + "282it [09:09, 1.94s/it]" ] }, { @@ -4674,7 +4603,7 @@ "output_type": "stream", "text": [ "\r", - "283it [10:00, 2.24s/it]" + "283it [09:11, 1.92s/it]" ] }, { @@ -4689,14 +4618,14 @@ "output_type": "stream", "text": [ "\r", - "284it [10:02, 2.31s/it]" + "284it [09:13, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "285 30571069\n" + "285 30571070\n" ] }, { @@ -4704,14 +4633,14 @@ "output_type": "stream", "text": [ "\r", - "285it [10:05, 2.34s/it]" + "285it [09:15, 1.89s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "286 30678336\n" + "286 30678337\n" ] }, { @@ -4719,14 +4648,14 @@ "output_type": "stream", "text": [ "\r", - "286it [10:07, 2.33s/it]" + "286it [09:17, 1.87s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "287 30785603\n" + "287 30785604\n" ] }, { @@ -4734,14 +4663,14 @@ "output_type": "stream", "text": [ "\r", - "287it [10:09, 2.21s/it]" + "287it [09:19, 1.85s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "288 30892870\n" + "288 30892871\n" ] }, { @@ -4749,7 +4678,7 @@ "output_type": "stream", "text": [ "\r", - "288it [10:11, 2.17s/it]" + "288it [09:20, 1.80s/it]" ] }, { @@ -4764,7 +4693,7 @@ "output_type": "stream", "text": [ "\r", - "289it [10:13, 2.15s/it]" + "289it [09:22, 1.80s/it]" ] }, { @@ -4779,7 +4708,7 @@ "output_type": "stream", "text": [ "\r", - "290it [10:15, 2.10s/it]" + "290it [09:24, 1.79s/it]" ] }, { @@ -4794,7 +4723,7 @@ "output_type": "stream", "text": [ "\r", - "291it [10:17, 2.08s/it]" + "291it [09:27, 2.11s/it]" ] }, { @@ -4809,14 +4738,14 @@ "output_type": "stream", "text": [ "\r", - "292it [10:20, 2.46s/it]" + "292it [09:29, 2.09s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "293 31429205\n" + "293 31429206\n" ] }, { @@ -4824,14 +4753,14 @@ "output_type": "stream", "text": [ "\r", - "293it [10:23, 2.39s/it]" + "293it [09:31, 2.01s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "294 31536472\n" + "294 31536473\n" ] }, { @@ -4839,7 +4768,7 @@ "output_type": "stream", "text": [ "\r", - "294it [10:25, 2.25s/it]" + "294it [09:32, 1.95s/it]" ] }, { @@ -4854,7 +4783,7 @@ "output_type": "stream", "text": [ "\r", - "295it [10:27, 2.22s/it]" + "295it [09:36, 2.59s/it]" ] }, { @@ -4869,7 +4798,7 @@ "output_type": "stream", "text": [ "\r", - "296it [10:29, 2.32s/it]" + "296it [09:39, 2.53s/it]" ] }, { @@ -4884,7 +4813,7 @@ "output_type": "stream", "text": [ "\r", - "297it [10:31, 2.23s/it]" + "297it [09:41, 2.30s/it]" ] }, { @@ -4899,14 +4828,14 @@ "output_type": "stream", "text": [ "\r", - "298it [10:33, 2.12s/it]" + "298it [09:42, 2.14s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "299 32072806\n" + "299 32072807\n" ] }, { @@ -4914,14 +4843,14 @@ "output_type": "stream", "text": [ "\r", - "299it [10:35, 2.06s/it]" + "299it [09:44, 2.10s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "300 32180073\n" + "300 32180074\n" ] }, { @@ -4929,14 +4858,14 @@ "output_type": "stream", "text": [ "\r", - "300it [10:37, 2.13s/it]" + "300it [09:47, 2.18s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "301 32287340\n" + "301 32287341\n" ] }, { @@ -4944,14 +4873,14 @@ "output_type": "stream", "text": [ "\r", - "301it [10:39, 2.09s/it]" + "301it [09:49, 2.12s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "302 32394607\n" + "302 32394608\n" ] }, { @@ -4959,14 +4888,14 @@ "output_type": "stream", "text": [ "\r", - "302it [10:41, 2.03s/it]" + "302it [09:50, 2.02s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "303 32501874\n" + "303 32501875\n" ] }, { @@ -4974,14 +4903,14 @@ "output_type": "stream", "text": [ "\r", - "303it [10:43, 1.97s/it]" + "303it [09:52, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "304 32609141\n" + "304 32609142\n" ] }, { @@ -4989,14 +4918,14 @@ "output_type": "stream", "text": [ "\r", - "304it [10:45, 2.03s/it]" + "304it [09:54, 1.84s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "305 32716408\n" + "305 32716409\n" ] }, { @@ -5004,14 +4933,14 @@ "output_type": "stream", "text": [ "\r", - "305it [10:47, 1.99s/it]" + "305it [09:56, 1.79s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "306 32823675\n" + "306 32823676\n" ] }, { @@ -5019,7 +4948,7 @@ "output_type": "stream", "text": [ "\r", - "306it [10:49, 1.98s/it]" + "306it [09:58, 1.96s/it]" ] }, { @@ -5034,7 +4963,7 @@ "output_type": "stream", "text": [ "\r", - "307it [10:51, 1.93s/it]" + "307it [10:00, 1.90s/it]" ] }, { @@ -5049,7 +4978,7 @@ "output_type": "stream", "text": [ "\r", - "308it [10:53, 2.09s/it]" + "308it [10:01, 1.86s/it]" ] }, { @@ -5064,7 +4993,7 @@ "output_type": "stream", "text": [ "\r", - "309it [10:56, 2.22s/it]" + "309it [10:03, 1.82s/it]" ] }, { @@ -5079,7 +5008,7 @@ "output_type": "stream", "text": [ "\r", - "310it [10:58, 2.14s/it]" + "310it [10:05, 1.83s/it]" ] }, { @@ -5094,7 +5023,7 @@ "output_type": "stream", "text": [ "\r", - "311it [11:00, 2.11s/it]" + "311it [10:07, 1.95s/it]" ] }, { @@ -5109,7 +5038,7 @@ "output_type": "stream", "text": [ "\r", - "312it [11:02, 2.19s/it]" + "312it [10:10, 2.17s/it]" ] }, { @@ -5124,14 +5053,14 @@ "output_type": "stream", "text": [ "\r", - "313it [11:04, 2.16s/it]" + "313it [10:12, 2.11s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "314 33681810\n" + "314 33681811\n" ] }, { @@ -5139,14 +5068,14 @@ "output_type": "stream", "text": [ "\r", - "314it [11:06, 2.12s/it]" + "314it [10:14, 2.05s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "315 33789077\n" + "315 33789078\n" ] }, { @@ -5154,14 +5083,14 @@ "output_type": "stream", "text": [ "\r", - "315it [11:10, 2.68s/it]" + "315it [10:16, 1.98s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "316 33896344\n" + "316 33896345\n" ] }, { @@ -5169,14 +5098,14 @@ "output_type": "stream", "text": [ "\r", - "316it [11:12, 2.47s/it]" + "316it [10:17, 1.92s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "317 34003611\n" + "317 34003612\n" ] }, { @@ -5184,7 +5113,7 @@ "output_type": "stream", "text": [ "\r", - "317it [11:14, 2.30s/it]" + "317it [10:20, 2.17s/it]" ] }, { @@ -5199,7 +5128,7 @@ "output_type": "stream", "text": [ "\r", - "318it [11:16, 2.13s/it]" + "318it [10:22, 2.13s/it]" ] }, { @@ -5214,7 +5143,7 @@ "output_type": "stream", "text": [ "\r", - "319it [11:18, 2.01s/it]" + "319it [10:24, 2.02s/it]" ] }, { @@ -5229,7 +5158,7 @@ "output_type": "stream", "text": [ "\r", - "320it [11:20, 2.02s/it]" + "320it [10:26, 1.96s/it]" ] }, { @@ -5243,7 +5172,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "321it [11:21, 2.12s/it]\n" + "321it [10:26, 1.95s/it]\n" ] } ], @@ -5303,7 +5232,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -5312,7 +5241,7 @@ "107374182" ] }, - "execution_count": 23, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -5323,7 +5252,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -5335,7 +5264,7 @@ "SyftSuccess: Successfully saved file." ] }, - "execution_count": 24, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -5346,7 +5275,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ diff --git a/packages/grid/seaweedfs/start.sh b/packages/grid/seaweedfs/start.sh index 64ba9581722..01038fc91ba 100644 --- a/packages/grid/seaweedfs/start.sh +++ b/packages/grid/seaweedfs/start.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -weed server -s3 -s3.port="$S3_PORT" -volume.max=5 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & +weed server -s3 -s3.port="$S3_PORT" -volume.max=10 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & echo "s3.configure -access_key $S3_ROOT_USER -secret_key $S3_ROOT_PWD \ -user iam -actions Read,Write,List,Tagging,Admin -apply" | weed shell > /dev/null 2>&1 From fc24418aa5e3e47edd2d4e45502b709283cb1385 Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Fri, 26 Jan 2024 18:42:11 +0100 Subject: [PATCH 6/9] - --- notebooks/helm/direct_azure.ipynb | 644 +++++++++++++++--------------- packages/grid/seaweedfs/start.sh | 2 +- 2 files changed, 323 insertions(+), 323 deletions(-) diff --git a/notebooks/helm/direct_azure.ipynb b/notebooks/helm/direct_azure.ipynb index 5622ef8a644..b34e96bc564 100644 --- a/notebooks/helm/direct_azure.ipynb +++ b/notebooks/helm/direct_azure.ipynb @@ -204,7 +204,7 @@ "text/markdown": [ "```python\n", "class SeaweedFSBlobDeposit:\n", - " id: str = 67edf1bd47ef40bea30b949e90fee4e0\n", + " id: str = 36c602b06ef444c7a6be950f6c923352\n", "\n", "```" ], @@ -373,7 +373,7 @@ "output_type": "stream", "text": [ "\r", - "1it [00:03, 3.91s/it]" + "1it [00:08, 8.17s/it]" ] }, { @@ -388,7 +388,7 @@ "output_type": "stream", "text": [ "\r", - "2it [00:05, 2.76s/it]" + "2it [00:12, 5.75s/it]" ] }, { @@ -403,7 +403,7 @@ "output_type": "stream", "text": [ "\r", - "3it [00:07, 2.22s/it]" + "3it [00:14, 4.13s/it]" ] }, { @@ -418,7 +418,7 @@ "output_type": "stream", "text": [ "\r", - "4it [00:09, 1.98s/it]" + "4it [00:16, 3.32s/it]" ] }, { @@ -433,7 +433,7 @@ "output_type": "stream", "text": [ "\r", - "5it [00:10, 1.86s/it]" + "5it [00:18, 2.80s/it]" ] }, { @@ -448,7 +448,7 @@ "output_type": "stream", "text": [ "\r", - "6it [00:12, 1.77s/it]" + "6it [00:20, 2.47s/it]" ] }, { @@ -463,7 +463,7 @@ "output_type": "stream", "text": [ "\r", - "7it [00:14, 1.93s/it]" + "7it [00:22, 2.28s/it]" ] }, { @@ -478,7 +478,7 @@ "output_type": "stream", "text": [ "\r", - "8it [00:16, 1.89s/it]" + "8it [00:24, 2.19s/it]" ] }, { @@ -493,7 +493,7 @@ "output_type": "stream", "text": [ "\r", - "9it [00:18, 1.86s/it]" + "9it [00:25, 2.08s/it]" ] }, { @@ -508,7 +508,7 @@ "output_type": "stream", "text": [ "\r", - "10it [00:19, 1.79s/it]" + "10it [00:27, 2.02s/it]" ] }, { @@ -523,7 +523,7 @@ "output_type": "stream", "text": [ "\r", - "11it [00:21, 1.68s/it]" + "11it [00:29, 1.94s/it]" ] }, { @@ -538,7 +538,7 @@ "output_type": "stream", "text": [ "\r", - "12it [00:22, 1.63s/it]" + "12it [00:31, 1.88s/it]" ] }, { @@ -553,7 +553,7 @@ "output_type": "stream", "text": [ "\r", - "13it [00:24, 1.77s/it]" + "13it [00:33, 1.99s/it]" ] }, { @@ -568,7 +568,7 @@ "output_type": "stream", "text": [ "\r", - "14it [00:26, 1.72s/it]" + "14it [00:35, 1.98s/it]" ] }, { @@ -583,7 +583,7 @@ "output_type": "stream", "text": [ "\r", - "15it [00:27, 1.64s/it]" + "15it [00:37, 2.05s/it]" ] }, { @@ -598,7 +598,7 @@ "output_type": "stream", "text": [ "\r", - "16it [00:29, 1.59s/it]" + "16it [00:39, 2.03s/it]" ] }, { @@ -613,7 +613,7 @@ "output_type": "stream", "text": [ "\r", - "17it [00:30, 1.58s/it]" + "17it [00:41, 2.03s/it]" ] }, { @@ -628,7 +628,7 @@ "output_type": "stream", "text": [ "\r", - "18it [00:33, 1.87s/it]" + "18it [00:43, 2.01s/it]" ] }, { @@ -643,7 +643,7 @@ "output_type": "stream", "text": [ "\r", - "19it [00:34, 1.76s/it]" + "19it [00:45, 2.05s/it]" ] }, { @@ -658,7 +658,7 @@ "output_type": "stream", "text": [ "\r", - "20it [00:36, 1.69s/it]" + "20it [00:48, 2.08s/it]" ] }, { @@ -673,7 +673,7 @@ "output_type": "stream", "text": [ "\r", - "21it [00:38, 1.71s/it]" + "21it [00:50, 2.24s/it]" ] }, { @@ -688,7 +688,7 @@ "output_type": "stream", "text": [ "\r", - "22it [00:39, 1.69s/it]" + "22it [00:53, 2.44s/it]" ] }, { @@ -703,7 +703,7 @@ "output_type": "stream", "text": [ "\r", - "23it [00:41, 1.67s/it]" + "23it [00:57, 2.85s/it]" ] }, { @@ -718,7 +718,7 @@ "output_type": "stream", "text": [ "\r", - "24it [00:43, 1.68s/it]" + "24it [00:59, 2.56s/it]" ] }, { @@ -733,7 +733,7 @@ "output_type": "stream", "text": [ "\r", - "25it [00:45, 1.77s/it]" + "25it [01:01, 2.40s/it]" ] }, { @@ -748,7 +748,7 @@ "output_type": "stream", "text": [ "\r", - "26it [00:46, 1.74s/it]" + "26it [01:03, 2.23s/it]" ] }, { @@ -763,7 +763,7 @@ "output_type": "stream", "text": [ "\r", - "27it [00:48, 1.67s/it]" + "27it [01:05, 2.16s/it]" ] }, { @@ -778,7 +778,7 @@ "output_type": "stream", "text": [ "\r", - "28it [00:49, 1.64s/it]" + "28it [01:07, 2.11s/it]" ] }, { @@ -793,7 +793,7 @@ "output_type": "stream", "text": [ "\r", - "29it [00:51, 1.63s/it]" + "29it [01:08, 1.97s/it]" ] }, { @@ -808,7 +808,7 @@ "output_type": "stream", "text": [ "\r", - "30it [00:53, 1.61s/it]" + "30it [01:11, 2.13s/it]" ] }, { @@ -823,7 +823,7 @@ "output_type": "stream", "text": [ "\r", - "31it [00:54, 1.60s/it]" + "31it [01:13, 2.08s/it]" ] }, { @@ -838,7 +838,7 @@ "output_type": "stream", "text": [ "\r", - "32it [00:56, 1.56s/it]" + "32it [01:14, 2.00s/it]" ] }, { @@ -853,7 +853,7 @@ "output_type": "stream", "text": [ "\r", - "33it [00:58, 1.79s/it]" + "33it [01:16, 1.98s/it]" ] }, { @@ -868,7 +868,7 @@ "output_type": "stream", "text": [ "\r", - "34it [00:59, 1.69s/it]" + "34it [01:18, 1.93s/it]" ] }, { @@ -883,7 +883,7 @@ "output_type": "stream", "text": [ "\r", - "35it [01:01, 1.73s/it]" + "35it [01:20, 1.92s/it]" ] }, { @@ -898,7 +898,7 @@ "output_type": "stream", "text": [ "\r", - "36it [01:03, 1.70s/it]" + "36it [01:23, 2.15s/it]" ] }, { @@ -913,7 +913,7 @@ "output_type": "stream", "text": [ "\r", - "37it [01:05, 1.68s/it]" + "37it [01:25, 2.05s/it]" ] }, { @@ -928,7 +928,7 @@ "output_type": "stream", "text": [ "\r", - "38it [01:06, 1.63s/it]" + "38it [01:26, 1.94s/it]" ] }, { @@ -943,7 +943,7 @@ "output_type": "stream", "text": [ "\r", - "39it [01:08, 1.61s/it]" + "39it [01:29, 2.16s/it]" ] }, { @@ -958,7 +958,7 @@ "output_type": "stream", "text": [ "\r", - "40it [01:09, 1.61s/it]" + "40it [01:31, 2.08s/it]" ] }, { @@ -973,7 +973,7 @@ "output_type": "stream", "text": [ "\r", - "41it [01:11, 1.63s/it]" + "41it [01:33, 2.03s/it]" ] }, { @@ -988,7 +988,7 @@ "output_type": "stream", "text": [ "\r", - "42it [01:13, 1.65s/it]" + "42it [01:35, 2.18s/it]" ] }, { @@ -1003,7 +1003,7 @@ "output_type": "stream", "text": [ "\r", - "43it [01:14, 1.67s/it]" + "43it [01:37, 2.06s/it]" ] }, { @@ -1018,7 +1018,7 @@ "output_type": "stream", "text": [ "\r", - "44it [01:16, 1.69s/it]" + "44it [01:39, 2.02s/it]" ] }, { @@ -1033,7 +1033,7 @@ "output_type": "stream", "text": [ "\r", - "45it [01:18, 1.91s/it]" + "45it [01:41, 2.12s/it]" ] }, { @@ -1048,7 +1048,7 @@ "output_type": "stream", "text": [ "\r", - "46it [01:20, 1.79s/it]" + "46it [01:43, 2.07s/it]" ] }, { @@ -1063,7 +1063,7 @@ "output_type": "stream", "text": [ "\r", - "47it [01:21, 1.70s/it]" + "47it [01:47, 2.53s/it]" ] }, { @@ -1078,7 +1078,7 @@ "output_type": "stream", "text": [ "\r", - "48it [01:23, 1.74s/it]" + "48it [01:49, 2.36s/it]" ] }, { @@ -1093,7 +1093,7 @@ "output_type": "stream", "text": [ "\r", - "49it [01:25, 1.82s/it]" + "49it [01:51, 2.26s/it]" ] }, { @@ -1108,7 +1108,7 @@ "output_type": "stream", "text": [ "\r", - "50it [01:27, 1.85s/it]" + "50it [01:53, 2.13s/it]" ] }, { @@ -1123,7 +1123,7 @@ "output_type": "stream", "text": [ "\r", - "51it [01:30, 2.05s/it]" + "51it [01:54, 2.00s/it]" ] }, { @@ -1138,7 +1138,7 @@ "output_type": "stream", "text": [ "\r", - "52it [01:31, 1.92s/it]" + "52it [01:56, 1.91s/it]" ] }, { @@ -1153,7 +1153,7 @@ "output_type": "stream", "text": [ "\r", - "53it [01:33, 1.86s/it]" + "53it [01:58, 1.85s/it]" ] }, { @@ -1168,7 +1168,7 @@ "output_type": "stream", "text": [ "\r", - "54it [01:35, 1.99s/it]" + "54it [02:01, 2.37s/it]" ] }, { @@ -1183,7 +1183,7 @@ "output_type": "stream", "text": [ "\r", - "55it [01:37, 1.95s/it]" + "55it [02:03, 2.19s/it]" ] }, { @@ -1198,7 +1198,7 @@ "output_type": "stream", "text": [ "\r", - "56it [01:39, 1.85s/it]" + "56it [02:05, 2.08s/it]" ] }, { @@ -1213,7 +1213,7 @@ "output_type": "stream", "text": [ "\r", - "57it [01:41, 1.81s/it]" + "57it [02:08, 2.44s/it]" ] }, { @@ -1228,7 +1228,7 @@ "output_type": "stream", "text": [ "\r", - "58it [01:42, 1.75s/it]" + "58it [02:12, 2.80s/it]" ] }, { @@ -1243,7 +1243,7 @@ "output_type": "stream", "text": [ "\r", - "59it [01:44, 1.69s/it]" + "59it [02:14, 2.59s/it]" ] }, { @@ -1258,7 +1258,7 @@ "output_type": "stream", "text": [ "\r", - "60it [01:45, 1.69s/it]" + "60it [02:16, 2.34s/it]" ] }, { @@ -1273,7 +1273,7 @@ "output_type": "stream", "text": [ "\r", - "61it [01:47, 1.65s/it]" + "61it [02:17, 2.13s/it]" ] }, { @@ -1288,7 +1288,7 @@ "output_type": "stream", "text": [ "\r", - "62it [01:51, 2.22s/it]" + "62it [02:20, 2.27s/it]" ] }, { @@ -1303,7 +1303,7 @@ "output_type": "stream", "text": [ "\r", - "63it [01:52, 2.08s/it]" + "63it [02:22, 2.21s/it]" ] }, { @@ -1318,7 +1318,7 @@ "output_type": "stream", "text": [ "\r", - "64it [01:54, 1.94s/it]" + "64it [02:24, 2.11s/it]" ] }, { @@ -1333,7 +1333,7 @@ "output_type": "stream", "text": [ "\r", - "65it [01:56, 1.86s/it]" + "65it [02:26, 2.11s/it]" ] }, { @@ -1348,7 +1348,7 @@ "output_type": "stream", "text": [ "\r", - "66it [01:57, 1.86s/it]" + "66it [02:28, 2.01s/it]" ] }, { @@ -1363,7 +1363,7 @@ "output_type": "stream", "text": [ "\r", - "67it [01:59, 1.83s/it]" + "67it [02:30, 1.96s/it]" ] }, { @@ -1378,7 +1378,7 @@ "output_type": "stream", "text": [ "\r", - "68it [02:01, 1.92s/it]" + "68it [02:32, 2.19s/it]" ] }, { @@ -1393,7 +1393,7 @@ "output_type": "stream", "text": [ "\r", - "69it [02:03, 1.87s/it]" + "69it [02:34, 2.10s/it]" ] }, { @@ -1408,7 +1408,7 @@ "output_type": "stream", "text": [ "\r", - "70it [02:05, 1.83s/it]" + "70it [02:36, 2.11s/it]" ] }, { @@ -1423,7 +1423,7 @@ "output_type": "stream", "text": [ "\r", - "71it [02:06, 1.76s/it]" + "71it [02:38, 2.04s/it]" ] }, { @@ -1438,7 +1438,7 @@ "output_type": "stream", "text": [ "\r", - "72it [02:08, 1.80s/it]" + "72it [02:41, 2.09s/it]" ] }, { @@ -1453,7 +1453,7 @@ "output_type": "stream", "text": [ "\r", - "73it [02:10, 1.84s/it]" + "73it [02:43, 2.09s/it]" ] }, { @@ -1468,7 +1468,7 @@ "output_type": "stream", "text": [ "\r", - "74it [02:13, 2.04s/it]" + "74it [02:45, 2.06s/it]" ] }, { @@ -1483,7 +1483,7 @@ "output_type": "stream", "text": [ "\r", - "75it [02:15, 1.96s/it]" + "75it [02:47, 2.04s/it]" ] }, { @@ -1498,7 +1498,7 @@ "output_type": "stream", "text": [ "\r", - "76it [02:17, 2.18s/it]" + "76it [02:49, 2.05s/it]" ] }, { @@ -1513,7 +1513,7 @@ "output_type": "stream", "text": [ "\r", - "77it [02:19, 2.03s/it]" + "77it [02:51, 2.11s/it]" ] }, { @@ -1528,7 +1528,7 @@ "output_type": "stream", "text": [ "\r", - "78it [02:22, 2.49s/it]" + "78it [02:53, 2.09s/it]" ] }, { @@ -1543,7 +1543,7 @@ "output_type": "stream", "text": [ "\r", - "79it [02:25, 2.39s/it]" + "79it [02:55, 2.12s/it]" ] }, { @@ -1558,7 +1558,7 @@ "output_type": "stream", "text": [ "\r", - "80it [02:26, 2.17s/it]" + "80it [02:58, 2.30s/it]" ] }, { @@ -1573,7 +1573,7 @@ "output_type": "stream", "text": [ "\r", - "81it [02:28, 2.16s/it]" + "81it [03:00, 2.25s/it]" ] }, { @@ -1588,7 +1588,7 @@ "output_type": "stream", "text": [ "\r", - "82it [02:30, 2.04s/it]" + "82it [03:02, 2.24s/it]" ] }, { @@ -1603,7 +1603,7 @@ "output_type": "stream", "text": [ "\r", - "83it [02:32, 1.93s/it]" + "83it [03:05, 2.36s/it]" ] }, { @@ -1618,7 +1618,7 @@ "output_type": "stream", "text": [ "\r", - "84it [02:35, 2.22s/it]" + "84it [03:07, 2.40s/it]" ] }, { @@ -1633,7 +1633,7 @@ "output_type": "stream", "text": [ "\r", - "85it [02:37, 2.19s/it]" + "85it [03:09, 2.25s/it]" ] }, { @@ -1648,7 +1648,7 @@ "output_type": "stream", "text": [ "\r", - "86it [02:39, 2.29s/it]" + "86it [03:11, 2.16s/it]" ] }, { @@ -1663,7 +1663,7 @@ "output_type": "stream", "text": [ "\r", - "87it [02:42, 2.39s/it]" + "87it [03:13, 2.08s/it]" ] }, { @@ -1678,7 +1678,7 @@ "output_type": "stream", "text": [ "\r", - "88it [02:44, 2.25s/it]" + "88it [03:15, 2.03s/it]" ] }, { @@ -1693,7 +1693,7 @@ "output_type": "stream", "text": [ "\r", - "89it [02:46, 2.11s/it]" + "89it [03:17, 1.94s/it]" ] }, { @@ -1708,7 +1708,7 @@ "output_type": "stream", "text": [ "\r", - "90it [02:48, 2.16s/it]" + "90it [03:20, 2.25s/it]" ] }, { @@ -1723,7 +1723,7 @@ "output_type": "stream", "text": [ "\r", - "91it [02:50, 2.04s/it]" + "91it [03:22, 2.15s/it]" ] }, { @@ -1738,7 +1738,7 @@ "output_type": "stream", "text": [ "\r", - "92it [02:52, 2.04s/it]" + "92it [03:23, 2.01s/it]" ] }, { @@ -1753,7 +1753,7 @@ "output_type": "stream", "text": [ "\r", - "93it [02:54, 2.09s/it]" + "93it [03:26, 2.11s/it]" ] }, { @@ -1768,7 +1768,7 @@ "output_type": "stream", "text": [ "\r", - "94it [02:56, 2.11s/it]" + "94it [03:29, 2.42s/it]" ] }, { @@ -1783,7 +1783,7 @@ "output_type": "stream", "text": [ "\r", - "95it [02:58, 1.96s/it]" + "95it [03:32, 2.62s/it]" ] }, { @@ -1798,7 +1798,7 @@ "output_type": "stream", "text": [ "\r", - "96it [03:00, 1.92s/it]" + "96it [03:34, 2.44s/it]" ] }, { @@ -1813,7 +1813,7 @@ "output_type": "stream", "text": [ "\r", - "97it [03:02, 1.93s/it]" + "97it [03:36, 2.44s/it]" ] }, { @@ -1828,7 +1828,7 @@ "output_type": "stream", "text": [ "\r", - "98it [03:03, 1.90s/it]" + "98it [03:40, 2.77s/it]" ] }, { @@ -1843,7 +1843,7 @@ "output_type": "stream", "text": [ "\r", - "99it [03:06, 1.97s/it]" + "99it [03:43, 2.86s/it]" ] }, { @@ -1858,7 +1858,7 @@ "output_type": "stream", "text": [ "\r", - "100it [03:09, 2.42s/it]" + "100it [03:47, 3.26s/it]" ] }, { @@ -1873,7 +1873,7 @@ "output_type": "stream", "text": [ "\r", - "101it [03:11, 2.34s/it]" + "101it [03:52, 3.59s/it]" ] }, { @@ -1888,7 +1888,7 @@ "output_type": "stream", "text": [ "\r", - "102it [03:13, 2.16s/it]" + "102it [03:54, 3.15s/it]" ] }, { @@ -1903,7 +1903,7 @@ "output_type": "stream", "text": [ "\r", - "103it [03:15, 2.19s/it]" + "103it [03:56, 2.78s/it]" ] }, { @@ -1918,7 +1918,7 @@ "output_type": "stream", "text": [ "\r", - "104it [03:17, 2.16s/it]" + "104it [03:57, 2.51s/it]" ] }, { @@ -1933,7 +1933,7 @@ "output_type": "stream", "text": [ "\r", - "105it [03:19, 2.00s/it]" + "105it [03:59, 2.30s/it]" ] }, { @@ -1948,7 +1948,7 @@ "output_type": "stream", "text": [ "\r", - "106it [03:21, 1.92s/it]" + "106it [04:01, 2.13s/it]" ] }, { @@ -1963,7 +1963,7 @@ "output_type": "stream", "text": [ "\r", - "107it [03:22, 1.84s/it]" + "107it [04:03, 2.01s/it]" ] }, { @@ -1978,7 +1978,7 @@ "output_type": "stream", "text": [ "\r", - "108it [03:24, 1.86s/it]" + "108it [04:04, 1.93s/it]" ] }, { @@ -1993,7 +1993,7 @@ "output_type": "stream", "text": [ "\r", - "109it [03:27, 2.01s/it]" + "109it [04:06, 1.88s/it]" ] }, { @@ -2008,7 +2008,7 @@ "output_type": "stream", "text": [ "\r", - "110it [03:28, 1.95s/it]" + "110it [04:08, 1.84s/it]" ] }, { @@ -2023,7 +2023,7 @@ "output_type": "stream", "text": [ "\r", - "111it [03:30, 1.89s/it]" + "111it [04:11, 2.14s/it]" ] }, { @@ -2038,7 +2038,7 @@ "output_type": "stream", "text": [ "\r", - "112it [03:32, 1.83s/it]" + "112it [04:13, 2.05s/it]" ] }, { @@ -2053,7 +2053,7 @@ "output_type": "stream", "text": [ "\r", - "113it [03:33, 1.76s/it]" + "113it [04:15, 2.03s/it]" ] }, { @@ -2068,7 +2068,7 @@ "output_type": "stream", "text": [ "\r", - "114it [03:36, 1.89s/it]" + "114it [04:17, 1.98s/it]" ] }, { @@ -2083,7 +2083,7 @@ "output_type": "stream", "text": [ "\r", - "115it [03:37, 1.84s/it]" + "115it [04:18, 1.92s/it]" ] }, { @@ -2098,7 +2098,7 @@ "output_type": "stream", "text": [ "\r", - "116it [03:40, 2.06s/it]" + "116it [04:20, 1.90s/it]" ] }, { @@ -2113,7 +2113,7 @@ "output_type": "stream", "text": [ "\r", - "117it [03:42, 2.02s/it]" + "117it [04:22, 1.83s/it]" ] }, { @@ -2128,7 +2128,7 @@ "output_type": "stream", "text": [ "\r", - "118it [03:44, 1.97s/it]" + "118it [04:23, 1.76s/it]" ] }, { @@ -2143,7 +2143,7 @@ "output_type": "stream", "text": [ "\r", - "119it [03:45, 1.91s/it]" + "119it [04:26, 2.12s/it]" ] }, { @@ -2158,7 +2158,7 @@ "output_type": "stream", "text": [ "\r", - "120it [03:47, 1.85s/it]" + "120it [04:29, 2.16s/it]" ] }, { @@ -2173,7 +2173,7 @@ "output_type": "stream", "text": [ "\r", - "121it [03:49, 1.81s/it]" + "121it [04:31, 2.08s/it]" ] }, { @@ -2188,7 +2188,7 @@ "output_type": "stream", "text": [ "\r", - "122it [03:51, 1.81s/it]" + "122it [04:32, 1.95s/it]" ] }, { @@ -2203,7 +2203,7 @@ "output_type": "stream", "text": [ "\r", - "123it [03:53, 2.09s/it]" + "123it [04:34, 2.00s/it]" ] }, { @@ -2218,7 +2218,7 @@ "output_type": "stream", "text": [ "\r", - "124it [03:55, 2.02s/it]" + "124it [04:36, 2.03s/it]" ] }, { @@ -2233,7 +2233,7 @@ "output_type": "stream", "text": [ "\r", - "125it [03:57, 1.95s/it]" + "125it [04:41, 2.94s/it]" ] }, { @@ -2248,7 +2248,7 @@ "output_type": "stream", "text": [ "\r", - "126it [03:59, 1.92s/it]" + "126it [04:43, 2.60s/it]" ] }, { @@ -2263,7 +2263,7 @@ "output_type": "stream", "text": [ "\r", - "127it [04:01, 1.90s/it]" + "127it [04:45, 2.37s/it]" ] }, { @@ -2278,7 +2278,7 @@ "output_type": "stream", "text": [ "\r", - "128it [04:03, 1.86s/it]" + "128it [04:47, 2.23s/it]" ] }, { @@ -2293,7 +2293,7 @@ "output_type": "stream", "text": [ "\r", - "129it [04:04, 1.79s/it]" + "129it [04:49, 2.14s/it]" ] }, { @@ -2308,7 +2308,7 @@ "output_type": "stream", "text": [ "\r", - "130it [04:06, 1.76s/it]" + "130it [04:51, 2.03s/it]" ] }, { @@ -2323,7 +2323,7 @@ "output_type": "stream", "text": [ "\r", - "131it [04:08, 1.75s/it]" + "131it [04:52, 1.96s/it]" ] }, { @@ -2338,7 +2338,7 @@ "output_type": "stream", "text": [ "\r", - "132it [04:09, 1.72s/it]" + "132it [04:54, 1.92s/it]" ] }, { @@ -2353,7 +2353,7 @@ "output_type": "stream", "text": [ "\r", - "133it [04:13, 2.29s/it]" + "133it [04:56, 1.90s/it]" ] }, { @@ -2368,7 +2368,7 @@ "output_type": "stream", "text": [ "\r", - "134it [04:15, 2.17s/it]" + "134it [04:58, 1.87s/it]" ] }, { @@ -2383,7 +2383,7 @@ "output_type": "stream", "text": [ "\r", - "135it [04:17, 2.08s/it]" + "135it [05:00, 1.84s/it]" ] }, { @@ -2398,7 +2398,7 @@ "output_type": "stream", "text": [ "\r", - "136it [04:18, 1.97s/it]" + "136it [05:01, 1.79s/it]" ] }, { @@ -2413,7 +2413,7 @@ "output_type": "stream", "text": [ "\r", - "137it [04:20, 1.97s/it]" + "137it [05:03, 1.79s/it]" ] }, { @@ -2428,7 +2428,7 @@ "output_type": "stream", "text": [ "\r", - "138it [04:22, 1.90s/it]" + "138it [05:05, 1.83s/it]" ] }, { @@ -2443,7 +2443,7 @@ "output_type": "stream", "text": [ "\r", - "139it [04:24, 1.85s/it]" + "139it [05:07, 1.79s/it]" ] }, { @@ -2458,7 +2458,7 @@ "output_type": "stream", "text": [ "\r", - "140it [04:26, 2.00s/it]" + "140it [05:09, 1.81s/it]" ] }, { @@ -2473,7 +2473,7 @@ "output_type": "stream", "text": [ "\r", - "141it [04:28, 1.88s/it]" + "141it [05:10, 1.78s/it]" ] }, { @@ -2488,7 +2488,7 @@ "output_type": "stream", "text": [ "\r", - "142it [04:30, 1.96s/it]" + "142it [05:14, 2.19s/it]" ] }, { @@ -2503,7 +2503,7 @@ "output_type": "stream", "text": [ "\r", - "143it [04:32, 1.93s/it]" + "143it [05:16, 2.14s/it]" ] }, { @@ -2518,7 +2518,7 @@ "output_type": "stream", "text": [ "\r", - "144it [04:33, 1.90s/it]" + "144it [05:17, 2.00s/it]" ] }, { @@ -2533,7 +2533,7 @@ "output_type": "stream", "text": [ "\r", - "145it [04:36, 1.95s/it]" + "145it [05:19, 1.95s/it]" ] }, { @@ -2548,7 +2548,7 @@ "output_type": "stream", "text": [ "\r", - "146it [04:39, 2.29s/it]" + "146it [05:21, 1.94s/it]" ] }, { @@ -2563,7 +2563,7 @@ "output_type": "stream", "text": [ "\r", - "147it [04:40, 2.10s/it]" + "147it [05:23, 1.93s/it]" ] }, { @@ -2578,7 +2578,7 @@ "output_type": "stream", "text": [ "\r", - "148it [04:42, 2.06s/it]" + "148it [05:25, 1.90s/it]" ] }, { @@ -2593,7 +2593,7 @@ "output_type": "stream", "text": [ "\r", - "149it [04:44, 1.98s/it]" + "149it [05:26, 1.87s/it]" ] }, { @@ -2608,7 +2608,7 @@ "output_type": "stream", "text": [ "\r", - "150it [04:46, 1.90s/it]" + "150it [05:29, 1.97s/it]" ] }, { @@ -2623,7 +2623,7 @@ "output_type": "stream", "text": [ "\r", - "151it [04:48, 1.88s/it]" + "151it [05:31, 2.09s/it]" ] }, { @@ -2638,7 +2638,7 @@ "output_type": "stream", "text": [ "\r", - "152it [04:49, 1.86s/it]" + "152it [05:33, 2.07s/it]" ] }, { @@ -2653,7 +2653,7 @@ "output_type": "stream", "text": [ "\r", - "153it [04:51, 1.78s/it]" + "153it [05:35, 2.03s/it]" ] }, { @@ -2668,7 +2668,7 @@ "output_type": "stream", "text": [ "\r", - "154it [04:53, 1.75s/it]" + "154it [05:37, 1.94s/it]" ] }, { @@ -2683,7 +2683,7 @@ "output_type": "stream", "text": [ "\r", - "155it [04:54, 1.75s/it]" + "155it [05:38, 1.88s/it]" ] }, { @@ -2698,7 +2698,7 @@ "output_type": "stream", "text": [ "\r", - "156it [04:56, 1.75s/it]" + "156it [05:40, 1.90s/it]" ] }, { @@ -2713,7 +2713,7 @@ "output_type": "stream", "text": [ "\r", - "157it [04:58, 1.77s/it]" + "157it [05:42, 1.85s/it]" ] }, { @@ -2728,7 +2728,7 @@ "output_type": "stream", "text": [ "\r", - "158it [05:00, 1.74s/it]" + "158it [05:44, 1.82s/it]" ] }, { @@ -2743,7 +2743,7 @@ "output_type": "stream", "text": [ "\r", - "159it [05:02, 1.99s/it]" + "159it [05:47, 2.21s/it]" ] }, { @@ -2758,7 +2758,7 @@ "output_type": "stream", "text": [ "\r", - "160it [05:04, 1.92s/it]" + "160it [05:49, 2.13s/it]" ] }, { @@ -2773,7 +2773,7 @@ "output_type": "stream", "text": [ "\r", - "161it [05:06, 1.89s/it]" + "161it [05:51, 2.05s/it]" ] }, { @@ -2788,7 +2788,7 @@ "output_type": "stream", "text": [ "\r", - "162it [05:08, 1.83s/it]" + "162it [05:53, 2.01s/it]" ] }, { @@ -2803,7 +2803,7 @@ "output_type": "stream", "text": [ "\r", - "163it [05:09, 1.79s/it]" + "163it [05:55, 1.93s/it]" ] }, { @@ -2818,7 +2818,7 @@ "output_type": "stream", "text": [ "\r", - "164it [05:11, 1.80s/it]" + "164it [05:58, 2.32s/it]" ] }, { @@ -2833,7 +2833,7 @@ "output_type": "stream", "text": [ "\r", - "165it [05:13, 1.84s/it]" + "165it [06:00, 2.30s/it]" ] }, { @@ -2848,7 +2848,7 @@ "output_type": "stream", "text": [ "\r", - "166it [05:15, 2.01s/it]" + "166it [06:02, 2.16s/it]" ] }, { @@ -2863,7 +2863,7 @@ "output_type": "stream", "text": [ "\r", - "167it [05:17, 1.95s/it]" + "167it [06:04, 2.06s/it]" ] }, { @@ -2878,7 +2878,7 @@ "output_type": "stream", "text": [ "\r", - "168it [05:20, 2.11s/it]" + "168it [06:05, 1.97s/it]" ] }, { @@ -2893,7 +2893,7 @@ "output_type": "stream", "text": [ "\r", - "169it [05:21, 2.01s/it]" + "169it [06:07, 1.95s/it]" ] }, { @@ -2908,7 +2908,7 @@ "output_type": "stream", "text": [ "\r", - "170it [05:24, 2.06s/it]" + "170it [06:10, 2.28s/it]" ] }, { @@ -2923,7 +2923,7 @@ "output_type": "stream", "text": [ "\r", - "171it [05:25, 1.97s/it]" + "171it [06:12, 2.16s/it]" ] }, { @@ -2938,7 +2938,7 @@ "output_type": "stream", "text": [ "\r", - "172it [05:27, 1.92s/it]" + "172it [06:14, 2.06s/it]" ] }, { @@ -2953,7 +2953,7 @@ "output_type": "stream", "text": [ "\r", - "173it [05:29, 1.86s/it]" + "173it [06:16, 1.97s/it]" ] }, { @@ -2968,7 +2968,7 @@ "output_type": "stream", "text": [ "\r", - "174it [05:31, 1.85s/it]" + "174it [06:18, 2.12s/it]" ] }, { @@ -2983,7 +2983,7 @@ "output_type": "stream", "text": [ "\r", - "175it [05:34, 2.13s/it]" + "175it [06:20, 2.05s/it]" ] }, { @@ -2998,7 +2998,7 @@ "output_type": "stream", "text": [ "\r", - "176it [05:35, 2.02s/it]" + "176it [06:22, 1.99s/it]" ] }, { @@ -3013,7 +3013,7 @@ "output_type": "stream", "text": [ "\r", - "177it [05:37, 1.96s/it]" + "177it [06:24, 1.93s/it]" ] }, { @@ -3028,7 +3028,7 @@ "output_type": "stream", "text": [ "\r", - "178it [05:39, 1.98s/it]" + "178it [06:26, 2.04s/it]" ] }, { @@ -3043,7 +3043,7 @@ "output_type": "stream", "text": [ "\r", - "179it [05:41, 1.91s/it]" + "179it [06:28, 2.03s/it]" ] }, { @@ -3058,7 +3058,7 @@ "output_type": "stream", "text": [ "\r", - "180it [05:43, 1.82s/it]" + "180it [06:30, 1.98s/it]" ] }, { @@ -3073,7 +3073,7 @@ "output_type": "stream", "text": [ "\r", - "181it [05:45, 1.94s/it]" + "181it [06:32, 1.93s/it]" ] }, { @@ -3088,7 +3088,7 @@ "output_type": "stream", "text": [ "\r", - "182it [05:47, 1.93s/it]" + "182it [06:34, 1.92s/it]" ] }, { @@ -3103,7 +3103,7 @@ "output_type": "stream", "text": [ "\r", - "183it [05:48, 1.88s/it]" + "183it [06:36, 1.99s/it]" ] }, { @@ -3118,7 +3118,7 @@ "output_type": "stream", "text": [ "\r", - "184it [05:50, 1.87s/it]" + "184it [06:39, 2.30s/it]" ] }, { @@ -3133,7 +3133,7 @@ "output_type": "stream", "text": [ "\r", - "185it [05:52, 1.84s/it]" + "185it [06:41, 2.19s/it]" ] }, { @@ -3148,7 +3148,7 @@ "output_type": "stream", "text": [ "\r", - "186it [05:54, 1.87s/it]" + "186it [06:46, 3.17s/it]" ] }, { @@ -3163,7 +3163,7 @@ "output_type": "stream", "text": [ "\r", - "187it [05:56, 1.81s/it]" + "187it [06:49, 2.89s/it]" ] }, { @@ -3178,7 +3178,7 @@ "output_type": "stream", "text": [ "\r", - "188it [06:00, 2.52s/it]" + "188it [06:51, 2.67s/it]" ] }, { @@ -3193,7 +3193,7 @@ "output_type": "stream", "text": [ "\r", - "189it [06:03, 2.81s/it]" + "189it [06:53, 2.49s/it]" ] }, { @@ -3208,7 +3208,7 @@ "output_type": "stream", "text": [ "\r", - "190it [06:07, 3.02s/it]" + "190it [06:55, 2.39s/it]" ] }, { @@ -3223,7 +3223,7 @@ "output_type": "stream", "text": [ "\r", - "191it [06:09, 2.84s/it]" + "191it [06:57, 2.23s/it]" ] }, { @@ -3238,7 +3238,7 @@ "output_type": "stream", "text": [ "\r", - "192it [06:11, 2.54s/it]" + "192it [06:59, 2.09s/it]" ] }, { @@ -3253,7 +3253,7 @@ "output_type": "stream", "text": [ "\r", - "193it [06:13, 2.34s/it]" + "193it [07:00, 2.01s/it]" ] }, { @@ -3268,7 +3268,7 @@ "output_type": "stream", "text": [ "\r", - "194it [06:15, 2.14s/it]" + "194it [07:02, 1.98s/it]" ] }, { @@ -3283,7 +3283,7 @@ "output_type": "stream", "text": [ "\r", - "195it [06:16, 1.99s/it]" + "195it [07:06, 2.55s/it]" ] }, { @@ -3298,7 +3298,7 @@ "output_type": "stream", "text": [ "\r", - "196it [06:18, 2.06s/it]" + "196it [07:08, 2.40s/it]" ] }, { @@ -3313,7 +3313,7 @@ "output_type": "stream", "text": [ "\r", - "197it [06:20, 2.02s/it]" + "197it [07:10, 2.27s/it]" ] }, { @@ -3328,7 +3328,7 @@ "output_type": "stream", "text": [ "\r", - "198it [06:22, 1.97s/it]" + "198it [07:12, 2.16s/it]" ] }, { @@ -3343,7 +3343,7 @@ "output_type": "stream", "text": [ "\r", - "199it [06:24, 1.88s/it]" + "199it [07:14, 2.07s/it]" ] }, { @@ -3358,7 +3358,7 @@ "output_type": "stream", "text": [ "\r", - "200it [06:26, 1.88s/it]" + "200it [07:18, 2.56s/it]" ] }, { @@ -3373,7 +3373,7 @@ "output_type": "stream", "text": [ "\r", - "201it [06:28, 1.90s/it]" + "201it [07:19, 2.34s/it]" ] }, { @@ -3388,7 +3388,7 @@ "output_type": "stream", "text": [ "\r", - "202it [06:30, 1.88s/it]" + "202it [07:22, 2.34s/it]" ] }, { @@ -3403,7 +3403,7 @@ "output_type": "stream", "text": [ "\r", - "203it [06:31, 1.82s/it]" + "203it [07:26, 2.82s/it]" ] }, { @@ -3418,7 +3418,7 @@ "output_type": "stream", "text": [ "\r", - "204it [06:33, 1.78s/it]" + "204it [07:28, 2.54s/it]" ] }, { @@ -3433,7 +3433,7 @@ "output_type": "stream", "text": [ "\r", - "205it [06:35, 1.84s/it]" + "205it [07:30, 2.35s/it]" ] }, { @@ -3448,7 +3448,7 @@ "output_type": "stream", "text": [ "\r", - "206it [06:37, 1.86s/it]" + "206it [07:31, 2.22s/it]" ] }, { @@ -3463,7 +3463,7 @@ "output_type": "stream", "text": [ "\r", - "207it [06:40, 2.13s/it]" + "207it [07:33, 2.06s/it]" ] }, { @@ -3478,7 +3478,7 @@ "output_type": "stream", "text": [ "\r", - "208it [06:41, 2.01s/it]" + "208it [07:35, 2.14s/it]" ] }, { @@ -3493,7 +3493,7 @@ "output_type": "stream", "text": [ "\r", - "209it [06:43, 1.93s/it]" + "209it [07:37, 2.09s/it]" ] }, { @@ -3508,7 +3508,7 @@ "output_type": "stream", "text": [ "\r", - "210it [06:45, 1.90s/it]" + "210it [07:39, 2.08s/it]" ] }, { @@ -3523,7 +3523,7 @@ "output_type": "stream", "text": [ "\r", - "211it [06:47, 1.99s/it]" + "211it [07:41, 2.03s/it]" ] }, { @@ -3538,7 +3538,7 @@ "output_type": "stream", "text": [ "\r", - "212it [06:49, 1.94s/it]" + "212it [07:43, 1.99s/it]" ] }, { @@ -3553,7 +3553,7 @@ "output_type": "stream", "text": [ "\r", - "213it [06:51, 2.07s/it]" + "213it [07:45, 1.94s/it]" ] }, { @@ -3568,7 +3568,7 @@ "output_type": "stream", "text": [ "\r", - "214it [06:53, 1.95s/it]" + "214it [07:47, 1.87s/it]" ] }, { @@ -3583,7 +3583,7 @@ "output_type": "stream", "text": [ "\r", - "215it [06:55, 1.88s/it]" + "215it [07:49, 1.89s/it]" ] }, { @@ -3598,7 +3598,7 @@ "output_type": "stream", "text": [ "\r", - "216it [06:57, 1.94s/it]" + "216it [07:51, 1.92s/it]" ] }, { @@ -3613,7 +3613,7 @@ "output_type": "stream", "text": [ "\r", - "217it [06:59, 2.04s/it]" + "217it [07:55, 2.48s/it]" ] }, { @@ -3628,7 +3628,7 @@ "output_type": "stream", "text": [ "\r", - "218it [07:01, 1.96s/it]" + "218it [07:57, 2.52s/it]" ] }, { @@ -3643,7 +3643,7 @@ "output_type": "stream", "text": [ "\r", - "219it [07:02, 1.88s/it]" + "219it [07:59, 2.38s/it]" ] }, { @@ -3658,7 +3658,7 @@ "output_type": "stream", "text": [ "\r", - "220it [07:04, 1.82s/it]" + "220it [08:01, 2.34s/it]" ] }, { @@ -3673,7 +3673,7 @@ "output_type": "stream", "text": [ "\r", - "221it [07:07, 2.04s/it]" + "221it [08:04, 2.30s/it]" ] }, { @@ -3688,7 +3688,7 @@ "output_type": "stream", "text": [ "\r", - "222it [07:09, 2.00s/it]" + "222it [08:06, 2.21s/it]" ] }, { @@ -3703,7 +3703,7 @@ "output_type": "stream", "text": [ "\r", - "223it [07:11, 2.13s/it]" + "223it [08:08, 2.13s/it]" ] }, { @@ -3718,7 +3718,7 @@ "output_type": "stream", "text": [ "\r", - "224it [07:13, 2.04s/it]" + "224it [08:09, 2.04s/it]" ] }, { @@ -3733,7 +3733,7 @@ "output_type": "stream", "text": [ "\r", - "225it [07:15, 1.93s/it]" + "225it [08:11, 1.94s/it]" ] }, { @@ -3748,7 +3748,7 @@ "output_type": "stream", "text": [ "\r", - "226it [07:16, 1.84s/it]" + "226it [08:13, 1.88s/it]" ] }, { @@ -3763,7 +3763,7 @@ "output_type": "stream", "text": [ "\r", - "227it [07:18, 1.79s/it]" + "227it [08:15, 1.84s/it]" ] }, { @@ -3778,7 +3778,7 @@ "output_type": "stream", "text": [ "\r", - "228it [07:20, 1.77s/it]" + "228it [08:16, 1.85s/it]" ] }, { @@ -3793,7 +3793,7 @@ "output_type": "stream", "text": [ "\r", - "229it [07:21, 1.76s/it]" + "229it [08:18, 1.83s/it]" ] }, { @@ -3808,7 +3808,7 @@ "output_type": "stream", "text": [ "\r", - "230it [07:23, 1.74s/it]" + "230it [08:20, 1.84s/it]" ] }, { @@ -3823,7 +3823,7 @@ "output_type": "stream", "text": [ "\r", - "231it [07:26, 2.00s/it]" + "231it [08:22, 1.83s/it]" ] }, { @@ -3838,7 +3838,7 @@ "output_type": "stream", "text": [ "\r", - "232it [07:27, 1.95s/it]" + "232it [08:24, 1.81s/it]" ] }, { @@ -3853,7 +3853,7 @@ "output_type": "stream", "text": [ "\r", - "233it [07:29, 1.86s/it]" + "233it [08:25, 1.78s/it]" ] }, { @@ -3868,7 +3868,7 @@ "output_type": "stream", "text": [ "\r", - "234it [07:31, 1.81s/it]" + "234it [08:27, 1.77s/it]" ] }, { @@ -3883,7 +3883,7 @@ "output_type": "stream", "text": [ "\r", - "235it [07:33, 1.80s/it]" + "235it [08:32, 2.84s/it]" ] }, { @@ -3898,7 +3898,7 @@ "output_type": "stream", "text": [ "\r", - "236it [07:34, 1.81s/it]" + "236it [08:35, 2.60s/it]" ] }, { @@ -3913,7 +3913,7 @@ "output_type": "stream", "text": [ "\r", - "237it [07:36, 1.76s/it]" + "237it [08:36, 2.34s/it]" ] }, { @@ -3928,7 +3928,7 @@ "output_type": "stream", "text": [ "\r", - "238it [07:38, 1.74s/it]" + "238it [08:38, 2.13s/it]" ] }, { @@ -3943,7 +3943,7 @@ "output_type": "stream", "text": [ "\r", - "239it [07:40, 1.77s/it]" + "239it [08:40, 2.03s/it]" ] }, { @@ -3958,7 +3958,7 @@ "output_type": "stream", "text": [ "\r", - "240it [07:43, 2.15s/it]" + "240it [08:42, 1.99s/it]" ] }, { @@ -3973,7 +3973,7 @@ "output_type": "stream", "text": [ "\r", - "241it [07:44, 2.01s/it]" + "241it [08:43, 1.89s/it]" ] }, { @@ -3988,7 +3988,7 @@ "output_type": "stream", "text": [ "\r", - "242it [07:47, 2.13s/it]" + "242it [08:45, 1.82s/it]" ] }, { @@ -4003,7 +4003,7 @@ "output_type": "stream", "text": [ "\r", - "243it [07:50, 2.33s/it]" + "243it [08:47, 1.82s/it]" ] }, { @@ -4018,7 +4018,7 @@ "output_type": "stream", "text": [ "\r", - "244it [07:52, 2.24s/it]" + "244it [08:49, 1.81s/it]" ] }, { @@ -4033,7 +4033,7 @@ "output_type": "stream", "text": [ "\r", - "245it [07:53, 2.11s/it]" + "245it [08:50, 1.80s/it]" ] }, { @@ -4048,7 +4048,7 @@ "output_type": "stream", "text": [ "\r", - "246it [07:55, 2.04s/it]" + "246it [08:52, 1.80s/it]" ] }, { @@ -4063,7 +4063,7 @@ "output_type": "stream", "text": [ "\r", - "247it [07:57, 1.93s/it]" + "247it [08:54, 1.79s/it]" ] }, { @@ -4078,7 +4078,7 @@ "output_type": "stream", "text": [ "\r", - "248it [07:59, 1.87s/it]" + "248it [08:56, 1.80s/it]" ] }, { @@ -4093,7 +4093,7 @@ "output_type": "stream", "text": [ "\r", - "249it [08:00, 1.81s/it]" + "249it [08:58, 1.80s/it]" ] }, { @@ -4108,7 +4108,7 @@ "output_type": "stream", "text": [ "\r", - "250it [08:02, 1.77s/it]" + "250it [08:59, 1.82s/it]" ] }, { @@ -4123,7 +4123,7 @@ "output_type": "stream", "text": [ "\r", - "251it [08:04, 1.81s/it]" + "251it [09:01, 1.83s/it]" ] }, { @@ -4138,7 +4138,7 @@ "output_type": "stream", "text": [ "\r", - "252it [08:06, 1.83s/it]" + "252it [09:04, 2.01s/it]" ] }, { @@ -4153,7 +4153,7 @@ "output_type": "stream", "text": [ "\r", - "253it [08:08, 1.83s/it]" + "253it [09:06, 2.13s/it]" ] }, { @@ -4168,7 +4168,7 @@ "output_type": "stream", "text": [ "\r", - "254it [08:10, 1.88s/it]" + "254it [09:08, 2.06s/it]" ] }, { @@ -4183,7 +4183,7 @@ "output_type": "stream", "text": [ "\r", - "255it [08:12, 1.92s/it]" + "255it [09:10, 2.09s/it]" ] }, { @@ -4198,7 +4198,7 @@ "output_type": "stream", "text": [ "\r", - "256it [08:14, 1.97s/it]" + "256it [09:12, 2.08s/it]" ] }, { @@ -4213,7 +4213,7 @@ "output_type": "stream", "text": [ "\r", - "257it [08:16, 1.95s/it]" + "257it [09:14, 2.02s/it]" ] }, { @@ -4228,7 +4228,7 @@ "output_type": "stream", "text": [ "\r", - "258it [08:21, 3.01s/it]" + "258it [09:16, 1.98s/it]" ] }, { @@ -4243,7 +4243,7 @@ "output_type": "stream", "text": [ "\r", - "259it [08:23, 2.72s/it]" + "259it [09:18, 1.95s/it]" ] }, { @@ -4258,7 +4258,7 @@ "output_type": "stream", "text": [ "\r", - "260it [08:25, 2.45s/it]" + "260it [09:20, 1.95s/it]" ] }, { @@ -4273,7 +4273,7 @@ "output_type": "stream", "text": [ "\r", - "261it [08:27, 2.26s/it]" + "261it [09:22, 1.92s/it]" ] }, { @@ -4288,7 +4288,7 @@ "output_type": "stream", "text": [ "\r", - "262it [08:28, 2.09s/it]" + "262it [09:23, 1.88s/it]" ] }, { @@ -4303,7 +4303,7 @@ "output_type": "stream", "text": [ "\r", - "263it [08:30, 1.96s/it]" + "263it [09:25, 1.91s/it]" ] }, { @@ -4318,7 +4318,7 @@ "output_type": "stream", "text": [ "\r", - "264it [08:32, 2.02s/it]" + "264it [09:27, 1.91s/it]" ] }, { @@ -4333,7 +4333,7 @@ "output_type": "stream", "text": [ "\r", - "265it [08:36, 2.41s/it]" + "265it [09:29, 2.00s/it]" ] }, { @@ -4348,7 +4348,7 @@ "output_type": "stream", "text": [ "\r", - "266it [08:37, 2.24s/it]" + "266it [09:31, 1.92s/it]" ] }, { @@ -4363,7 +4363,7 @@ "output_type": "stream", "text": [ "\r", - "267it [08:39, 2.14s/it]" + "267it [09:33, 1.86s/it]" ] }, { @@ -4378,7 +4378,7 @@ "output_type": "stream", "text": [ "\r", - "268it [08:41, 2.04s/it]" + "268it [09:35, 1.82s/it]" ] }, { @@ -4393,7 +4393,7 @@ "output_type": "stream", "text": [ "\r", - "269it [08:43, 1.97s/it]" + "269it [09:39, 2.58s/it]" ] }, { @@ -4408,7 +4408,7 @@ "output_type": "stream", "text": [ "\r", - "270it [08:45, 2.02s/it]" + "270it [09:42, 2.62s/it]" ] }, { @@ -4423,7 +4423,7 @@ "output_type": "stream", "text": [ "\r", - "271it [08:47, 1.97s/it]" + "271it [09:44, 2.37s/it]" ] }, { @@ -4438,7 +4438,7 @@ "output_type": "stream", "text": [ "\r", - "272it [08:49, 1.90s/it]" + "272it [09:45, 2.16s/it]" ] }, { @@ -4453,7 +4453,7 @@ "output_type": "stream", "text": [ "\r", - "273it [08:50, 1.84s/it]" + "273it [09:48, 2.37s/it]" ] }, { @@ -4468,7 +4468,7 @@ "output_type": "stream", "text": [ "\r", - "274it [08:55, 2.58s/it]" + "274it [09:50, 2.23s/it]" ] }, { @@ -4483,7 +4483,7 @@ "output_type": "stream", "text": [ "\r", - "275it [08:56, 2.32s/it]" + "275it [09:52, 2.13s/it]" ] }, { @@ -4498,7 +4498,7 @@ "output_type": "stream", "text": [ "\r", - "276it [08:58, 2.11s/it]" + "276it [09:54, 2.01s/it]" ] }, { @@ -4513,7 +4513,7 @@ "output_type": "stream", "text": [ "\r", - "277it [09:00, 2.01s/it]" + "277it [09:55, 1.94s/it]" ] }, { @@ -4528,7 +4528,7 @@ "output_type": "stream", "text": [ "\r", - "278it [09:01, 1.91s/it]" + "278it [09:57, 1.89s/it]" ] }, { @@ -4543,7 +4543,7 @@ "output_type": "stream", "text": [ "\r", - "279it [09:03, 1.88s/it]" + "279it [09:59, 1.86s/it]" ] }, { @@ -4558,7 +4558,7 @@ "output_type": "stream", "text": [ "\r", - "280it [09:06, 2.02s/it]" + "280it [10:01, 1.87s/it]" ] }, { @@ -4573,7 +4573,7 @@ "output_type": "stream", "text": [ "\r", - "281it [09:07, 1.91s/it]" + "281it [10:03, 2.02s/it]" ] }, { @@ -4588,7 +4588,7 @@ "output_type": "stream", "text": [ "\r", - "282it [09:09, 1.94s/it]" + "282it [10:05, 2.00s/it]" ] }, { @@ -4603,7 +4603,7 @@ "output_type": "stream", "text": [ "\r", - "283it [09:11, 1.92s/it]" + "283it [10:07, 2.04s/it]" ] }, { @@ -4618,7 +4618,7 @@ "output_type": "stream", "text": [ "\r", - "284it [09:13, 1.93s/it]" + "284it [10:09, 2.09s/it]" ] }, { @@ -4633,7 +4633,7 @@ "output_type": "stream", "text": [ "\r", - "285it [09:15, 1.89s/it]" + "285it [10:13, 2.38s/it]" ] }, { @@ -4648,7 +4648,7 @@ "output_type": "stream", "text": [ "\r", - "286it [09:17, 1.87s/it]" + "286it [10:14, 2.22s/it]" ] }, { @@ -4663,7 +4663,7 @@ "output_type": "stream", "text": [ "\r", - "287it [09:19, 1.85s/it]" + "287it [10:16, 2.08s/it]" ] }, { @@ -4678,7 +4678,7 @@ "output_type": "stream", "text": [ "\r", - "288it [09:20, 1.80s/it]" + "288it [10:18, 1.99s/it]" ] }, { @@ -4693,7 +4693,7 @@ "output_type": "stream", "text": [ "\r", - "289it [09:22, 1.80s/it]" + "289it [10:20, 1.93s/it]" ] }, { @@ -4708,7 +4708,7 @@ "output_type": "stream", "text": [ "\r", - "290it [09:24, 1.79s/it]" + "290it [10:22, 1.96s/it]" ] }, { @@ -4723,7 +4723,7 @@ "output_type": "stream", "text": [ "\r", - "291it [09:27, 2.11s/it]" + "291it [10:24, 1.92s/it]" ] }, { @@ -4738,7 +4738,7 @@ "output_type": "stream", "text": [ "\r", - "292it [09:29, 2.09s/it]" + "292it [10:25, 1.88s/it]" ] }, { @@ -4753,7 +4753,7 @@ "output_type": "stream", "text": [ "\r", - "293it [09:31, 2.01s/it]" + "293it [10:27, 1.82s/it]" ] }, { @@ -4768,7 +4768,7 @@ "output_type": "stream", "text": [ "\r", - "294it [09:32, 1.95s/it]" + "294it [10:29, 1.81s/it]" ] }, { @@ -4783,7 +4783,7 @@ "output_type": "stream", "text": [ "\r", - "295it [09:36, 2.59s/it]" + "295it [10:31, 1.79s/it]" ] }, { @@ -4798,7 +4798,7 @@ "output_type": "stream", "text": [ "\r", - "296it [09:39, 2.53s/it]" + "296it [10:32, 1.81s/it]" ] }, { @@ -4813,7 +4813,7 @@ "output_type": "stream", "text": [ "\r", - "297it [09:41, 2.30s/it]" + "297it [10:34, 1.79s/it]" ] }, { @@ -4828,7 +4828,7 @@ "output_type": "stream", "text": [ "\r", - "298it [09:42, 2.14s/it]" + "298it [10:36, 1.78s/it]" ] }, { @@ -4843,7 +4843,7 @@ "output_type": "stream", "text": [ "\r", - "299it [09:44, 2.10s/it]" + "299it [10:38, 1.80s/it]" ] }, { @@ -4858,7 +4858,7 @@ "output_type": "stream", "text": [ "\r", - "300it [09:47, 2.18s/it]" + "300it [10:40, 2.07s/it]" ] }, { @@ -4873,7 +4873,7 @@ "output_type": "stream", "text": [ "\r", - "301it [09:49, 2.12s/it]" + "301it [10:44, 2.37s/it]" ] }, { @@ -4888,7 +4888,7 @@ "output_type": "stream", "text": [ "\r", - "302it [09:50, 2.02s/it]" + "302it [10:45, 2.25s/it]" ] }, { @@ -4903,7 +4903,7 @@ "output_type": "stream", "text": [ "\r", - "303it [09:52, 1.93s/it]" + "303it [10:47, 2.16s/it]" ] }, { @@ -4918,7 +4918,7 @@ "output_type": "stream", "text": [ "\r", - "304it [09:54, 1.84s/it]" + "304it [10:50, 2.24s/it]" ] }, { @@ -4933,7 +4933,7 @@ "output_type": "stream", "text": [ "\r", - "305it [09:56, 1.79s/it]" + "305it [10:53, 2.37s/it]" ] }, { @@ -4948,7 +4948,7 @@ "output_type": "stream", "text": [ "\r", - "306it [09:58, 1.96s/it]" + "306it [10:54, 2.18s/it]" ] }, { @@ -4963,7 +4963,7 @@ "output_type": "stream", "text": [ "\r", - "307it [10:00, 1.90s/it]" + "307it [10:56, 2.09s/it]" ] }, { @@ -4978,7 +4978,7 @@ "output_type": "stream", "text": [ "\r", - "308it [10:01, 1.86s/it]" + "308it [10:58, 2.00s/it]" ] }, { @@ -4993,7 +4993,7 @@ "output_type": "stream", "text": [ "\r", - "309it [10:03, 1.82s/it]" + "309it [11:02, 2.49s/it]" ] }, { @@ -5008,7 +5008,7 @@ "output_type": "stream", "text": [ "\r", - "310it [10:05, 1.83s/it]" + "310it [11:05, 2.63s/it]" ] }, { @@ -5023,7 +5023,7 @@ "output_type": "stream", "text": [ "\r", - "311it [10:07, 1.95s/it]" + "311it [11:07, 2.49s/it]" ] }, { @@ -5038,7 +5038,7 @@ "output_type": "stream", "text": [ "\r", - "312it [10:10, 2.17s/it]" + "312it [11:09, 2.29s/it]" ] }, { @@ -5053,7 +5053,7 @@ "output_type": "stream", "text": [ "\r", - "313it [10:12, 2.11s/it]" + "313it [11:10, 2.14s/it]" ] }, { @@ -5068,7 +5068,7 @@ "output_type": "stream", "text": [ "\r", - "314it [10:14, 2.05s/it]" + "314it [11:12, 2.02s/it]" ] }, { @@ -5083,7 +5083,7 @@ "output_type": "stream", "text": [ "\r", - "315it [10:16, 1.98s/it]" + "315it [11:14, 1.93s/it]" ] }, { @@ -5098,7 +5098,7 @@ "output_type": "stream", "text": [ "\r", - "316it [10:17, 1.92s/it]" + "316it [11:17, 2.24s/it]" ] }, { @@ -5113,7 +5113,7 @@ "output_type": "stream", "text": [ "\r", - "317it [10:20, 2.17s/it]" + "317it [11:19, 2.13s/it]" ] }, { @@ -5128,7 +5128,7 @@ "output_type": "stream", "text": [ "\r", - "318it [10:22, 2.13s/it]" + "318it [11:20, 2.02s/it]" ] }, { @@ -5143,7 +5143,7 @@ "output_type": "stream", "text": [ "\r", - "319it [10:24, 2.02s/it]" + "319it [11:22, 1.93s/it]" ] }, { @@ -5158,7 +5158,7 @@ "output_type": "stream", "text": [ "\r", - "320it [10:26, 1.96s/it]" + "320it [11:24, 1.89s/it]" ] }, { @@ -5172,7 +5172,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "321it [10:26, 1.95s/it]\n" + "321it [11:25, 2.13s/it]\n" ] } ], diff --git a/packages/grid/seaweedfs/start.sh b/packages/grid/seaweedfs/start.sh index 01038fc91ba..64ba9581722 100644 --- a/packages/grid/seaweedfs/start.sh +++ b/packages/grid/seaweedfs/start.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -weed server -s3 -s3.port="$S3_PORT" -volume.max=10 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & +weed server -s3 -s3.port="$S3_PORT" -volume.max=5 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & echo "s3.configure -access_key $S3_ROOT_USER -secret_key $S3_ROOT_PWD \ -user iam -actions Read,Write,List,Tagging,Admin -apply" | weed shell > /dev/null 2>&1 From ad78f3d813a759cd3ee2144ad600202de5cd277c Mon Sep 17 00:00:00 2001 From: Koen van der Veen <koenlennartvanderveen@gmail.com> Date: Sat, 27 Jan 2024 23:33:35 +0100 Subject: [PATCH 7/9] - --- .../append-only-event-log-prototype.ipynb | 193 +- notebooks/helm/direct_azure.ipynb | 5106 +---------------- notebooks/helm/helm-syft.ipynb | 2 +- packages/grid/seaweedfs/start.sh | 2 +- .../src/syft/protocol/protocol_version.json | 7 + .../syft/service/action/action_data_empty.py | 6 +- .../src/syft/store/blob_storage/seaweedfs.py | 70 +- 7 files changed, 367 insertions(+), 5019 deletions(-) diff --git a/notebooks/helm/append-only-event-log-prototype.ipynb b/notebooks/helm/append-only-event-log-prototype.ipynb index 7bd497e156b..392b6b2ff21 100644 --- a/notebooks/helm/append-only-event-log-prototype.ipynb +++ b/notebooks/helm/append-only-event-log-prototype.ipynb @@ -8,18 +8,21 @@ "outputs": [], "source": [ "# stdlib\n", + "from copy import deepcopy\n", "from datetime import datetime\n", - "from typing import Any, Dict, List, Optional\n", + "from typing import Any\n", + "from typing import ClassVar\n", + "from typing import Dict\n", + "from typing import List\n", + "from typing import Optional\n", + "from typing import Type\n", + "\n", + "# third party\n", "from pydantic import Field\n", "\n", "# syft absolute\n", "from syft import UID\n", - "from syft.types.base import SyftBaseModel\n", - "from typing import ClassVar\n", - "from typing import Type\n", - "from pydantic import Field\n", - "from collections import defaultdict\n", - "from copy import deepcopy" + "from syft.types.base import SyftBaseModel" ] }, { @@ -42,7 +45,7 @@ "source": [ "class Event(MyBaseModel):\n", " creator: UID\n", - " creation_date: datetime = Field(default_factory=lambda:datetime.now())\n", + " creation_date: datetime = Field(default_factory=lambda: datetime.now())\n", "\n", " def handler(self, node):\n", " method_name = event_handler_registry[self.__class__.__name__]\n", @@ -143,8 +146,8 @@ "source": [ "class CRUDEvent(Event):\n", " object_type: ClassVar[Type] = Type\n", - " object_id: UID \n", - " \n", + " object_id: UID\n", + "\n", " @property\n", " def merge_updates_repr(self):\n", " return f\"{self.updates} for object {self.object_id} by {self.creator}\"" @@ -161,11 +164,11 @@ " @property\n", " def updated_properties(self):\n", " return list(self.object_type.__annotations__.keys())\n", - " \n", + "\n", " @property\n", " def updates(self):\n", " return {p: getattr(self, p) for p in self.updated_properties}\n", - " \n", + "\n", " @property\n", " def update_tuples(self):\n", " return list(self.updates.items())\n", @@ -173,14 +176,14 @@ "\n", "class UpdateObjectEvent(CRUDEvent):\n", " updates: Dict[str, Any]\n", - " \n", + "\n", " @property\n", " def updated_properties(self):\n", " return list(self.updates.keys())\n", - " \n", + "\n", " @property\n", " def update_tuples(self):\n", - " return list(self.updates.items())\n" + " return list(self.updates.items())" ] }, { @@ -212,8 +215,7 @@ " mock=self.mock,\n", " real=self.real,\n", " description=self.description,\n", - " )\n", - " " + " )" ] }, { @@ -242,13 +244,10 @@ "class CreateUserCodeEvent(CreateObjectEvent):\n", " object_type: ClassVar[Type] = UserCode\n", " code: UserCode\n", - " \n", + "\n", " def execute(self, node):\n", " handler = self.handler(node)\n", - " handler(\n", - " code=self.code\n", - " )\n", - " " + " handler(code=self.code)" ] }, { @@ -262,14 +261,10 @@ " object_type: ClassVar[Type] = UserCode\n", " code_id: UID\n", " value: bool\n", - " \n", + "\n", " def execute(self, node):\n", " handler = self.handler(node)\n", - " handler(\n", - " self.code_id,\n", - " self.value\n", - " )\n", - " " + " handler(self.code_id, self.value)" ] }, { @@ -291,45 +286,34 @@ " event_log: EventLog = EventLog()\n", " store: Dict[UID, Any] = {}\n", " private_store: Dict[UID, Any] = {}\n", - " \n", + "\n", " def apply_log(self, log):\n", " self.store = {}\n", " self.event_log = deepcopy(log)\n", "\n", " for event in self.event_log.log:\n", " event.execute(self)\n", - " \n", - " \n", + "\n", " def create_usercode(self, usercode: str):\n", - " \n", " obj = UserCode(code=usercode)\n", - " event= CreateUserCodeEvent(\n", - " code=obj,\n", - " object_id=obj.id,\n", - " creator=self.id\n", - " )\n", + " event = CreateUserCodeEvent(code=obj, object_id=obj.id, creator=self.id)\n", " self.event_log.log.append(event)\n", - " \n", + "\n", " self._create_usercode(obj)\n", " return obj.id\n", - " \n", + "\n", " @register_event_handler(CreateUserCodeEvent)\n", - " def _create_usercode(self,code):\n", + " def _create_usercode(self, code):\n", " self.store[code.id] = code\n", - " \n", - " \n", + "\n", " def approve_usercode(self, code_id: UID, to: bool):\n", - " event = ApproveUserCodeEvent(\n", - " code_id=code_id,\n", - " creator=self.id,\n", - " value=to\n", - " )\n", + " event = ApproveUserCodeEvent(code_id=code_id, creator=self.id, value=to)\n", " self.event_log.log.append(event)\n", " self._approve_usercode(code_id, to)\n", - " \n", + "\n", " @register_event_handler(ApproveUserCodeEvent)\n", " def _approve_usercode(self, code_id, to):\n", - " self.store[code_id].approved=to\n", + " self.store[code_id].approved = to\n", "\n", " def create_dataset(self, mock: str, real: Optional[str], description: str):\n", " object_id = UID()\n", @@ -355,11 +339,7 @@ " self.store[dataset.id] = dataset\n", "\n", " def update_dataset(self, id, updates):\n", - " event = UpdateDatasetEvent(\n", - " object_id=id,\n", - " updates=updates,\n", - " creator=self.id\n", - " )\n", + " event = UpdateDatasetEvent(object_id=id, updates=updates, creator=self.id)\n", " self.event_log.log.append(event)\n", " self._update_dataset(id, updates)\n", "\n", @@ -405,93 +385,98 @@ "outputs": [], "source": [ "class MergeState(SyftBaseModel):\n", - " \n", " proposed_merge: List[Event]\n", " fork_idx: int\n", " new_log: List[Event] = []\n", - " \n", + "\n", " @property\n", " def current_merge_events(self):\n", - " return self.new_log[self.fork_idx:]\n", + " return self.new_log[self.fork_idx :]\n", + "\n", + " # @property\n", + " # def updates_since_fork(self):\n", + " # updates_since_fork: Dict[UID, List[Event]] = defaultdict(list)\n", + " # # {node_id -> {obj_id -> Event}}\n", + " # for event in self.new_events:\n", + " # updates_since_fork[e.creator] += [event]\n", + " # return updates_since_fork\n", "\n", - "# @property\n", - "# def updates_since_fork(self):\n", - "# updates_since_fork: Dict[UID, List[Event]] = defaultdict(list) \n", - "# # {node_id -> {obj_id -> Event}}\n", - "# for event in self.new_events:\n", - "# updates_since_fork[e.creator] += [event]\n", - "# return updates_since_fork\n", - " \n", " def merge(self):\n", - " self.new_log = self.proposed_merge[:self.fork_idx]\n", - " for event in self.proposed_merge[self.fork_idx:]:\n", + " self.new_log = self.proposed_merge[: self.fork_idx]\n", + " for event in self.proposed_merge[self.fork_idx :]:\n", " if self.add_event(event):\n", " print(\"merge conflict\")\n", - " \n", + "\n", " def request_input(self, event, conflicting_event):\n", - " s = input(f\"\"\"\n", + " s = input(\n", + " f\"\"\"\n", " {event.object_id} was changed by {event.creator} and {conflicting_event.creator}\n", " Change 0: {event.merge_updates_repr}\n", " Change 1: {conflicting_event.merge_updates_repr}\n", " Type 0/1 to keep the corresponding change\n", - " \"\"\")\n", + " \"\"\"\n", + " )\n", " idx = int(s)\n", - " assert idx in [0,1]\n", - " return idx==1\n", + " assert idx in [0, 1]\n", + " return idx == 1\n", "\n", " def object_updates(self, object_id, exclude_node: UID):\n", - "# other_node_ids = [node_id for node_id in self.updates_since_fork.keys()\n", - "# if node_id != event.creator]\n", - "# other_events_updating_object = [e for i in other_node_ids for e in self.updates_since_fork[i]\n", - "# if e.object_id == object_id]\n", - " \n", - " other_events_updating_object = [e for e in self.current_merge_events \n", - " if e.object_id == object_id and e.creator != exclude_node]\n", - " \n", + " # other_node_ids = [node_id for node_id in self.updates_since_fork.keys()\n", + " # if node_id != event.creator]\n", + " # other_events_updating_object = [e for i in other_node_ids for e in self.updates_since_fork[i]\n", + " # if e.object_id == object_id]\n", + "\n", + " other_events_updating_object = [\n", + " e\n", + " for e in self.current_merge_events\n", + " if e.object_id == object_id and e.creator != exclude_node\n", + " ]\n", + "\n", " object_updates = {}\n", - " \n", + "\n", " for e in other_events_updating_object:\n", " for p in e.updated_properties:\n", " val = e.updates[p]\n", " object_updates[p] = (val, e)\n", - " \n", + "\n", " return object_updates\n", - " \n", + "\n", " def add_event(self, event):\n", - " \n", - " merge_object_updates = self.object_updates(event.object_id, exclude_node=event.creator) \n", + " merge_object_updates = self.object_updates(\n", + " event.object_id, exclude_node=event.creator\n", + " )\n", " # we want to find all the events from other nodes that updated the same object\n", " # then we want to find which properties they updated and to what value\n", " # if they updated the same property to a different value => merge conflict\n", - " #(property, value) => event\n", - " \n", - " skip_current_event=False\n", + " # (property, value) => event\n", + "\n", + " skip_current_event = False\n", " for prop, val in event.updates.items():\n", - " \n", " if skip_current_event:\n", " continue\n", " # val -> event\n", " if prop not in merge_object_updates:\n", " continue\n", - " \n", + "\n", " other_val, other_event = merge_object_updates[prop]\n", " if other_val != val:\n", " conflicting_event = other_event\n", " skip_current_event = self.request_input(event, conflicting_event)\n", " skip_conflicting_event = not skip_current_event\n", - " \n", + "\n", " # merge strategies:\n", " # accept entire event, reject other event entirely\n", " # cherry pick per property\n", - " \n", + "\n", " if skip_conflicting_event:\n", " print(\"skip conflicting event\")\n", " # remove conflicting event from new_log\n", - " self.new_log = [e for e in self.new_log if e.id != conflicting_event.id]\n", - " \n", + " self.new_log = [\n", + " e for e in self.new_log if e.id != conflicting_event.id\n", + " ]\n", + "\n", " if not skip_current_event:\n", - " self.new_log += [event]\n", - " " + " self.new_log += [event]" ] }, { @@ -522,14 +507,16 @@ "\n", " branch1 = log1[fork_idx:]\n", " branch2 = log2[fork_idx:]\n", - " \n", - " proposed_merge = log1[:fork_idx] + sorted(branch1 + branch2, key=lambda e: e.creation_date)\n", + "\n", + " proposed_merge = log1[:fork_idx] + sorted(\n", + " branch1 + branch2, key=lambda e: e.creation_date\n", + " )\n", " print(f\"proposed merge (before merging): {proposed_merge}\")\n", " merge_state = MergeState(fork_idx=fork_idx, proposed_merge=proposed_merge)\n", " merge_state.merge()\n", - " \n", + "\n", " new_log = EventLog(log=merge_state.new_log)\n", - " \n", + "\n", " node_low.apply_log(new_log)\n", " node_high.apply_log(new_log)\n", "\n", @@ -4464,7 +4451,7 @@ "outputs": [], "source": [ "# we keep both events\n", - "assert len(node_high.event_log.log) ==3 and len(node_low.event_log.log) == 3" + "assert len(node_high.event_log.log) == 3 and len(node_low.event_log.log) == 3" ] }, { @@ -4518,7 +4505,7 @@ " node_low.update_dataset(dataset.id, {\"description\": \"c\"})\n", "\n", " node_high.event_log.log\n", - " \n", + "\n", " sync(node_high, node_low)\n", "\n", " dataset_high = list(node_high.store.values())[0]\n", @@ -4528,7 +4515,7 @@ "\n", " node_high.event_log.log\n", "\n", - " assert len(node_high.event_log.log) ==4 and len(node_low.event_log.log) ==4" + " assert len(node_high.event_log.log) == 4 and len(node_low.event_log.log) == 4" ] }, { diff --git a/notebooks/helm/direct_azure.ipynb b/notebooks/helm/direct_azure.ipynb index b34e96bc564..44714925fb9 100644 --- a/notebooks/helm/direct_azure.ipynb +++ b/notebooks/helm/direct_azure.ipynb @@ -16,13 +16,21 @@ "source": [ "# stdlib\n", "import os\n", + "\n", "# syft absolute\n", "import syft as sy" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -62,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -78,17 +86,16 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "import random\n", - "import string" + "# stdlib" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -120,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -139,7 +146,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -152,22 +159,22 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ + "# stdlib\n", "from pathlib import Path\n", "\n", "# syft absolute\n", "from syft.client.client import SyftClient\n", "from syft.store.blob_storage import BlobDeposit\n", - "from syft.types.blob_storage import CreateBlobStorageEntry\n", - "from syft.types.syft_object import SyftObject" + "from syft.types.blob_storage import CreateBlobStorageEntry" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -178,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -187,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -196,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -204,7 +211,7 @@ "text/markdown": [ "```python\n", "class SeaweedFSBlobDeposit:\n", - " id: str = 36c602b06ef444c7a6be950f6c923352\n", + " id: str = 741c4e3f5cfd4705ba3d12fc076b19dd\n", "\n", "```" ], @@ -212,7 +219,7 @@ "syft.store.blob_storage.seaweedfs.SeaweedFSBlobDeposit" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -223,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -248,39 +255,62 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ - "import requests" + "# import requests\n", + "\n", + "# from syft import SyftError\n", + "\n", + "# from io import BytesIO\n", + "\n", + "# from typing import Generator\n", + "\n", + "# def _byte_chunks(bytes: BytesIO, size: int) -> Generator[bytes, None, None]:\n", + "# while True:\n", + "# try:\n", + "# yield bytes.read(size)\n", + "# except BlockingIOError:\n", + "# return\n", + "\n", + "# DEFAULT_CHUNK_SIZE = (1024**3 // 10) # 100MB\n", + "# DEFAULT_TIMEOUT = 5000 # in seconds\n", + "\n", + "# print(len(dep.urls))" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ - "from syft import SyftError" + "# third party" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ - "from io import BytesIO" + "# byte_chunk[16384: 16384+10000]" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "from typing import Generator" - ] + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] }, { "cell_type": "code", @@ -288,12 +318,46 @@ "metadata": {}, "outputs": [], "source": [ - "def _byte_chunks(bytes: BytesIO, size: int) -> Generator[bytes, None, None]:\n", - " while True:\n", - " try:\n", - " yield bytes.read(size)\n", - " except BlockingIOError:\n", - " return" + "# # relative\n", + "# with open(file, \"rb\") as data:\n", + "# from syft.client.api import APIRegistry\n", + "\n", + "# api = APIRegistry.api_for(\n", + "# node_uid=dep.syft_node_location,\n", + "# user_verify_key=dep.syft_client_verify_key,\n", + "# )\n", + "\n", + "# etags = []\n", + "\n", + "# try:\n", + "# no_lines = 0\n", + "# for part_no, (byte_chunk, url) in tqdm(enumerate(\n", + "# zip(_byte_chunks(data, DEFAULT_CHUNK_SIZE), dep.urls),\n", + "# start=1,\n", + "# )):\n", + "# no_lines += byte_chunk.count(b\"\\n\")\n", + "# if api is not None:\n", + "# blob_url = api.connection.to_blob_route(\n", + "# url.url_path, host=url.host_or_ip\n", + "# )\n", + "# else:\n", + "# blob_url = url\n", + "\n", + "# def data_generator(bytes_, chunk_size=819200):\n", + "# n=0\n", + "# while n*chunk_size <= len(bytes_):\n", + "# chunk = bytes_[n*chunk_size:(n+1)*chunk_size]\n", + "# n += 1\n", + "# yield chunk\n", + "\n", + "# response = requests.put(\n", + "# url=str(blob_url), data=data_generator(byte_chunk), timeout=DEFAULT_TIMEOUT, stream=True\n", + "# )\n", + "# response.raise_for_status()\n", + "# etag = response.headers[\"ETag\"]\n", + "# etags.append({\"ETag\": etag, \"PartNumber\": part_no})\n", + "# except requests.RequestException as e:\n", + "# print(e)" ] }, { @@ -302,25 +366,16 @@ "metadata": {}, "outputs": [], "source": [ - "DEFAULT_CHUNK_SIZE = (1024**3 // 10) # 100MB\n", - "DEFAULT_TIMEOUT = 5000 # in seconds" + "# len([x for x in data_generator(byte_chunk)])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "321\n" - ] - } - ], + "outputs": [], "source": [ - "print(len(dep.urls))" + "# (1024 ** 3) // 10" ] }, { @@ -329,7 +384,7 @@ "metadata": {}, "outputs": [], "source": [ - "from tqdm import tqdm" + "# api.services.blob_storage.mark_write_complete(etags=etags, uid=dep.blob_storage_entry_id, no_lines=no_lines)" ] }, { @@ -338,4983 +393,231 @@ "metadata": {}, "outputs": [], "source": [ - "# byte_chunk[16384: 16384+10000]" + "# mark_write_complete_method = from_api_or_context(\n", + "# func_or_path=\"blob_storage.mark_write_complete\",\n", + "# syft_node_location=self.syft_node_location,\n", + "# syft_client_verify_key=self.syft_client_verify_key,\n", + "# )\n", + "# return mark_write_complete_method(\n", + "# etags=etags, uid=self.blob_storage_entry_id, no_lines=no_lines\n", + "# )" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# with open(\"somefile.txt\", \"rb\") as f:\n", + "# dep.write(f)" + ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# syft absolute\n", + "from syft.types.blob_storage import BlobFile" + ] + }, + { + "cell_type": "code", + "execution_count": 25, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "0it [00:00, ?it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 107266\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "1it [00:08, 8.17s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2 214533\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "2it [00:12, 5.75s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3 321800\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "3it [00:14, 4.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4 429067\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "4it [00:16, 3.32s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5 536334\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "5it [00:18, 2.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6 643601\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "6it [00:20, 2.47s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7 750868\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "7it [00:22, 2.28s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "8 858135\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "8it [00:24, 2.19s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "9 965402\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "9it [00:25, 2.08s/it]" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "10 1072669\n" + "Uploading\n", + "7\n", + "4913438816\n", + "34394071712\n", + "1\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "10it [00:27, 2.02s/it]" + "Uploading file part 1/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:47<00:00, 55.76it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "11 1179936\n" + "2\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "11it [00:29, 1.94s/it]" + "Uploading file part 2/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:39<00:00, 60.00it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "12 1287202\n" + "3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "12it [00:31, 1.88s/it]" + "Uploading file part 3/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:38<00:00, 60.69it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "13 1394469\n" + "4\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "13it [00:33, 1.99s/it]" + "Uploading file part 4/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:48<00:00, 55.42it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "14 1501736\n" + "5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "14it [00:35, 1.98s/it]" + "Uploading file part 5/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:45<00:00, 56.86it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "15 1609003\n" + "6\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "15it [00:37, 2.05s/it]" + "Uploading file part 6/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:52<00:00, 53.14it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "16 1716270\n" + "7\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "16it [00:39, 2.03s/it]" + "Uploading file part 7/7: 100%|██████████████████████████████████████████████████████████████████████████| 5998/5998 [01:42<00:00, 58.46it/s]\n" ] - }, + } + ], + "source": [ + "x = BlobFile.upload_from_path(\"somefile32gb.txt\", client)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "17 1823537\n" + "b'YEXFIA79OPO0ODMF7Z6SCGCYYHF8EIZ6NWP13WYVFPO7IC2W4CK6EDDCA7V1ITBU2F6IDLLAKX6RP39CDJF7THP30416ACJEGIXMFCGL25IRP6OCH6UEKGNYTL3RVSBI75T0DC2YIP98P0QBAYNEGBDFHENES15PBKOENVNBNTKW4MSGD3V74MDX0QIT5GM386O9QBPBD5NOFVR1GCSWT45A35O2ODJHFQ6HSLE0W5PNH2KWNGYP0OTOGG9DQ9JRHCDIORLLV1TJRDPXRITYKU7URHY0VVQ7G03VZ430A3CBEME6HBBAA0T6EYIM2M0ARIQYMAEAO3YLKOOSG868Z5BQXNY1FWMPQQY6NC942LKPZP9C8VK6WR6PLY926F5VV2G5E304T0RRB6D8I67G8D35SP60PJ3JUOIPW7NKMP99XMG2Z0UTT4SKWM1JW8H1DFOKOJD2OHE157V5HMFGU21VQRHN34M57M6EN7WGU27UKHENPC6DEV36ARCGGUX0A85JJTK0PADOOTLW1M5GDIX02O681LR2PY6ONJI71679VTRKVNCPLCSFQZV4XMR6NYFPDA3TAZCMUUH3HKJY8E4XY6D1FSKEJDC9P4UW05NJTAGAFQNG770F6IRYGKV29TLM1VJUNUYKY6PLYR4CSJ68HC8K5F1ZTDX9UEHRHZ2DAJ8Q8BJ5E2FNQIGZ8WJE4U2PG1BWDIXOXW8QWPQTAVQN8VVPWPUI9EQ8LR0YB0HQ2Q9WAYABIHHH3IEXF169MSGD2M37WFI4LWY2D136V7PY8ZPY9344JTW8L3DMS96IVCAPB3AXYCJK0BTHE01X2F0WNBGTQGLR0IPEOF637L8W9HLODUD6A0OLWSNFSJ6VCU6Y04FRUZQEYNT6IOS79DP6WXUTM6ZYMCEIUVAQCVIG1P94VABXJKW07YBW5HT5FT1B7E0SZ5EK3EX6HZUSD0PDUS49X5H8SDNSYANP98MHKNN7AGZ0546U3EAU'\n", + "b'A0JQM0OZW95T1VAH58JLN3BWP24C39Y4W17O5QVG9SCHZW5C0DE0D1J1XPSKUXC1MKO1832M07BQCL26D3SM25F1GLSEWRZ3MCFILKUIH1WMNWQFFC556H8YCERGVL48WL9W3B1LX7Z071090LBP5MYK27CQB554SLBMS3BDAOWFDYJOEOJH0OPRXKBCIHMIDBRJU70P1L1BH4QST81AIE1A52XOT1QUCRLVVDBF2IVDMZNKCHL0UXMSMQV0KU1LUAQ7KJ5DY74SEGACFBRYMA3JR6PV49YTB4JQOKQQYCJE6F0WWC5N20TKFJ2MO4YLO6443ERPH7TBXEGVUJSN3QNHX9387XMGXUHQ28M0T017HSXDN75TVFX56QESCIELD9SYCXW0HYGKDBBSQHSNVZOZDQQ4HLNEZVZK6GV87F5951KEVGIF32907PIGRWYHJ7LZZ0TM9GWIOYZIAV5QL1Q3V78D1UAE85ZJ6I1BKKHY3IPLMOBUFMB9IX3K4PGREF7E2PU1BGK5U4YLZIWZRXPWUG9PVVY7RCKOXRKPXG3AUX7OUC23E5WI4JUTKKHKW9NTVIWECH44UE2OOLVY1NZO54RWSHSUWOZM9RZ4RY36FMSOK40AZTQ1HTKNDY4MZ35IJMHVWPK4Z2I203U16PMKWVYDQUN98N6CI3WZPSB6Q154D759MUD4XIE84DF4HGTN48VJTYEOWXL2W2IC0FYFGF8G69MBWNBZTO77V6AMBF9ID52MCMEVXQUSXEL3YR6BFS5HXXR5CO7K9ZNEGG1ESMB3ZLK8BYRU8QPWP5NVOAWMI0E76522V6Q1DDDVBXXZEG7Z5Q98DBGQSWYJEUN6Y1J3ZVFKRVF92WSPEG40M5SP6MN3805BDWOYKF27DS8STAU35PUFFF7KQBIM8FIP7FVVO4DLTW8ZU38IER28RI4P87P1MON29LC59HU50FWB3GZHPXBHV17ZCXK588UR4OSC2I0PIC9G5RIV'\n", + "b'L749OOKP38NLWJVG18JU9ZKBG6IRII0TI8PA1MG04RNEIA1RU103293DDVINYAKXZJBI048OPYF2J6KUP98MUJBKWA81A363GNDIUZQADJ8LHFYH2191ADEOEML6ODK050JTZP1V9MUVA4S8A92EK84Z0AZLYCMNJFRBH7J6MMZ9SBI62SBH6A10HIVZ419Q7EVDWL6OLHOMC5LDCFJBRYZEZXED3A13HS6PHAP9594T71UIS3G1ABE92SXRJQDVARTRE2HNRWABRK4OQKQC8918RBCEFGE7CBWR3DT85BYSB9727UZ0JY4L069VD9GGYI226IJZX3I5CTDXK86G1K16HPED7R7U45T6WW5RLEVSGT6Z3RT4G0V1QC8HRLUHSI3M71S98EWYZ6L3Z86OFPZZD0G5EP6T4F8GIMU9Z8J2AEK7JFPBQR5PU2QIV1TIUYG3T8WQC2AKDUV31A3R928OKO2C700B32RXVDWA3YXI8ZQBJ5RFUKP9QYAKHGOKA4HX3MDPJRGFD5EKJQNU0V861MNBXRTQT5SVHDRV1AX20VSEOQ26ATXFIJXTLOP2GL9Z149Y0C1S9T53SEIQMZT1D57SKMTO300PCW9CM8QS6ENQDOROUEQKIP4C644AU68OHJFDFX6LIIW89X2MHYDO34GE5Z4TXEY78NNRY5GQFQ7F9HOLTBJ3SCERK1KHHFVCUBPPWWUC0SJEBSVFNN4LPEVQ7G6PDLBP529ZCBJFGTFY88RCT0XM4NYY4C7SKRTPV50Z1TTKOIJCC5X0L9OKRK9AU67951RWZ9KF5FA4H9RYU5XZTT0GSNJ928NOH14RD0IU30X6BDCR3ZX9DFHV5O2PFNT3VYX68Y4XVCAAD4R72S2LTLQ93RRRGJFDCJLPS9DDRX3H6BCGUXOTX26EFC5P4Q6XBMLSTA4SOSL4I2YMWNOLKLZYWW3JM12S3U4TNYC5FTAM382EZY2NZ3NZ93JH8JWVCC5SWMQ3'\n", + "b'TRN2J91743RKG9JOMWZ0O0RAY3WQMEH3WLKPQWIFWX6JYW5PT9L0KZH5CZXLFEC5LOYKYN3POHODX6OKG2187ITOAYTNJ1XC4WPIZH1X9T6M0IYO2X4WZJUUAQPGU7G6IM1BT9OAWWGNKBUH5VQM7MP7A35LGZD6QA0R7FD48US4TRUKWTYOMSHGC8PB88DZOK8RHJZRB5CTFSOFFGJG0F0FAZNCY6KMHCNBS07UVNEHLC5USGX5HXARTVFY6VHUSY16U3U5KAH0DR2TKA95XC2G6YTWY3TZUW3XHHQHSUTAQWIJ71B6VKGRY8XB1CZBP9UT8FVN2MGGSFLBB011G9F1RLDDU2O3IEIDOL87MSN8XU5Q7UMDKLNB1TSGMYD9LB09RYMZJV7GZLUCGDI38VFZEE3A579TA063W4Z6EFA817ZSYMF25FU62C3LY0Z40AP664DZZFTCWO1J68BFP7WDTWGVTFLE11QIYCO0ZQBHDDK3VB64AMMZEIK0PYNQ6BGRUJP7U332W6OQED1W0U9374E7L3ORC48PE94XZ66F38BPU0QKLSKDYNL7C1PLPHISSBWHRHPQ6MROI1QK6MIB65QBOHOSSHJM9FX8O2AEARTP13CP79ZBA0F7XCT63ZKWZIY3S289D7Z5AEV3FAT9U6E64CAKQCVJQALLQ7IQSS0RWJE9N4N4QIS3YYBGAFJWAK728KBDSYKLQSSNZ6DLHRR6VJ31JZD5TWZBA27M2FGGKCOE1Q7N162BH1SIMAF0M9N0I5EY3TCOMTHR49KTF7JW093CBRIJ00X49G5UAHIIUQOYDIF960K6A25GP07X4V97YKOYVHS7DQQBA7CPKF3HQYFWY3GCOHBSFHNE78XNG3A7ELRYF0JTNZA1BPO8DMRMF2IUKCR1P9XZWC2ESP8NG8EQIP5XE0I28WQ4KA4H0LLFVUZO01KGWDVVU8CXO6PJ2MCF2HNNEUI1GDMJXOPVNS5SGUY9K4ZR'\n" ] - }, + } + ], + "source": [ + "for i, y in enumerate(x.iter_lines()):\n", + " if i > 3:\n", + " break\n", + " print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "17it [00:41, 2.03s/it]" - ] - }, + "data": { + "text/markdown": [ + "```python\n", + "class ActionFileData:\n", + " id: str = acfe2005d7004143960a75164b366c2d\n", + "\n", + "```" + ], + "text/plain": [ + "syft.service.action.action_data_empty.ActionFileData" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "18 1930804\n" + "Uploading\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\r", - "18it [00:43, 2.01s/it]" + "Uploading file part 1/1: 100%|██████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 4144.57it/s]\n" ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "19 2038071\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "19it [00:45, 2.05s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "20 2145338\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "20it [00:48, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "21 2252605\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "21it [00:50, 2.24s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "22 2359872\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "22it [00:53, 2.44s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "23 2467139\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "23it [00:57, 2.85s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "24 2574405\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "24it [00:59, 2.56s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "25 2681672\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "25it [01:01, 2.40s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "26 2788939\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "26it [01:03, 2.23s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "27 2896206\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "27it [01:05, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "28 3003473\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "28it [01:07, 2.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "29 3110740\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "29it [01:08, 1.97s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "30 3218007\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "30it [01:11, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "31 3325274\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "31it [01:13, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "32 3432541\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "32it [01:14, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "33 3539808\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "33it [01:16, 1.98s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "34 3647075\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "34it [01:18, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "35 3754342\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "35it [01:20, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "36 3861608\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "36it [01:23, 2.15s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "37 3968875\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "37it [01:25, 2.05s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "38 4076142\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "38it [01:26, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "39 4183409\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "39it [01:29, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "40 4290676\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "40it [01:31, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "41 4397943\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "41it [01:33, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "42 4505210\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "42it [01:35, 2.18s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "43 4612477\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "43it [01:37, 2.06s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "44 4719744\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "44it [01:39, 2.02s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "45 4827011\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "45it [01:41, 2.12s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "46 4934278\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "46it [01:43, 2.07s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "47 5041545\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "47it [01:47, 2.53s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "48 5148811\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "48it [01:49, 2.36s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "49 5256078\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "49it [01:51, 2.26s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "50 5363345\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "50it [01:53, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "51 5470612\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "51it [01:54, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "52 5577879\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "52it [01:56, 1.91s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "53 5685146\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "53it [01:58, 1.85s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "54 5792413\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "54it [02:01, 2.37s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "55 5899680\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "55it [02:03, 2.19s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "56 6006947\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "56it [02:05, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "57 6114214\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "57it [02:08, 2.44s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "58 6221481\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "58it [02:12, 2.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "59 6328747\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "59it [02:14, 2.59s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "60 6436014\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "60it [02:16, 2.34s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "61 6543281\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "61it [02:17, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "62 6650548\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "62it [02:20, 2.27s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "63 6757815\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "63it [02:22, 2.21s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "64 6865082\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "64it [02:24, 2.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "65 6972349\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "65it [02:26, 2.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "66 7079616\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "66it [02:28, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "67 7186883\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "67it [02:30, 1.96s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "68 7294150\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "68it [02:32, 2.19s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "69 7401417\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "69it [02:34, 2.10s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "70 7508684\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "70it [02:36, 2.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "71 7615950\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "71it [02:38, 2.04s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "72 7723217\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "72it [02:41, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "73 7830484\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "73it [02:43, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "74 7937751\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "74it [02:45, 2.06s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "75 8045018\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "75it [02:47, 2.04s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "76 8152285\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "76it [02:49, 2.05s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "77 8259552\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "77it [02:51, 2.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "78 8366819\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "78it [02:53, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "79 8474086\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "79it [02:55, 2.12s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "80 8581353\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "80it [02:58, 2.30s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "81 8688620\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "81it [03:00, 2.25s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "82 8795887\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "82it [03:02, 2.24s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "83 8903153\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "83it [03:05, 2.36s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "84 9010420\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "84it [03:07, 2.40s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "85 9117687\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "85it [03:09, 2.25s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "86 9224954\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "86it [03:11, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "87 9332221\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "87it [03:13, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "88 9439488\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "88it [03:15, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "89 9546755\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "89it [03:17, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "90 9654022\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "90it [03:20, 2.25s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "91 9761289\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "91it [03:22, 2.15s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "92 9868556\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "92it [03:23, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "93 9975823\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "93it [03:26, 2.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "94 10083090\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "94it [03:29, 2.42s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "95 10190356\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "95it [03:32, 2.62s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "96 10297623\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "96it [03:34, 2.44s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "97 10404890\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "97it [03:36, 2.44s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "98 10512157\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "98it [03:40, 2.77s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "99 10619424\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "99it [03:43, 2.86s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "100 10726691\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "100it [03:47, 3.26s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "101 10833958\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "101it [03:52, 3.59s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "102 10941225\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "102it [03:54, 3.15s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "103 11048492\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "103it [03:56, 2.78s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "104 11155759\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "104it [03:57, 2.51s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "105 11263026\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "105it [03:59, 2.30s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "106 11370292\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "106it [04:01, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "107 11477559\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "107it [04:03, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "108 11584826\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "108it [04:04, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "109 11692093\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "109it [04:06, 1.88s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "110 11799360\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "110it [04:08, 1.84s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "111 11906627\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "111it [04:11, 2.14s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "112 12013894\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "112it [04:13, 2.05s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "113 12121161\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "113it [04:15, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "114 12228428\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "114it [04:17, 1.98s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "115 12335695\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "115it [04:18, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "116 12442962\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "116it [04:20, 1.90s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "117 12550229\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "117it [04:22, 1.83s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "118 12657495\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "118it [04:23, 1.76s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "119 12764762\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "119it [04:26, 2.12s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "120 12872029\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "120it [04:29, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "121 12979296\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "121it [04:31, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "122 13086563\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "122it [04:32, 1.95s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "123 13193830\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "123it [04:34, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "124 13301097\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "124it [04:36, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "125 13408364\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "125it [04:41, 2.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "126 13515631\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "126it [04:43, 2.60s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "127 13622898\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "127it [04:45, 2.37s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "128 13730165\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "128it [04:47, 2.23s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "129 13837432\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "129it [04:49, 2.14s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "130 13944698\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "130it [04:51, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "131 14051965\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "131it [04:52, 1.96s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "132 14159232\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "132it [04:54, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "133 14266499\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "133it [04:56, 1.90s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "134 14373766\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "134it [04:58, 1.87s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "135 14481033\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "135it [05:00, 1.84s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "136 14588300\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "136it [05:01, 1.79s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "137 14695567\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "137it [05:03, 1.79s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "138 14802834\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "138it [05:05, 1.83s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "139 14910101\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "139it [05:07, 1.79s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "140 15017368\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "140it [05:09, 1.81s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "141 15124635\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "141it [05:10, 1.78s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "142 15231901\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "142it [05:14, 2.19s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "143 15339168\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "143it [05:16, 2.14s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "144 15446435\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "144it [05:17, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "145 15553702\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "145it [05:19, 1.95s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "146 15660969\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "146it [05:21, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "147 15768236\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "147it [05:23, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "148 15875503\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "148it [05:25, 1.90s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "149 15982770\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "149it [05:26, 1.87s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "150 16090037\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "150it [05:29, 1.97s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "151 16197304\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "151it [05:31, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "152 16304571\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "152it [05:33, 2.07s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "153 16411838\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "153it [05:35, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "154 16519104\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "154it [05:37, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "155 16626371\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "155it [05:38, 1.88s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "156 16733638\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "156it [05:40, 1.90s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "157 16840905\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "157it [05:42, 1.85s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "158 16948172\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "158it [05:44, 1.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "159 17055439\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "159it [05:47, 2.21s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "160 17162706\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "160it [05:49, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "161 17269973\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "161it [05:51, 2.05s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "162 17377240\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "162it [05:53, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "163 17484507\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "163it [05:55, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "164 17591774\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "164it [05:58, 2.32s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "165 17699040\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "165it [06:00, 2.30s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "166 17806307\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "166it [06:02, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "167 17913574\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "167it [06:04, 2.06s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "168 18020841\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "168it [06:05, 1.97s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "169 18128108\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "169it [06:07, 1.95s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "170 18235375\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "170it [06:10, 2.28s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "171 18342642\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "171it [06:12, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "172 18449909\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "172it [06:14, 2.06s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "173 18557176\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "173it [06:16, 1.97s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "174 18664443\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "174it [06:18, 2.12s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "175 18771710\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "175it [06:20, 2.05s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "176 18878977\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "176it [06:22, 1.99s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "177 18986243\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "177it [06:24, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "178 19093510\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "178it [06:26, 2.04s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "179 19200777\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "179it [06:28, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "180 19308044\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "180it [06:30, 1.98s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "181 19415311\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "181it [06:32, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "182 19522578\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "182it [06:34, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "183 19629845\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "183it [06:36, 1.99s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "184 19737112\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "184it [06:39, 2.30s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "185 19844379\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "185it [06:41, 2.19s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "186 19951646\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "186it [06:46, 3.17s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "187 20058913\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "187it [06:49, 2.89s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "188 20166180\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "188it [06:51, 2.67s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "189 20273446\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "189it [06:53, 2.49s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "190 20380713\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "190it [06:55, 2.39s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "191 20487980\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "191it [06:57, 2.23s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "192 20595247\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "192it [06:59, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "193 20702514\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "193it [07:00, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "194 20809781\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "194it [07:02, 1.98s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "195 20917048\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "195it [07:06, 2.55s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "196 21024315\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "196it [07:08, 2.40s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "197 21131582\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "197it [07:10, 2.27s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "198 21238849\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "198it [07:12, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "199 21346116\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "199it [07:14, 2.07s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "200 21453383\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "200it [07:18, 2.56s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "201 21560649\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "201it [07:19, 2.34s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "202 21667916\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "202it [07:22, 2.34s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "203 21775183\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "203it [07:26, 2.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "204 21882450\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "204it [07:28, 2.54s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "205 21989717\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "205it [07:30, 2.35s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "206 22096984\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "206it [07:31, 2.22s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "207 22204251\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "207it [07:33, 2.06s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "208 22311518\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "208it [07:35, 2.14s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "209 22418785\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "209it [07:37, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "210 22526052\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "210it [07:39, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "211 22633319\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "211it [07:41, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "212 22740585\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "212it [07:43, 1.99s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "213 22847852\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "213it [07:45, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "214 22955119\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "214it [07:47, 1.87s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "215 23062386\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "215it [07:49, 1.89s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "216 23169653\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "216it [07:51, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "217 23276920\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "217it [07:55, 2.48s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "218 23384187\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "218it [07:57, 2.52s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "219 23491454\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "219it [07:59, 2.38s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "220 23598721\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "220it [08:01, 2.34s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "221 23705988\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "221it [08:04, 2.30s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "222 23813255\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "222it [08:06, 2.21s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "223 23920522\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "223it [08:08, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "224 24027788\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "224it [08:09, 2.04s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "225 24135055\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "225it [08:11, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "226 24242322\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "226it [08:13, 1.88s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "227 24349589\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "227it [08:15, 1.84s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "228 24456856\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "228it [08:16, 1.85s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "229 24564123\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "229it [08:18, 1.83s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "230 24671390\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "230it [08:20, 1.84s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "231 24778657\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "231it [08:22, 1.83s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "232 24885924\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "232it [08:24, 1.81s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "233 24993191\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "233it [08:25, 1.78s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "234 25100458\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "234it [08:27, 1.77s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "235 25207725\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "235it [08:32, 2.84s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "236 25314991\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "236it [08:35, 2.60s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "237 25422258\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "237it [08:36, 2.34s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "238 25529525\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "238it [08:38, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "239 25636792\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "239it [08:40, 2.03s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "240 25744059\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "240it [08:42, 1.99s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "241 25851326\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "241it [08:43, 1.89s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "242 25958593\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "242it [08:45, 1.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "243 26065860\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "243it [08:47, 1.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "244 26173127\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "244it [08:49, 1.81s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "245 26280394\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "245it [08:50, 1.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "246 26387661\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "246it [08:52, 1.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "247 26494928\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "247it [08:54, 1.79s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "248 26602194\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "248it [08:56, 1.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "249 26709461\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "249it [08:58, 1.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "250 26816728\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "250it [08:59, 1.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "251 26923995\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "251it [09:01, 1.83s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "252 27031262\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "252it [09:04, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "253 27138529\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "253it [09:06, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "254 27245796\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "254it [09:08, 2.06s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "255 27353063\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "255it [09:10, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "256 27460330\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "256it [09:12, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "257 27567597\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "257it [09:14, 2.02s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "258 27674864\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "258it [09:16, 1.98s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "259 27782131\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "259it [09:18, 1.95s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "260 27889397\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "260it [09:20, 1.95s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "261 27996664\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "261it [09:22, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "262 28103931\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "262it [09:23, 1.88s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "263 28211198\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "263it [09:25, 1.91s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "264 28318465\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "264it [09:27, 1.91s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "265 28425732\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "265it [09:29, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "266 28532999\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "266it [09:31, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "267 28640266\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "267it [09:33, 1.86s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "268 28747533\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "268it [09:35, 1.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "269 28854800\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "269it [09:39, 2.58s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "270 28962067\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "270it [09:42, 2.62s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "271 29069333\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "271it [09:44, 2.37s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "272 29176600\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "272it [09:45, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "273 29283867\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "273it [09:48, 2.37s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "274 29391134\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "274it [09:50, 2.23s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "275 29498401\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "275it [09:52, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "276 29605668\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "276it [09:54, 2.01s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "277 29712935\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "277it [09:55, 1.94s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "278 29820202\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "278it [09:57, 1.89s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "279 29927469\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "279it [09:59, 1.86s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "280 30034736\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "280it [10:01, 1.87s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "281 30142003\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "281it [10:03, 2.02s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "282 30249270\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "282it [10:05, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "283 30356536\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "283it [10:07, 2.04s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "284 30463803\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "284it [10:09, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "285 30571070\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "285it [10:13, 2.38s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "286 30678337\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "286it [10:14, 2.22s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "287 30785604\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "287it [10:16, 2.08s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "288 30892871\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "288it [10:18, 1.99s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "289 31000138\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "289it [10:20, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "290 31107405\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "290it [10:22, 1.96s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "291 31214672\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "291it [10:24, 1.92s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "292 31321939\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "292it [10:25, 1.88s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "293 31429206\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "293it [10:27, 1.82s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "294 31536473\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "294it [10:29, 1.81s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "295 31643739\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "295it [10:31, 1.79s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "296 31751006\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "296it [10:32, 1.81s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "297 31858273\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "297it [10:34, 1.79s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "298 31965540\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "298it [10:36, 1.78s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "299 32072807\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "299it [10:38, 1.80s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "300 32180074\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "300it [10:40, 2.07s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "301 32287341\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "301it [10:44, 2.37s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "302 32394608\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "302it [10:45, 2.25s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "303 32501875\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "303it [10:47, 2.16s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "304 32609142\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "304it [10:50, 2.24s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "305 32716409\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "305it [10:53, 2.37s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "306 32823676\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "306it [10:54, 2.18s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "307 32930942\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "307it [10:56, 2.09s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "308 33038209\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "308it [10:58, 2.00s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "309 33145476\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "309it [11:02, 2.49s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "310 33252743\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "310it [11:05, 2.63s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "311 33360010\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "311it [11:07, 2.49s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "312 33467277\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "312it [11:09, 2.29s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "313 33574544\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "313it [11:10, 2.14s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "314 33681811\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "314it [11:12, 2.02s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "315 33789078\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "315it [11:14, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "316 33896345\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "316it [11:17, 2.24s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "317 34003612\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "317it [11:19, 2.13s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "318 34110878\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "318it [11:20, 2.02s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "319 34218145\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "319it [11:22, 1.93s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "320 34325412\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "320it [11:24, 1.89s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "321 34359712\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "321it [11:25, 2.13s/it]\n" - ] - } - ], - "source": [ - "# relative\n", - "with open(file, \"rb\") as data:\n", - " from syft.client.api import APIRegistry\n", - "\n", - " api = APIRegistry.api_for(\n", - " node_uid=dep.syft_node_location,\n", - " user_verify_key=dep.syft_client_verify_key,\n", - " )\n", - "\n", - " etags = []\n", - "\n", - " try:\n", - " no_lines = 0\n", - " for part_no, (byte_chunk, url) in tqdm(enumerate(\n", - " zip(_byte_chunks(data, DEFAULT_CHUNK_SIZE), dep.urls),\n", - " start=1,\n", - " )):\n", - " no_lines += byte_chunk.count(b\"\\n\")\n", - " if api is not None:\n", - " blob_url = api.connection.to_blob_route(\n", - " url.url_path, host=url.host_or_ip\n", - " )\n", - " else:\n", - " blob_url = url\n", - " \n", - " def data_generator(bytes_, chunk_size=819200):\n", - " n=0\n", - " while n*chunk_size <= len(bytes_):\n", - " chunk = bytes_[n*chunk_size:(n+1)*chunk_size]\n", - " n += 1\n", - " yield chunk\n", - " print(part_no, no_lines)\n", - " response = requests.put(\n", - " url=str(blob_url), data=data_generator(byte_chunk), timeout=DEFAULT_TIMEOUT, stream=True\n", - " )\n", - " response.raise_for_status()\n", - " etag = response.headers[\"ETag\"]\n", - " etags.append({\"ETag\": etag, \"PartNumber\": part_no})\n", - " except requests.RequestException as e:\n", - " print(e)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "# len([x for x in data_generator(byte_chunk)])" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "107374182" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(1024 ** 3) // 10" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div class=\"alert-success\" style=\"padding:5px;\"><strong>SyftSuccess</strong>: Successfully saved file.</div><br />" - ], - "text/plain": [ - "SyftSuccess: Successfully saved file." - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "api.services.blob_storage.mark_write_complete(etags=etags, uid=dep.blob_storage_entry_id, no_lines=no_lines)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - " # mark_write_complete_method = from_api_or_context(\n", - " # func_or_path=\"blob_storage.mark_write_complete\",\n", - " # syft_node_location=self.syft_node_location,\n", - " # syft_client_verify_key=self.syft_client_verify_key,\n", - " # )\n", - " # return mark_write_complete_method(\n", - " # etags=etags, uid=self.blob_storage_entry_id, no_lines=no_lines\n", - " # )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"somefile.txt\", \"rb\") as f:\n", - " dep.write(f)\n" + "# x = BlobFile.upload_from_path(\"somefile.txt\", client)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ - "x = BlobFile.upload_from_path(\"somefile.txt\", client)" + "# %debug" ] }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 13, @@ -5348,6 +651,7 @@ "metadata": {}, "outputs": [], "source": [ + "# syft absolute\n", "from syft.types.blob_storage import BlobFile" ] }, diff --git a/notebooks/helm/helm-syft.ipynb b/notebooks/helm/helm-syft.ipynb index 11fed544520..ea88e25b7c2 100644 --- a/notebooks/helm/helm-syft.ipynb +++ b/notebooks/helm/helm-syft.ipynb @@ -530,7 +530,7 @@ " n=n,\n", " )\n", " batch_results.append(batch_job.result)\n", - " \n", + "\n", " aggregate_job = domain.launch_job(aggregate, batch_results=batch_results)\n", " print(\"Finished main function\")\n", " return aggregate_job.result" diff --git a/packages/grid/seaweedfs/start.sh b/packages/grid/seaweedfs/start.sh index 64ba9581722..01038fc91ba 100644 --- a/packages/grid/seaweedfs/start.sh +++ b/packages/grid/seaweedfs/start.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -weed server -s3 -s3.port="$S3_PORT" -volume.max=5 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & +weed server -s3 -s3.port="$S3_PORT" -volume.max=10 -master.volumeSizeLimitMB="$S3_VOLUME_SIZE_MB" & echo "s3.configure -access_key $S3_ROOT_USER -secret_key $S3_ROOT_PWD \ -user iam -actions Read,Write,List,Tagging,Admin -apply" | weed shell > /dev/null 2>&1 diff --git a/packages/syft/src/syft/protocol/protocol_version.json b/packages/syft/src/syft/protocol/protocol_version.json index 67f204a0e92..f0f959f171a 100644 --- a/packages/syft/src/syft/protocol/protocol_version.json +++ b/packages/syft/src/syft/protocol/protocol_version.json @@ -1151,6 +1151,13 @@ "hash": "e410de583bb15bc5af57acef7be55ea5fc56b5b0fc169daa3869f4203c4d7473", "action": "add" } + }, + "SeaweedFSBlobDeposit": { + "2": { + "version": 2, + "hash": "07d84a95324d95d9c868cd7d1c33c908f77aa468671d76c144586aab672bcbb5", + "action": "add" + } } } } diff --git a/packages/syft/src/syft/service/action/action_data_empty.py b/packages/syft/src/syft/service/action/action_data_empty.py index 1434949301d..00a33c29670 100644 --- a/packages/syft/src/syft/service/action/action_data_empty.py +++ b/packages/syft/src/syft/service/action/action_data_empty.py @@ -61,8 +61,4 @@ def __validate_file_path(cls, v: Union[str, Path]) -> Path: if isinstance(v, str): v = Path(v) - if v.exists() and v.is_file(): - return v - - # this breaks server side during deserialization - # raise ValueError(f"Not a valid path to file. {v}") + return v diff --git a/packages/syft/src/syft/store/blob_storage/seaweedfs.py b/packages/syft/src/syft/store/blob_storage/seaweedfs.py index 9babf94143e..f6736ee291a 100644 --- a/packages/syft/src/syft/store/blob_storage/seaweedfs.py +++ b/packages/syft/src/syft/store/blob_storage/seaweedfs.py @@ -14,6 +14,7 @@ from botocore.client import ClientError as BotoClientError from botocore.client import Config import requests +from tqdm import tqdm from typing_extensions import Self # relative @@ -33,28 +34,42 @@ from ...types.blob_storage import SeaweedSecureFilePathLocation from ...types.blob_storage import SecureFilePathLocation from ...types.grid_url import GridURL +from ...types.syft_migration import migrate from ...types.syft_object import SYFT_OBJECT_VERSION_1 +from ...types.syft_object import SYFT_OBJECT_VERSION_2 +from ...types.transforms import drop +from ...types.transforms import make_set_default from ...util.constants import DEFAULT_TIMEOUT WRITE_EXPIRATION_TIME = 900 # seconds -DEFAULT_CHUNK_SIZE = (1024**3) // 10 # 100 MB +DEFAULT_FILE_PART_SIZE = (1024**3) * 5 # 5GB +DEFAULT_UPLOAD_CHUNK_SIZE = 819200 -def _byte_chunks(bytes: BytesIO, size: int) -> Generator[bytes, None, None]: +def _byte_chunks(bytes: BytesIO, chunk_size: int) -> Generator[bytes, None, None]: while True: try: - yield bytes.read(size) + yield bytes.read(chunk_size) except BlockingIOError: return @serializable() -class SeaweedFSBlobDeposit(BlobDeposit): +class SeaweedFSBlobDepositV1(BlobDeposit): __canonical_name__ = "SeaweedFSBlobDeposit" __version__ = SYFT_OBJECT_VERSION_1 urls: List[GridURL] + +@serializable() +class SeaweedFSBlobDeposit(BlobDeposit): + __canonical_name__ = "SeaweedFSBlobDeposit" + __version__ = SYFT_OBJECT_VERSION_2 + + urls: List[GridURL] + size: int + def write(self, data: BytesIO) -> Union[SyftSuccess, SyftError]: # relative from ...client.api import APIRegistry @@ -68,8 +83,11 @@ def write(self, data: BytesIO) -> Union[SyftSuccess, SyftError]: try: no_lines = 0 + # this loops over the parts, we have multiple parts to allow for + # concurrent uploads of a single file. (We are currently not using that) + part_size = math.ceil(self.size / len(self.urls)) for part_no, (byte_chunk, url) in enumerate( - zip(_byte_chunks(data, DEFAULT_CHUNK_SIZE), self.urls), + zip(_byte_chunks(data, part_size), self.urls), start=1, ): no_lines += byte_chunk.count(b"\n") @@ -79,13 +97,33 @@ def write(self, data: BytesIO) -> Union[SyftSuccess, SyftError]: ) else: blob_url = url + + def data_generator(bytes_, chunk_size=DEFAULT_UPLOAD_CHUNK_SIZE): + """Creates a data geneator for the part""" + n = 0 + total_iterations = math.ceil(len(bytes_) / chunk_size) + + with tqdm( + total=total_iterations, + desc=f"Uploading file part {part_no}/{len(self.urls)}", # noqa + ) as pbar: + while n * chunk_size <= len(bytes_): + chunk = bytes_[n * chunk_size : (n + 1) * chunk_size] + n += 1 + pbar.update(1) + yield chunk + response = requests.put( - url=str(blob_url), data=byte_chunk, timeout=DEFAULT_TIMEOUT + url=str(blob_url), + data=data_generator(byte_chunk), + timeout=DEFAULT_TIMEOUT, + stream=True, ) response.raise_for_status() etag = response.headers["ETag"] etags.append({"ETag": etag, "PartNumber": part_no}) except requests.RequestException as e: + print(e) return SyftError(message=str(e)) mark_write_complete_method = from_api_or_context( @@ -98,6 +136,20 @@ def write(self, data: BytesIO) -> Union[SyftSuccess, SyftError]: ) +@migrate(SeaweedFSBlobDeposit, SeaweedFSBlobDepositV1) +def downgrade_seaweedblobdeposit_v2_to_v1(): + return [ + drop(["size"]), + ] + + +@migrate(SeaweedFSBlobDepositV1, SeaweedFSBlobDeposit) +def upgrade_seaweedblobdeposit_v1_to_v2(): + return [ + make_set_default("size", 1), + ] + + @serializable() class SeaweedFSClientConfig(BlobStorageClientConfig): host: str @@ -188,7 +240,7 @@ def allocate( ) def write(self, obj: BlobStorageEntry) -> BlobDeposit: - total_parts = math.ceil(obj.file_size / DEFAULT_CHUNK_SIZE) + total_parts = math.ceil(obj.file_size / DEFAULT_FILE_PART_SIZE) urls = [ GridURL.from_url( @@ -206,7 +258,9 @@ def write(self, obj: BlobStorageEntry) -> BlobDeposit: for i in range(total_parts) ] - return SeaweedFSBlobDeposit(blob_storage_entry_id=obj.id, urls=urls) + return SeaweedFSBlobDeposit( + blob_storage_entry_id=obj.id, urls=urls, size=obj.file_size + ) def complete_multipart_upload( self, From 6dec2146ceec410c6a5da6938e592a11b3830470 Mon Sep 17 00:00:00 2001 From: teo <teo.milea97@gmail.com> Date: Wed, 7 Feb 2024 18:13:41 +0200 Subject: [PATCH 8/9] added initial event service implementation --- packages/syft/src/syft/service/event/event.py | 67 +++++++++++++++++++ .../src/syft/service/event/event_service.py | 65 ++++++++++++++++++ .../src/syft/service/event/event_stash.py | 30 +++++++++ 3 files changed, 162 insertions(+) create mode 100644 packages/syft/src/syft/service/event/event.py create mode 100644 packages/syft/src/syft/service/event/event_service.py create mode 100644 packages/syft/src/syft/service/event/event_stash.py diff --git a/packages/syft/src/syft/service/event/event.py b/packages/syft/src/syft/service/event/event.py new file mode 100644 index 00000000000..8a7bd8df494 --- /dev/null +++ b/packages/syft/src/syft/service/event/event.py @@ -0,0 +1,67 @@ +from typing import Any, ClassVar, Dict, List, Type + +from syft.service.dataset.dataset import Asset, Dataset +from syft.store.linked_obj import LinkedObject +from ...types.syft_object import SyftObject +from ...types.uid import UID +from datetime import datetime +from pydantic import Field + +event_handler_registry = {} + +def register_event_handler(event_type): + def inner(method): + event_handler_registry[event_type.__name__] = method.__name__ + return method + + return inner + +class Event(SyftObject): + creator_user: UID + creation_date: datetime = Field(default_factory=lambda: datetime.now()) + + def handler(self, node): + method_name = event_handler_registry[self.__class__.__name__] + return getattr(node, method_name) + +class CRUDEvent(Event): + object_type: ClassVar[Type] = Type + object_id: UID + + @property + def merge_updates_repr(self): + return f"{self.updates} for object {self.object_id} by {self.creator}" + +class CreateObjectEvent(CRUDEvent): + @property + def updated_properties(self): + return list(self.object_type.__annotations__.keys()) + + @property + def updates(self): + return {p: getattr(self, p) for p in self.updated_properties} + + @property + def update_tuples(self): + return list(self.updates.items()) + + +class UpdateObjectEvent(CRUDEvent): + updates: Dict[str, Any] + + @property + def updated_properties(self): + return list(self.updates.keys()) + + @property + def update_tuples(self): + return list(self.updates.items()) + +class CreateDatasetEvent(CRUDEvent): + object_type: ClassVar[Type] = Dataset + + def execute(self, node): + handler = self.handler(node) + handler( + object_id=self.real.obj_id, + ) \ No newline at end of file diff --git a/packages/syft/src/syft/service/event/event_service.py b/packages/syft/src/syft/service/event/event_service.py new file mode 100644 index 00000000000..6819d389253 --- /dev/null +++ b/packages/syft/src/syft/service/event/event_service.py @@ -0,0 +1,65 @@ +from syft.serde.serializable import serializable +from syft.service.context import AuthedServiceContext +from syft.service.event.event_stash import EventStash +from syft.service.response import SyftError, SyftSuccess +from syft.service.service import AbstractService, service_method +from syft.service.user.user_roles import DATA_OWNER_ROLE_LEVEL +from syft.store.document_store import DocumentStore +from syft.types.uid import UID +from syft.util.trace_decorator import instrument +from .event import Event + +@instrument +@serializable() +class EventService(AbstractService): + store: DocumentStore + stash: EventStash + + def __init__(self, store: DocumentStore) -> None: + self.store = store + self.stash = EventStash(store=store) + + @service_method( + path="event.add", + name="add", + roles=DATA_OWNER_ROLE_LEVEL, + ) + def add( + self, context: AuthedServiceContext, event: Event, + ): + result = self.stash.set(context.credentials, event) + if result.is_err(): + return SyftError(message=str(result.err())) + + return SyftSuccess(message=f'Great Success!') + + + @service_method( + path="event.get_by_uid", + name="get_by_uid", + roles=DATA_OWNER_ROLE_LEVEL, + ) + def get_by_uid( + self, context: AuthedServiceContext, uid: UID, + ): + result = self.stash.get_by_uid(context.credentials, uid=uid) + if result.is_err(): + return SyftError(message=str(result.err())) + return result.ok() + + + @service_method( + path="event.get_all", + name="get_all", + roles=DATA_OWNER_ROLE_LEVEL, + ) + def get_all( + self, context: AuthedServiceContext + ): + result = self.stash.get_all(context.credentials) + if result.is_err(): + return SyftError(message=str(result.err())) + + return result.ok() + + \ No newline at end of file diff --git a/packages/syft/src/syft/service/event/event_stash.py b/packages/syft/src/syft/service/event/event_stash.py new file mode 100644 index 00000000000..25478c504b1 --- /dev/null +++ b/packages/syft/src/syft/service/event/event_stash.py @@ -0,0 +1,30 @@ +# stdlib +from typing import List +from typing import Optional + +# third party +from result import Result + +# relative +from ...node.credentials import SyftVerifyKey +from ...serde.serializable import serializable +from ...store.document_store import BaseUIDStoreStash +from ...store.document_store import DocumentStore +from ...store.document_store import PartitionKey +from ...store.document_store import PartitionSettings +from ...store.document_store import QueryKeys +from ...types.uid import UID +from ...util.telemetry import instrument +from .event import Event + + +@instrument +@serializable() +class EventStash(BaseUIDStoreStash): + object_type = Event + settings: PartitionSettings = PartitionSettings( + name=Event.__canonical_name__, object_type=Event + ) + + def __init__(self, store: DocumentStore) -> None: + super().__init__(store=store) \ No newline at end of file From 660dbb2c5cd57fd1c7e48ed1ef679d7faecca226 Mon Sep 17 00:00:00 2001 From: teo <teo.milea97@gmail.com> Date: Wed, 7 Feb 2024 18:39:26 +0200 Subject: [PATCH 9/9] fix createdatasetevent --- packages/syft/src/syft/node/node.py | 4 +++ .../src/syft/protocol/protocol_version.json | 35 +++++++++++++++++++ .../syft/service/dataset/dataset_service.py | 11 ++++++ packages/syft/src/syft/service/event/event.py | 23 ++++++++++-- 4 files changed, 71 insertions(+), 2 deletions(-) diff --git a/packages/syft/src/syft/node/node.py b/packages/syft/src/syft/node/node.py index 0972849f47c..34f5a0e457f 100644 --- a/packages/syft/src/syft/node/node.py +++ b/packages/syft/src/syft/node/node.py @@ -29,6 +29,8 @@ from result import Result from typing_extensions import Self +from ..service.event.event_service import EventService + # relative from .. import __version__ from ..abstract_node import AbstractNode @@ -319,6 +321,7 @@ def __init__( SyftWorkerImageService, SyftWorkerPoolService, SyftImageRegistryService, + EventService, ] if services is None else services @@ -877,6 +880,7 @@ def _construct_services(self): SyftWorkerImageService, SyftWorkerPoolService, SyftImageRegistryService, + EventService, ] if OBLV: diff --git a/packages/syft/src/syft/protocol/protocol_version.json b/packages/syft/src/syft/protocol/protocol_version.json index f0f959f171a..51a2dd048b0 100644 --- a/packages/syft/src/syft/protocol/protocol_version.json +++ b/packages/syft/src/syft/protocol/protocol_version.json @@ -1158,6 +1158,41 @@ "hash": "07d84a95324d95d9c868cd7d1c33c908f77aa468671d76c144586aab672bcbb5", "action": "add" } + }, + "Event": { + "1": { + "version": 1, + "hash": "1f3a5a19594887c11d01385352ba0244e3a57f02019e0df4a0f9da9393a840b1", + "action": "add" + } + }, + "CRUDEvent": { + "1": { + "version": 1, + "hash": "5a58f86d52caaf2ae29c00a5809e5a17d91f480ea796d9107aa9a3a07881c4a1", + "action": "add" + } + }, + "CreateObjectEvent": { + "1": { + "version": 1, + "hash": "58e80bd2f193c55730438468f02459cfc8ce678cbeac347548e243340a8749b0", + "action": "add" + } + }, + "UpdateObjectEvent": { + "1": { + "version": 1, + "hash": "e7af4c8bcb974197235cdabea37d26a35f1066077010d1afaea33ccb4d92b8ce", + "action": "add" + } + }, + "CreateDatasetEvent": { + "1": { + "version": 1, + "hash": "f1bc0d382312d5e91f86098bf561a7e0f716d82560678e69242f8dddb6604746", + "action": "add" + } } } } diff --git a/packages/syft/src/syft/service/dataset/dataset_service.py b/packages/syft/src/syft/service/dataset/dataset_service.py index 2558e1e560b..c1ea7182a8e 100644 --- a/packages/syft/src/syft/service/dataset/dataset_service.py +++ b/packages/syft/src/syft/service/dataset/dataset_service.py @@ -4,6 +4,8 @@ from typing import Optional from typing import Union +from ..event.event import CreateDatasetEvent + # relative from ...serde.serializable import serializable from ...store.document_store import DocumentStore @@ -98,6 +100,15 @@ def add( ) if result.is_err(): return SyftError(message=str(result.err())) + + event = CreateDatasetEvent( + object_id=dataset.id, + creator_user=UID(), + ) + res = context.node.get_service("EventService").add(context, event) + if isinstance(res, SyftError): + return res + return SyftSuccess( message=f"Dataset uploaded to '{context.node.name}'. " f"To see the datasets uploaded by a client on this node, use command `[your_client].datasets`" diff --git a/packages/syft/src/syft/service/event/event.py b/packages/syft/src/syft/service/event/event.py index 8a7bd8df494..6453044ce54 100644 --- a/packages/syft/src/syft/service/event/event.py +++ b/packages/syft/src/syft/service/event/event.py @@ -1,8 +1,9 @@ from typing import Any, ClassVar, Dict, List, Type +from syft.serde.serializable import serializable from syft.service.dataset.dataset import Asset, Dataset from syft.store.linked_obj import LinkedObject -from ...types.syft_object import SyftObject +from ...types.syft_object import SYFT_OBJECT_VERSION_1, SyftObject from ...types.uid import UID from datetime import datetime from pydantic import Field @@ -16,7 +17,10 @@ def inner(method): return inner +@serializable() class Event(SyftObject): + __canonical_name__ = "Event" + __version__ = SYFT_OBJECT_VERSION_1 creator_user: UID creation_date: datetime = Field(default_factory=lambda: datetime.now()) @@ -24,7 +28,11 @@ def handler(self, node): method_name = event_handler_registry[self.__class__.__name__] return getattr(node, method_name) + +@serializable() class CRUDEvent(Event): + __canonical_name__ = "CRUDEvent" + __version__ = SYFT_OBJECT_VERSION_1 object_type: ClassVar[Type] = Type object_id: UID @@ -32,7 +40,11 @@ class CRUDEvent(Event): def merge_updates_repr(self): return f"{self.updates} for object {self.object_id} by {self.creator}" + +@serializable() class CreateObjectEvent(CRUDEvent): + __canonical_name__ = "CreateObjectEvent" + __version__ = SYFT_OBJECT_VERSION_1 @property def updated_properties(self): return list(self.object_type.__annotations__.keys()) @@ -46,7 +58,10 @@ def update_tuples(self): return list(self.updates.items()) +@serializable() class UpdateObjectEvent(CRUDEvent): + __canonical_name__ = "UpdateObjectEvent" + __version__ = SYFT_OBJECT_VERSION_1 updates: Dict[str, Any] @property @@ -57,7 +72,11 @@ def updated_properties(self): def update_tuples(self): return list(self.updates.items()) -class CreateDatasetEvent(CRUDEvent): + +@serializable() +class CreateDatasetEvent(CreateObjectEvent): + __canonical_name__ = "CreateDatasetEvent" + __version__ = SYFT_OBJECT_VERSION_1 object_type: ClassVar[Type] = Dataset def execute(self, node):