diff --git a/datamint/dataset/base_dataset.py b/datamint/dataset/base_dataset.py index 9e998c12..f9a70b11 100644 --- a/datamint/dataset/base_dataset.py +++ b/datamint/dataset/base_dataset.py @@ -225,26 +225,34 @@ def _handle_dataset_download_or_update(self, local_load_success: bool) -> None: else: self._check_version() + def _init_metainfo(self) -> None: + # get the server info + self.project_info = self.get_info() + self.metainfo = self._get_datasetinfo().asdict().copy() + self.metainfo['updated_at'] = None + self.metainfo['resources'] = [] + self.metainfo['all_annotations'] = self.all_annotations + self.images_metainfo = self.metainfo['resources'] + def _load_metadata(self) -> bool: """Load and process dataset metadata.""" if hasattr(self, 'metainfo'): _LOGGER.warning("Metadata already loaded.") metadata_path = os.path.join(self.dataset_dir, 'dataset.json') if not os.path.isfile(metadata_path): - # get the server info - self.project_info = self.get_info() - self.metainfo = self._get_datasetinfo().asdict().copy() - self.metainfo['updated_at'] = None - self.metainfo['resources'] = [] - self.metainfo['all_annotations'] = self.all_annotations - self.images_metainfo = self.metainfo['resources'] + self._init_metainfo() return False else: with open(metadata_path, 'r') as file: self.metainfo = json.load(file) self.images_metainfo = self.metainfo['resources'] # Convert annotations from dict to Annotation objects - self._convert_metainfo_to_clsobj() + try: + self._convert_metainfo_to_clsobj() + except Exception as e: + _LOGGER.warning(f"Failed to convert annotations. Redownloading dataset. {type(e)}") + self._init_metainfo() + return False return True def _convert_metainfo_to_clsobj(self): @@ -552,13 +560,12 @@ def get_info(self) -> dict: """Get project information from API.""" if hasattr(self, 'project_info') and self.project_info is not None: return self.project_info - project = self.api.projects.get_by_name(self.project_name).asdict() - if 'error' in project: - available_projects = project['all_projects'] + project = self.api.projects.get_by_name(self.project_name) + if project is None: raise DatamintDatasetException( - f"Project with name '{self.project_name}' not found. " - f"Available projects: {available_projects}" + f"Project with name '{self.project_name}' not found." ) + project = project.asdict() self.project_info = project self.dataset_id = project['dataset_id'] return project @@ -898,8 +905,8 @@ def _incremental_update(self) -> None: ################ ### ANNOTATIONS ### - all_annotations = self.api.annotations.get_list(worklist_id=self.project_info['worklist_id'], - status='published' if self.all_annotations else None) + all_annotations = self.api.annotations.get_list(worklist_id=None if self.all_annotations else self.project_info['worklist_id'], + status=None if self.all_annotations else 'published') # group annotations by resource ID annotations_by_resource: dict[str, list[Annotation]] = {} diff --git a/notebooks/dataset_loading.ipynb b/notebooks/dataset_loading.ipynb index 5ccbe771..85d1bb5b 100644 --- a/notebooks/dataset_loading.ipynb +++ b/notebooks/dataset_loading.ipynb @@ -63,13 +63,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Setup-up example Project and data (optional)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ + "## Setup-up example Project and data (optional)\n", + "\n", + "You can skip this step if you already have a project set up.\n", + "\n", "Creating the example project:" ] }, @@ -88,6 +85,32 @@ "print(f\"Check your project at {proj.url}\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get existing Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datamint import Api\n", + "\n", + "PROJECT_NAME = 'My Project Name' # change to your project name\n", + "\n", + "api = Api()\n", + "proj = api.projects.get_by_name(PROJECT_NAME) # proj is a Project object with proper attributes and type hints\n", + "if proj is None:\n", + " _LOGGER.error(f\"Project with name '{PROJECT_NAME}' not found.\")\n", + "else:\n", + " # but you can convert to a dictionary if you want\n", + " display(proj.asdict())" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -113,6 +136,7 @@ "D = Dataset(\n", " project_name=PROJECT_NAME,\n", " return_as_semantic_segmentation=True,\n", + " all_annotations=True\n", ") # This automatically downloads the dataset if needed\n", "print('Dataset length:', len(D))" ] @@ -133,22 +157,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [ - { - "data": { - "text/html": [ - "
[09/18/25 16:57:44] INFO     Original image is uint16, converting to uint8                      base_dataset.py:668\n",
-       "
\n" - ], - "text/plain": [ - "\u001b[2;36m[09/18/25 16:57:44]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Original image is uint16, converting to uint8 \u001b]8;id=502300;file:///home/lhsmello/projects/Sonance/datamint-python-api/datamint/dataset/base_dataset.py\u001b\\\u001b[2mbase_dataset.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=369607;file:///home/lhsmello/projects/Sonance/datamint-python-api/datamint/dataset/base_dataset.py#668\u001b\\\u001b[2m668\u001b[0m\u001b]8;;\u001b\\\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "name": "stdout", "output_type": "stream", @@ -178,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -187,7 +198,7 @@ "dict_keys(['id', 'resource_uri', 'storage', 'location', 'upload_channel', 'filename', 'modality', 'mimetype', 'size', 'upload_mechanism', 'customer_id', 'status', 'created_at', 'created_by', 'published', 'deleted', 'source_filepath', 'metadata', 'projects', 'published_on', 'published_by', 'tags', 'publish_transforms', 'deleted_at', 'deleted_by', 'instance_uid', 'series_uid', 'study_uid', 'patient_id', 'segmentations', 'measurements', 'categories', 'user_info', 'labels', 'file'])" ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -212,16 +223,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, @@ -251,16 +262,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'lucas@mail.com': torch.Size([10, 2, 64, 64])}" + "{}" ] }, - "execution_count": 7, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -295,18 +306,39 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGzCAYAAABpdMNsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIPdJREFUeJzt3Q1wVNX5x/EnmBeBkBeCJFATxIoGRCiiQgpqhdQMdSwIYx2rlVpHCkbkxU5tpgW0VUNhFMUR8KUFR0VqOoMYp4g0QKgaEFArAo0BU0kNSdRxN4AkoeT855x/s8OGBJOQ8Oze/X5mDsnee7O5Z/fm/jj3PntvlDHGCAAAZ1m3s/0LAQAggAAAahgBAQBUEEAAABUEEABABQEEAFBBAAEAVBBAAAAVBBAAQAUBBLTBqlWrJCoqSnbu3Pmty/7gBz9wDcDpEUBAmFm2bJkLxJY88sgj8uMf/1hSU1NdYD744INnff2Atopu85IA2uStt97q8gDq06eP/PznPz9l3u9+9ztJS0uTESNGyIYNG7p0PYAzRQABnSw2NlbtNS0vL5cLLrhAvvzySznvvPPU1gNoCw7BASLywQcfyIQJEyQhIUHi4+Nl/Pjxsm3btlNem2+++UZ++ctfSkpKilv2jjvukK+//vpbzwHV19fLggUL5KKLLpK4uDhJT0+XX//61256cy+99JJcddVV0qNHD0lOTpZrrrkmMKqy4bJnzx4pLi52h9hsO/l32flAuGAEhIhnd+hXX321CxQbCjExMfLMM8+4Hbvd0Y8aNSrwGt17772SlJTkzq2UlpbK8uXL5bPPPpMtW7a4MGhJY2OjOy/z9ttvy7Rp02Tw4MGye/duWbJkiXzyySfy2muvBZZ96KGH3HN///vfl9///vduNLV9+3bZtGmTXH/99fLEE0/IzJkzXUj+9re/dT9jz/cAYcneDwiIZJMmTTKxsbHmwIEDgWmVlZWmV69e5pprrnGPV65cae+bZUaOHGkaGhoCyy1atMhNX7duXWDatdde61qTF1980XTr1s384x//CPq9K1ascD/7zjvvuMdlZWVuuZtuusmcOHEiaNnGxsbA95deemnQ87fkiy++cM+9YMGCDrwiwNnBIThEtBMnTrjDW5MmTZILL7wwML1fv37y05/+1I1aamtrA9PtCMaOkJrMmDFDoqOj5W9/+1urv6OgoMCNejIzM925maY2btw4N3/z5s3uqx0J2dHS/PnzpVu34D/N1kZXQDjjEBwi2hdffOHO61xyySWnzLOhYQOhoqIiMG3QoEFBy9hDYTas/v3vf7f6O8rKymTfvn2tFgXU1NS4rwcOHHDBM2TIkDPoERA+CCCgi9kQu+yyy+Txxx9vcb4tSAAiEQGEiGZHJbbazBYUNPevf/3LjUhsQOzYsSMwmrnuuusCyxw5ckQOHTokP/rRj1r9Hd/97nfln//8p6usO92hNLucDau9e/fK9773vVaX43AcvIJzQIho55xzjqsuW7duXdBhtOrqalm9erWMHTvWVcc1efbZZ+X48eOBx7YK7r///a8r4W7NT37yE/n888/lueeeO2XesWPH5OjRo+57ex7KBp6tfrNBdDJjbE3B/+vZs6f4fL4z6DUQGhgBIeI9/PDDsnHjRhc299xzjysqsGXY9jM6ixYtCnp9Ghoa3EjGhoodNdmrEtifs2XWrfnZz34mr776qkyfPt0VHIwZM8YVP9gRlp1ur1hwxRVXuM8I2dLqP/zhD64sfPLkye4zQ3b01b9/f8nPz3fPN3LkSBd8dr3tz/Tt2zdQ0PDiiy+6snB7XsvaunWrW65pPQYMGBDx7zdCyFmqtgNC2vvvv29ycnJMfHy86dGjh7nuuuvMu+++G5jfVIZdXFxspk2bZpKTk92yt912m/nqq6+Cnqt5GbZlS7f/+Mc/uhLquLg49/O2pPuhhx4yfr8/aNk///nPZsSIEYHl7HNt3LgxML+qqsrccMMNrkzcrtPJv8t+b6e11DZv3twFrxzQcVH2H+0QBLzEjl7syOXvf/+79qoAIY1zQEAns0UJ9mKhAE6PAAI6ybvvviu/+tWv3Od57HkiAKfHITigk9x5552yfv16ufXWW2Xx4sWumAFA6wggAIAKDsEBAFQQQAAAFV12kPrpp592x8Grqqpk+PDh8tRTT7mbbH0b+wnwyspK6dWrF5ccAYAwZD/dc/jwYfcB6uZXdm++YKdbs2aNu7+K/UDdnj17zN13322SkpJMdXX1t/5sRUVFqx+ko/EasA2wDbANSNi8BnZ/fjpdEkBXXXWVyc3NDTy2N9fq37+/yc/P/9af9fl86i8ajdeAbYBtgG1Azvg1sPvz0+n0c0D2Wlm7du2S7OzswDQ7BLOPS0pKTlneXm/L3vCrqdlhGwAg/H3blds7PYDsnR7thRab36fePrbng5qzF1hMTEwMNO6NAgCRQb0KLi8vT/x+f6CdfPdJAIB3dXoVnL0Glr3Hir2fysns47S0tFOWtxdttA0AEFk6fQQUGxvr7ldSVFQUVFptH2dlZXX2rwMAhKku+RzQ3LlzZerUqe4mW/azP0888YS766O9VhYAAF0WQLfccot88cUXMn/+fFd4YO9v/+abb55SmAAAiFwhdzFSW4ptq+EAAOHNFpYlJCSEbhUcACAyEUAAABUEEABABQEEAFBBAAEAVBBAAAAVBBAAQAUBBABQQQABAFQQQAAAFQQQAEAFAQQAUEEAAQBUEEAAABUEEABABQEEAFBBAAEACCAAQORgBAQAUEEAAQBUEEAAABUEEABABQEEAFBBAAEAVBBAAAAVBBAAQAUBBABQQQABAFQQQAAAFQQQAEAFAQQAUEEAAQBUEEAAABUEEABABQEEAFBBAAEAvpUxps3N7/d/+xMSQAAALYyAAAAqCCAAgAoCCACgggACAKiI1vm1AICzxVamhSJGQAAAFQQQAEAFAQQAUEEAAQDCI4C2bt0qN954o/Tv31+ioqLktddeO+Vk1/z586Vfv37SvXt3yc7OlrKyss5cZwBAJAbQ0aNHZfjw4fL000+3OH/RokWydOlSWbFihWzfvl169uwpOTk5UldX1xnrCwARxbTjGmyttZBlzoD98bVr1wYeNzY2mrS0NLN48eLANJ/PZ+Li4swrr7zSpuf0+/3ueWm8BmwDbANsA2LCUdN+3H49nU49B1ReXi5VVVXusFuTxMREGTVqlJSUlLT4M/X19VJbWxvUAADe16kBZMPHSk1NDZpuHzfNay4/P9+FVFNLT0/vzFUCAIQo9Sq4vLw8d++IplZRUaG9SgCAcAugtLQ097W6ujpoun3cNK+5uLg4SUhICGoAAO/r1AAaOHCgC5qioqLANHtOx1bDZWVldeavAoCw5JkKNo2LkR45ckT2798fVHjw4YcfSu/evSUjI0Nmz54tDz/8sAwaNMgF0rx589xnhiZNmtQZ6wsA8Ir2ltdt3ry5xdLIqVOnBkqx582bZ1JTU1359fjx401paWm7y/dovAZsA2wDXtwGIoG/jWXYUfYfCSH2kJ2thgMALwqxXW6X7sdtYdnpzuurV8EBACITN6QDgDMUCaOarsAICACgggACAKgggAAAKgggAIAKAggAoIIqOADAt7J3wO5sjIAAACoIIACACgIIAKCCAAIAqCCAAAAqqIIDgAi9tltUF1S2tQcjIACACgIIAKCCAAIAqCCAAAAqCCAAgAqq4ABELK9Vu0UpV7W1FyMgAIAKAggAoIIAAgCoIIAAACooQgDgKV4rLPBKwUFLGAEBAFQQQAAAFQQQAEAFAQQAUEEAAQBUUAUHICx5rdotygNVbe3FCAgAoIIAAgCoIIAAACoIIACACgIIAKCCKjgAIS1cq90isaqtvRgBAQBUEEAAABUEEABABQEEAFBBAAEAVFAFByAkhGu1m0XFW8cwAgIAqCCAAAAqCCAAgAoCCAAQ+gGUn58vV155pfTq1Uv69u0rkyZNktLS0qBl6urqJDc3V1JSUiQ+Pl6mTJki1dXVnb3eAIBICqDi4mIXLtu2bZONGzfK8ePH5frrr5ejR48GlpkzZ44UFhZKQUGBW76yslImT57cFesOIAwq29rawqXaraWGDjJnoKamxm41pri42D32+XwmJibGFBQUBJbZt2+fW6akpKRNz+n3+93yNF4DtoHw3wa8Rvv1lDBrdn9+Omd0Dsjv97uvvXv3dl937drlRkXZ2dmBZTIzMyUjI0NKSkpafI76+nqpra0NagAA7+twADU2Nsrs2bNlzJgxMnToUDetqqpKYmNjJSkpKWjZ1NRUN6+180qJiYmBlp6e3tFVAgBEQgDZc0Eff/yxrFmz5oxWIC8vz42kmlpFRcUZPR8AwMOX4rn33nvljTfekK1bt8r5558fmJ6WliYNDQ3i8/mCRkG2Cs7Oa0lcXJxrAMJXuBQRNEcBQRiNgOxGZsNn7dq1smnTJhk4cGDQ/JEjR0pMTIwUFRUFptky7YMHD0pWVlbnrTUAILJGQPaw2+rVq2XdunXus0BN53XsuZvu3bu7r3fddZfMnTvXFSYkJCTIzJkzXfiMHj26q/oAAAhHnVGCuHLlysAyx44dM/fcc49JTk42PXr0MDfddJM5dOhQm38HZdj6pZM0XoP2bgPhim1dVMuwo/73JoQMW4ZtR1IAwkeI7UbajHNAXcsWltkjYa3hWnAAABXckA6A50c6CE2MgAAAKgggAIAKAggAoIIAAgCoIIAAACqoggPg+Wo3Pu8TmhgBAQBUEEAAABUEEABABQEEAFBBAAEAVFAFB0S4cK14o7It/DECAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAgAoCCACgggACAKgggAAAKrgUDxAhwvWSO/AuRkAAABUEEABABQEEAFBBAAEAVBBAAAAVBBAAQAUBBABQQQABAFQQQAAAFQQQAEAFAQQAUMG14IAIERUV1eJ0rhEHLYyAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIABA6AfQ8uXLZdiwYZKQkOBaVlaWrF+/PjC/rq5OcnNzJSUlReLj42XKlClSXV3dFesNAIikADr//PNl4cKFsmvXLtm5c6eMGzdOJk6cKHv27HHz58yZI4WFhVJQUCDFxcVSWVkpkydP7qp1BwCEM3OGkpOTzfPPP298Pp+JiYkxBQUFgXn79u0z9leUlJS0+fn8fr/7GRqvAdvA2dkGwhXbh4T8a2D356fT4XNAJ06ckDVr1sjRo0fdoTg7Kjp+/LhkZ2cHlsnMzJSMjAwpKSlp9Xnq6+ultrY2qAEAvK/dAbR79253ficuLk6mT58ua9eulSFDhkhVVZXExsZKUlJS0PKpqaluXmvy8/MlMTEx0NLT0zvWEwCAtwPokksukQ8//FC2b98uM2bMkKlTp8revXs7vAJ5eXni9/sDraKiosPPBQDw8A3p7Cjnoosuct+PHDlSduzYIU8++aTccsst0tDQID6fL2gUZKvg0tLSWn0+O5KyDUDo3KiOm9QhLD4H1NjY6M7j2DCKiYmRoqKiwLzS0lI5ePCgO0cEAECHR0D2cNmECRNcYcHhw4dl9erVsmXLFtmwYYM7f3PXXXfJ3LlzpXfv3u5zQjNnznThM3r06Pb8GgBABGhXANXU1Mgdd9whhw4dcoFjP5Rqw+eHP/yhm79kyRLp1q2b+wCqHRXl5OTIsmXLumrdAQBhLOp/9fQhw5Zh23ADoCfEdgttPneF0GILy+zRsNZwLTgAQHhUwQHwvtZGF6E0MmptXRgZhQ9GQAAAFQQQAEAFAQQAUEEAAQBUEEAAABVUwQHwVHUcwgcjIACACgIIAKCCAAIAqCCAAAAqCCAAgAqq4AB4qjquPb+T68bpYgQEAFBBAAEAVBBAAAAVBBAAQAVFCAAiojgBoYcREABABQEEAFBBAAEAVBBAAAAVBBAAQAVVcAAiVmvVeFyi5+xgBAQAUEEAAQBUEEAAABUEEABABQEEAFBBFRyAs66lKrNQuj4c1XFnByMgAIAKAggAoIIAAgCoIIAAACoIIACACqrgAISEcLh7KtVxnYsREABABQEEAFBBAAEAVBBAAAAVFCEACGnhXJzQGaJa6b8XMAICAKgggAAAKgggAIAKAggAoIIAAgCEXwAtXLjQVWjMnj07MK2urk5yc3MlJSVF4uPjZcqUKVJdXd0Z6woAAXbf01JDBATQjh075JlnnpFhw4YFTZ8zZ44UFhZKQUGBFBcXS2VlpUyePLkz1hUA4CWmAw4fPmwGDRpkNm7caK699loza9YsN93n85mYmBhTUFAQWHbfvn22QN6UlJS06bn9fr9bnsZrwDbANtCRbcBrJIy3A7s/P50OjYDsIbYbbrhBsrOzg6bv2rVLjh8/HjQ9MzNTMjIypKSkpMXnqq+vl9ra2qAGAPC+dl8JYc2aNfL++++7Q3DNVVVVSWxsrCQlJQVNT01NdfNakp+fLw899FB7VwMAEObaNQKqqKiQWbNmycsvvyznnntup6xAXl6e+P3+QLO/AwDgfe0KIHuIraamRi6//HKJjo52zRYaLF261H1vRzoNDQ3i8/mCfs5WwaWlpbX4nHFxcZKQkBDUAKCjqIzz6CG48ePHy+7du4Om3Xnnne48zwMPPCDp6ekSExMjRUVFrvzaKi0tlYMHD0pWVlbnrjkAIHICqFevXjJ06NCgaT179nSf+Wmaftddd8ncuXOld+/ebjQzc+ZMFz6jR4/u3DUHAIS1Tr8dw5IlS6Rbt25uBGQr3HJycmTZsmWd/WsAAGEu6n915iHDlmEnJiZqrwYADwmx3Vy7RIXx1R1sYdnpzutzLTgAgAruiArA89o7iuiMEVM4j1zOFkZAAAAVBBAAQAUBBABQQQABAFQQQAAAFVTBAUAzVLCdHYyAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAQOgH0IMPPihRUVFBLTMzMzC/rq5OcnNzJSUlReLj42XKlClSXV3dFesNAIi0EdCll14qhw4dCrS33347MG/OnDlSWFgoBQUFUlxcLJWVlTJ58uTOXmcAgAdEt/sHoqMlLS3tlOl+v1/+9Kc/yerVq2XcuHFu2sqVK2Xw4MGybds2GT16dOesMQAgMkdAZWVl0r9/f7nwwgvltttuk4MHD7rpu3btkuPHj0t2dnZgWXt4LiMjQ0pKSlp9vvr6eqmtrQ1qAADva1cAjRo1SlatWiVvvvmmLF++XMrLy+Xqq6+Ww4cPS1VVlcTGxkpSUlLQz6Smprp5rcnPz5fExMRAS09P73hvAADePAQ3YcKEwPfDhg1zgTRgwAB59dVXpXv37h1agby8PJk7d27gsR0BEUIA4H1nVIZtRzsXX3yx7N+/350XamhoEJ/PF7SMrYJr6ZxRk7i4OElISAhqAADvO6MAOnLkiBw4cED69esnI0eOlJiYGCkqKgrMLy0tdeeIsrKyOmNdAQBeYtrh/vvvN1u2bDHl5eXmnXfeMdnZ2aZPnz6mpqbGzZ8+fbrJyMgwmzZtMjt37jRZWVmutYff7zd2tWi8BmwDbANsAxLWr4Hdn59Ou84B/ec//5Fbb71VvvrqKznvvPNk7NixrsTafm8tWbJEunXr5j6AaqvbcnJyZNmyZV2VnQCAMBZlU0hCiC1CsNVwAIDwZj8ferrz+lwLDgCgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAgAoCCACgggACAKgggAAAKgggAIAKAggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAADhEUCff/653H777ZKSkiLdu3eXyy67THbu3BmYb4yR+fPnS79+/dz87OxsKSsr6+z1BgBEUgB9/fXXMmbMGImJiZH169fL3r175bHHHpPk5OTAMosWLZKlS5fKihUrZPv27dKzZ0/JycmRurq6rlh/AEC4Mu3wwAMPmLFjx7Y6v7Gx0aSlpZnFixcHpvl8PhMXF2deeeWVNv0Ov99v7GrReA3YBtgG2AYkrF8Duz8/nXaNgF5//XW54oor5Oabb5a+ffvKiBEj5LnnngvMLy8vl6qqKnfYrUliYqKMGjVKSkpKWnzO+vp6qa2tDWoAAO9rVwB9+umnsnz5chk0aJBs2LBBZsyYIffdd5+88MILbr4NHys1NTXo5+zjpnnN5efnu5Bqaunp6R3vDQDAmwHU2Ngol19+uTz66KNu9DNt2jS5++673fmejsrLyxO/3x9oFRUVHX4uAIBHA8hWtg0ZMiRo2uDBg+XgwYPu+7S0NPe1uro6aBn7uGlec3FxcZKQkBDUAADe164AshVwpaWlQdM++eQTGTBggPt+4MCBLmiKiooC8+05HVsNl5WV1VnrDADwgnYUwZn33nvPREdHm0ceecSUlZWZl19+2fTo0cO89NJLgWUWLlxokpKSzLp168xHH31kJk6caAYOHGiOHTtGFVwIVKXQeA3YBtgGJESq4NoVQFZhYaEZOnSoK63OzMw0zz777Cml2PPmzTOpqalumfHjx5vS0tI2Pz9l2PxxsINkG2AbkIgIoCiXQiHEHrKz1XAAgPBmC8tOd16fa8EBAFQQQAAAFQQQAEAFAQQAUEEAAQBUEEAAABUEEABABQEEAFBBAAEAVBBAAAAVBBAAQAUBBABQEXIBFGLXRgUAdNH+POQC6PDhw9qrAAA4C/vzkLsdQ2Njo1RWVkqvXr3cyqenp0tFRYWnb9Vtb0FBP72B99JbeD87xsaK3X/3799funVrfZwTLSHGruz555/vvo+KinJfbfh4OYCa0E/v4L30Ft7P9mvLfd1C7hAcACAyEEAAABUhHUBxcXGyYMEC99XL6Kd38F56C+9n1wq5IgQAQGQI6REQAMC7CCAAgAoCCACgggACAKgggAAAKkI6gJ5++mm54IIL5Nxzz5VRo0bJe++9p71KZ2Tr1q1y4403ustT2Ks8vPbaa0HzbUHi/PnzpV+/ftK9e3fJzs6WsrIyCSf5+fly5ZVXuksp9e3bVyZNmiSlpaVBy9TV1Ulubq6kpKRIfHy8TJkyRaqrqyWcLF++XIYNGxb4hHxWVpasX7/eU31sbuHChW67nT17tqf6+eCDD7p+ndwyMzM91ccmn3/+udx+++2uL3Yfc9lll8nOnTvV9kEhG0B/+ctfZO7cue5zQO+//74MHz5ccnJypKamRsLV0aNHXT9ssLZk0aJFsnTpUlmxYoVs375devbs6fps/wDCRXFxsftj3bZtm2zcuFGOHz8u119/vet7kzlz5khhYaEUFBS45e21/yZPnizhxF4uyu6Qd+3a5f6Ax40bJxMnTpQ9e/Z4po8n27FjhzzzzDMudE/mlX5eeumlcujQoUB7++23PdfHr7/+WsaMGSMxMTHuP0t79+6Vxx57TJKTk/X2QSZEXXXVVSY3Nzfw+MSJE6Z///4mPz/feIF96deuXRt43NjYaNLS0szixYsD03w+n4mLizOvvPKKCVc1NTWur8XFxYE+xcTEmIKCgsAy+/btc8uUlJSYcJacnGyef/55z/Xx8OHDZtCgQWbjxo3m2muvNbNmzXLTvdLPBQsWmOHDh7c4zyt9tB544AEzduxY0xqNfVBIjoAaGhrc/yzt8O/ki5TaxyUlJeJF5eXlUlVVFdRnezE/e+gxnPvs9/vd1969e7uv9n21o6KT+2kPd2RkZIRtP0+cOCFr1qxxozx7KM5rfbQj2htuuCGoP5aX+mkPM9lD4xdeeKHcdtttcvDgQc/18fXXX5crrrhCbr75Znd4fMSIEfLcc8+p7oNCMoC+/PJL90edmpoaNN0+ti+QFzX1y0t9trfWsOcL7LB/6NChbprtS2xsrCQlJYV9P3fv3u3OCdjLtUyfPl3Wrl0rQ4YM8VQfbbDaQ+D23F5zXumn3cGuWrVK3nzzTXduz+6Ir776anc7Aa/00fr0009d/wYNGiQbNmyQGTNmyH333ScvvPCC2j4o5G7HAO+w/3P++OOPg46ne8kll1wiH374oRvl/fWvf5WpU6e6cwReYe/DNWvWLHcuzxYCedWECRMC39tzXDaQBgwYIK+++qo7Ee8VjY2NbgT06KOPusd2BGT/Pu35HrvtagjJEVCfPn3knHPOOaXSxD5OS0sTL2rql1f6fO+998obb7whmzdvDtzfybJ9sYdYfT5f2PfT/s/4oosukpEjR7oRgi0wefLJJz3TR3v4yRb9XH755RIdHe2aDVh7ktp+b/9n7IV+NmdHOxdffLHs37/fM++lZSvb7Aj9ZIMHDw4cbtTYB3UL1T9s+0ddVFQUlN72sT3G7kUDBw50b/LJfbZ3Y7SVKOHUZ1tfYcPHHo7atGmT69fJ7Ptqq3BO7qct07Z/BOHUz5bYbbS+vt4zfRw/frw7zGhHeU3N/g/aniNp+t4L/WzuyJEjcuDAAbfD9sp7adlD4c0/EvHJJ5+40Z7aPsiEqDVr1rjqi1WrVpm9e/eaadOmmaSkJFNVVWXCla0m+uCDD1yzL/3jjz/uvv/ss8/c/IULF7o+rlu3znz00Udm4sSJZuDAgebYsWMmXMyYMcMkJiaaLVu2mEOHDgXaN998E1hm+vTpJiMjw2zatMns3LnTZGVluRZOfvOb37jKvvLycvde2cdRUVHmrbfe8kwfW3JyFZxX+nn//fe77dW+l++8847Jzs42ffr0cRWcXumj9d5775no6GjzyCOPmLKyMvPyyy+bHj16mJdeesk0Odv7oJANIOupp55yb3xsbKwry962bZsJZ5s3b3bB07xNnTo1UAY5b948k5qa6sJ3/PjxprS01ISTlvpn28qVKwPL2I35nnvucWXL9g/gpptuciEVTn7xi1+YAQMGuG3zvPPOc+9VU/h4pY9tCSAv9POWW24x/fr1c+/ld77zHfd4//79nupjk8LCQjN06FC3f8nMzDTPPvusOdnZ3gdxPyAAgIqQPAcEAPA+AggAoIIAAgCoIIAAACoIIACACgIIAKCCAAIAqCCAAAAqCCAAAAEEAIgcjIAAAKLh/wCGgy2NhtZiEQAAAABJRU5ErkJggg==", "text/plain": [ - "
" + "{}" ] }, + "execution_count": 8, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" + } + ], + "source": [ + "segmentations" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'lucas@mail.com'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m my_segs \u001b[38;5;241m=\u001b[39m \u001b[43msegmentations\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mlucas@mail.com\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\n\u001b[1;32m 2\u001b[0m seg_mask_i \u001b[38;5;241m=\u001b[39m my_segs[\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m1\u001b[39m] \u001b[38;5;66;03m# second frame, first label ([1,0] is background)\u001b[39;00m\n\u001b[1;32m 3\u001b[0m label_name \u001b[38;5;241m=\u001b[39m D\u001b[38;5;241m.\u001b[39msegmentation_labels_set[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;66;03m# Note: segmentation_labels_set does not include background.\u001b[39;00m\n", + "\u001b[0;31mKeyError\u001b[0m: 'lucas@mail.com'" + ] } ], "source": [ diff --git a/pyproject.toml b/pyproject.toml index 34dfedef..51e90333 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "datamint" description = "A library for interacting with the Datamint API, designed for efficient data management, processing and Deep Learning workflows." -version = "2.0.0" +version = "2.0.1" dynamic = ["dependencies"] requires-python = ">=3.10" readme = "README.md"