diff --git a/cognee/api/v1/add/add.py b/cognee/api/v1/add/add.py index b1c8509657..7ad61a2e1f 100644 --- a/cognee/api/v1/add/add.py +++ b/cognee/api/v1/add/add.py @@ -1,7 +1,8 @@ from typing import Union, BinaryIO from cognee.modules.users.models import User from cognee.modules.users.methods import get_default_user -from cognee.modules.pipelines import run_tasks, Task +from cognee.modules.pipelines import run_tasks +from cognee.modules.pipelines.tasks import TaskConfig, Task from cognee.tasks.ingestion import ingest_data, resolve_data_directories from cognee.infrastructure.databases.relational import ( create_db_and_tables as create_relational_db_and_tables, @@ -36,7 +37,15 @@ async def add( if user is None: user = await get_default_user() - tasks = [Task(resolve_data_directories), Task(ingest_data, dataset_name, user)] + tasks = [ + Task(resolve_data_directories), + Task( + ingest_data, + dataset_name, + user, + task_config=TaskConfig(needs=[resolve_data_directories]), + ), + ] dataset_id = uuid5(NAMESPACE_OID, dataset_name) pipeline = run_tasks( diff --git a/cognee/api/v1/cognify/code_graph_pipeline.py b/cognee/api/v1/cognify/code_graph_pipeline.py index b6215b81be..6fdb0ca467 100644 --- a/cognee/api/v1/cognify/code_graph_pipeline.py +++ b/cognee/api/v1/cognify/code_graph_pipeline.py @@ -1,18 +1,19 @@ import os import pathlib import asyncio -from cognee.shared.logging_utils import get_logger from uuid import NAMESPACE_OID, uuid5 +from cognee.shared.logging_utils import get_logger from cognee.api.v1.search import SearchType, search from cognee.api.v1.visualize.visualize import visualize_graph from cognee.base_config import get_base_config from cognee.modules.cognify.config import get_cognify_config from cognee.modules.pipelines import run_tasks -from cognee.modules.pipelines.tasks.Task import Task +from cognee.modules.pipelines.tasks.Task import Task, TaskConfig +from cognee.modules.pipelines.operations.needs import merge_needs from cognee.modules.users.methods import get_default_user from cognee.shared.data_models import KnowledgeGraph, MonitoringTool -from cognee.shared.utils import render_graph + from cognee.tasks.documents import classify_documents, extract_chunks_from_documents from cognee.tasks.graph import extract_graph_from_data from cognee.tasks.ingestion import ingest_data @@ -45,25 +46,46 @@ async def run_code_graph_pipeline(repo_path, include_docs=False): detailed_extraction = True tasks = [ - Task(get_repo_file_dependencies, detailed_extraction=detailed_extraction), - # Task(summarize_code, task_config={"batch_size": 500}), # This task takes a long time to complete - Task(add_data_points, task_config={"batch_size": 500}), + Task( + get_repo_file_dependencies, + detailed_extraction=detailed_extraction, + task_config=TaskConfig(output_batch_size=500), + ), + # Task(summarize_code, task_config=TaskConfig(output_batch_size=500)), # This task takes a long time to complete + Task(add_data_points, task_config=TaskConfig(needs=[get_repo_file_dependencies])), ] if include_docs: # This tasks take a long time to complete non_code_tasks = [ - Task(get_non_py_files, task_config={"batch_size": 50}), - Task(ingest_data, dataset_name="repo_docs", user=user), - Task(classify_documents), - Task(extract_chunks_from_documents, max_chunk_size=get_max_chunk_tokens()), + Task(get_non_py_files), + Task( + ingest_data, + dataset_name="repo_docs", + user=user, + task_config=TaskConfig(needs=[get_non_py_files]), + ), + Task(classify_documents, task_config=TaskConfig(needs=[ingest_data])), Task( - extract_graph_from_data, graph_model=KnowledgeGraph, task_config={"batch_size": 50} + extract_chunks_from_documents, + max_chunk_size=get_max_chunk_tokens(), + task_config=TaskConfig(needs=[classify_documents], output_batch_size=10), + ), + Task( + extract_graph_from_data, + graph_model=KnowledgeGraph, + task_config=TaskConfig(needs=[extract_chunks_from_documents]), ), Task( summarize_text, summarization_model=cognee_config.summarization_model, - task_config={"batch_size": 50}, + task_config=TaskConfig(needs=[extract_chunks_from_documents]), + ), + Task( + add_data_points, + task_config=TaskConfig( + needs=[merge_needs(summarize_text, extract_graph_from_data)] + ), ), ] @@ -71,11 +93,11 @@ async def run_code_graph_pipeline(repo_path, include_docs=False): if include_docs: non_code_pipeline_run = run_tasks(non_code_tasks, dataset_id, repo_path, "cognify_pipeline") - async for run_status in non_code_pipeline_run: - yield run_status + async for run_info in non_code_pipeline_run: + yield run_info - async for run_status in run_tasks(tasks, dataset_id, repo_path, "cognify_code_pipeline"): - yield run_status + async for run_info in run_tasks(tasks, dataset_id, repo_path, "cognify_code_pipeline"): + yield run_info if __name__ == "__main__": diff --git a/cognee/api/v1/cognify/cognify.py b/cognee/api/v1/cognify/cognify.py index a5912fecdb..9e15307acc 100644 --- a/cognee/api/v1/cognify/cognify.py +++ b/cognee/api/v1/cognify/cognify.py @@ -10,10 +10,10 @@ from cognee.modules.data.methods import get_datasets, get_datasets_by_name from cognee.modules.data.methods.get_dataset_data import get_dataset_data from cognee.modules.data.models import Data, Dataset -from cognee.modules.pipelines import run_tasks +from cognee.modules.pipelines import run_tasks, merge_needs +from cognee.modules.pipelines.tasks import Task, TaskConfig from cognee.modules.pipelines.models import PipelineRunStatus from cognee.modules.pipelines.operations.get_pipeline_status import get_pipeline_status -from cognee.modules.pipelines.tasks.Task import Task from cognee.modules.users.methods import get_default_user from cognee.modules.users.models import User from cognee.shared.data_models import KnowledgeGraph @@ -92,7 +92,9 @@ async def run_cognify_pipeline(dataset: Dataset, user: User, tasks: list[Task]): if not isinstance(task, Task): raise ValueError(f"Task {task} is not an instance of Task") - pipeline_run = run_tasks(tasks, dataset.id, data_documents, "cognify_pipeline") + pipeline_run = run_tasks( + tasks, dataset.id, data_documents, "cognify_pipeline", context={"user": user} + ) pipeline_run_status = None async for run_status in pipeline_run: @@ -121,24 +123,33 @@ async def get_default_tasks( # TODO: Find out a better way to do this (Boris's default_tasks = [ Task(classify_documents), - Task(check_permissions_on_documents, user=user, permissions=["write"]), Task( + check_permissions_on_documents, + user=user, + permissions=["write"], + task_config=TaskConfig(needs=[classify_documents]), + ), + Task( # Extract text chunks based on the document type. extract_chunks_from_documents, max_chunk_size=chunk_size or get_max_chunk_tokens(), chunker=chunker, - ), # Extract text chunks based on the document type. - Task( + task_config=TaskConfig(needs=[check_permissions_on_documents], output_batch_size=10), + ), + Task( # Generate knowledge graphs from the document chunks. extract_graph_from_data, graph_model=graph_model, ontology_adapter=ontology_adapter, - task_config={"batch_size": 10}, - ), # Generate knowledge graphs from the document chunks. + task_config=TaskConfig(needs=[extract_chunks_from_documents]), + ), Task( summarize_text, summarization_model=cognee_config.summarization_model, - task_config={"batch_size": 10}, + task_config=TaskConfig(needs=[extract_chunks_from_documents]), + ), + Task( + add_data_points, + task_config=TaskConfig(needs=[merge_needs(summarize_text, extract_graph_from_data)]), ), - Task(add_data_points, task_config={"batch_size": 10}), ] return default_tasks diff --git a/cognee/eval_framework/corpus_builder/task_getters/get_cascade_graph_tasks.py b/cognee/eval_framework/corpus_builder/task_getters/get_cascade_graph_tasks.py index ca77facef6..070b07ae8b 100644 --- a/cognee/eval_framework/corpus_builder/task_getters/get_cascade_graph_tasks.py +++ b/cognee/eval_framework/corpus_builder/task_getters/get_cascade_graph_tasks.py @@ -2,11 +2,11 @@ from pydantic import BaseModel from cognee.modules.cognify.config import get_cognify_config -from cognee.modules.pipelines.tasks.Task import Task +from cognee.modules.pipelines.operations.needs import merge_needs +from cognee.modules.pipelines.tasks import Task, TaskConfig from cognee.modules.users.methods import get_default_user from cognee.modules.users.models import User from cognee.shared.data_models import KnowledgeGraph -from cognee.shared.utils import send_telemetry from cognee.tasks.documents import ( check_permissions_on_documents, classify_documents, @@ -27,25 +27,32 @@ async def get_cascade_graph_tasks( if user is None: user = await get_default_user() - try: - cognee_config = get_cognify_config() - default_tasks = [ - Task(classify_documents), - Task(check_permissions_on_documents, user=user, permissions=["write"]), - Task( - extract_chunks_from_documents, max_chunk_tokens=get_max_chunk_tokens() - ), # Extract text chunks based on the document type. - Task( - extract_graph_from_data, task_config={"batch_size": 10} - ), # Generate knowledge graphs using cascade extraction - Task( - summarize_text, - summarization_model=cognee_config.summarization_model, - task_config={"batch_size": 10}, - ), - Task(add_data_points, task_config={"batch_size": 10}), - ] - except Exception as error: - send_telemetry("cognee.cognify DEFAULT TASKS CREATION ERRORED", user.id) - raise error + cognee_config = get_cognify_config() + default_tasks = [ + Task(classify_documents), + Task( + check_permissions_on_documents, + user=user, + permissions=["write"], + task_config=TaskConfig(needs=[classify_documents]), + ), + Task( # Extract text chunks based on the document type. + extract_chunks_from_documents, + max_chunk_tokens=get_max_chunk_tokens(), + task_config=TaskConfig(needs=[check_permissions_on_documents], output_batch_size=50), + ), + Task( + extract_graph_from_data, + task_config=TaskConfig(needs=[extract_chunks_from_documents]), + ), # Generate knowledge graphs using cascade extraction + Task( + summarize_text, + summarization_model=cognee_config.summarization_model, + task_config=TaskConfig(needs=[extract_chunks_from_documents]), + ), + Task( + add_data_points, + task_config=TaskConfig(needs=[merge_needs(summarize_text, extract_graph_from_data)]), + ), + ] return default_tasks diff --git a/cognee/modules/pipelines/__init__.py b/cognee/modules/pipelines/__init__.py index 5005c25f03..102d625eba 100644 --- a/cognee/modules/pipelines/__init__.py +++ b/cognee/modules/pipelines/__init__.py @@ -1,3 +1,3 @@ from .tasks.Task import Task from .operations.run_tasks import run_tasks -from .operations.run_parallel import run_tasks_parallel +from .operations.needs import merge_needs, MergeNeeds diff --git a/cognee/modules/pipelines/exceptions.py b/cognee/modules/pipelines/exceptions.py new file mode 100644 index 0000000000..5c2993ed48 --- /dev/null +++ b/cognee/modules/pipelines/exceptions.py @@ -0,0 +1,18 @@ +class WrongTaskOrderException(Exception): + message: str + + def __init__(self, message: str): + self.message = message + super().__init__(message) + + +class TaskExecutionException(Exception): + type: str + message: str + traceback: str + + def __init__(self, type: str, message: str, traceback: str): + self.message = message + self.type = type + self.traceback = traceback + super().__init__(message) diff --git a/cognee/modules/pipelines/operations/needs.py b/cognee/modules/pipelines/operations/needs.py new file mode 100644 index 0000000000..778c360bc1 --- /dev/null +++ b/cognee/modules/pipelines/operations/needs.py @@ -0,0 +1,60 @@ +from typing import Any +from pydantic import BaseModel + +from ..tasks import Task + + +class MergeNeeds(BaseModel): + needs: list[Any] + + +def merge_needs(*args): + return MergeNeeds(needs=args) + + +def get_task_needs(tasks: list[Task]): + input_tasks = [] + + for task in tasks: + if isinstance(task, MergeNeeds): + input_tasks.extend(task.needs) + else: + input_tasks.append(task) + + return input_tasks + + +def get_need_task_results(results, task: Task): + input_results = [] + + for task_dependency in task.task_config.needs: + if isinstance(task_dependency, MergeNeeds): + task_results = [] + max_result_length = 0 + + for task_need in task_dependency.needs: + result = results[task_need] + task_results.append(result) + + if isinstance(result, tuple): + max_result_length = max(max_result_length, len(result)) + + final_results = [[] for _ in range(max_result_length)] + + for result in task_results: + if isinstance(result, tuple): + for i, value in enumerate(result): + final_results[i].extend(value) + else: + final_results[0].extend(result) + + input_results.extend(final_results) + else: + result = results[task_dependency] + + if isinstance(result, tuple): + input_results.extend(result) + else: + input_results.append(result) + + return input_results diff --git a/cognee/modules/pipelines/operations/run_tasks.py b/cognee/modules/pipelines/operations/run_tasks.py index 242f74320b..673514795e 100644 --- a/cognee/modules/pipelines/operations/run_tasks.py +++ b/cognee/modules/pipelines/operations/run_tasks.py @@ -1,227 +1,26 @@ -import inspect import json -from cognee.shared.logging_utils import get_logger -from uuid import UUID, uuid4 - from typing import Any +from uuid import UUID, NAMESPACE_OID, uuid4, uuid5 + from cognee.modules.pipelines.operations import ( log_pipeline_run_start, log_pipeline_run_complete, log_pipeline_run_error, ) -from cognee.modules.settings import get_current_settings from cognee.modules.users.methods import get_default_user -from cognee.modules.users.models import User +from cognee.modules.settings import get_current_settings from cognee.shared.utils import send_telemetry -from uuid import uuid5, NAMESPACE_OID +from cognee.shared.logging_utils import get_logger -from ..tasks.Task import Task +from ..tasks.Task import Task, TaskExecutionCompleted, TaskExecutionErrored, TaskExecutionStarted +from .run_tasks_base import run_tasks_base logger = get_logger("run_tasks(tasks: [Task], data)") -async def run_tasks_base(tasks: list[Task], data=None, user: User = None): - if len(tasks) == 0: - yield data - return - - args = [data] if data is not None else [] - - running_task = tasks[0] - leftover_tasks = tasks[1:] - next_task = leftover_tasks[0] if len(leftover_tasks) > 0 else None - next_task_batch_size = next_task.task_config["batch_size"] if next_task else 1 - - if inspect.isasyncgenfunction(running_task.executable): - logger.info("Async generator task started: `%s`", running_task.executable.__name__) - send_telemetry( - "Async Generator Task Started", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - try: - results = [] - - async_iterator = running_task.run(*args) - - async for partial_result in async_iterator: - results.append(partial_result) - - if len(results) == next_task_batch_size: - async for result in run_tasks_base( - leftover_tasks, - results[0] if next_task_batch_size == 1 else results, - user=user, - ): - yield result - - results = [] - - if len(results) > 0: - async for result in run_tasks_base(leftover_tasks, results, user): - yield result - - results = [] - - logger.info("Async generator task completed: `%s`", running_task.executable.__name__) - send_telemetry( - "Async Generator Task Completed", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - except Exception as error: - logger.error( - "Async generator task errored: `%s`\n%s\n", - running_task.executable.__name__, - str(error), - exc_info=True, - ) - send_telemetry( - "Async Generator Task Errored", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - raise error - - elif inspect.isgeneratorfunction(running_task.executable): - logger.info("Generator task started: `%s`", running_task.executable.__name__) - send_telemetry( - "Generator Task Started", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - try: - results = [] - - for partial_result in running_task.run(*args): - results.append(partial_result) - - if len(results) == next_task_batch_size: - async for result in run_tasks_base( - leftover_tasks, results[0] if next_task_batch_size == 1 else results, user - ): - yield result - - results = [] - - if len(results) > 0: - async for result in run_tasks_base(leftover_tasks, results, user): - yield result - - results = [] - - logger.info("Generator task completed: `%s`", running_task.executable.__name__) - send_telemetry( - "Generator Task Completed", - user_id=user.id, - additional_properties={ - "task_name": running_task.executable.__name__, - }, - ) - except Exception as error: - logger.error( - "Generator task errored: `%s`\n%s\n", - running_task.executable.__name__, - str(error), - exc_info=True, - ) - send_telemetry( - "Generator Task Errored", - user_id=user.id, - additional_properties={ - "task_name": running_task.executable.__name__, - }, - ) - raise error - - elif inspect.iscoroutinefunction(running_task.executable): - logger.info("Coroutine task started: `%s`", running_task.executable.__name__) - send_telemetry( - "Coroutine Task Started", - user_id=user.id, - additional_properties={ - "task_name": running_task.executable.__name__, - }, - ) - try: - task_result = await running_task.run(*args) - - async for result in run_tasks_base(leftover_tasks, task_result, user): - yield result - - logger.info("Coroutine task completed: `%s`", running_task.executable.__name__) - send_telemetry( - "Coroutine Task Completed", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - except Exception as error: - logger.error( - "Coroutine task errored: `%s`\n%s\n", - running_task.executable.__name__, - str(error), - exc_info=True, - ) - send_telemetry( - "Coroutine Task Errored", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - raise error - - elif inspect.isfunction(running_task.executable): - logger.info("Function task started: `%s`", running_task.executable.__name__) - send_telemetry( - "Function Task Started", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - try: - task_result = running_task.run(*args) - - async for result in run_tasks_base(leftover_tasks, task_result, user): - yield result - - logger.info("Function task completed: `%s`", running_task.executable.__name__) - send_telemetry( - "Function Task Completed", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - except Exception as error: - logger.error( - "Function task errored: `%s`\n%s\n", - running_task.executable.__name__, - str(error), - exc_info=True, - ) - send_telemetry( - "Function Task Errored", - user.id, - { - "task_name": running_task.executable.__name__, - }, - ) - raise error - - -async def run_tasks_with_telemetry(tasks: list[Task], data, pipeline_name: str): +async def run_tasks_with_telemetry( + tasks: list[Task], data, pipeline_name: str, context: dict = None +): config = get_current_settings() logger.debug("\nRunning pipeline with configuration:\n%s\n", json.dumps(config, indent=1)) @@ -239,8 +38,45 @@ async def run_tasks_with_telemetry(tasks: list[Task], data, pipeline_name: str): | config, ) - async for result in run_tasks_base(tasks, data, user): - yield result + async for run_task_info in run_tasks_base(tasks, data, context): + if isinstance(run_task_info, TaskExecutionStarted): + send_telemetry( + "Task Run Started", + user.id, + additional_properties={ + "task_name": run_task_info.task.__name__, + } + | config, + ) + + if isinstance(run_task_info, TaskExecutionCompleted): + send_telemetry( + "Task Run Completed", + user.id, + additional_properties={ + "task_name": run_task_info.task.__name__, + } + | config, + ) + + if isinstance(run_task_info, TaskExecutionErrored): + send_telemetry( + "Task Run Errored", + user.id, + additional_properties={ + "task_name": run_task_info.task.__name__, + "error": str(run_task_info.error), + } + | config, + ) + logger.error( + "Task run errored: `%s`\n%s\n", + run_task_info.task.__name__, + str(run_task_info.error), + exc_info=True, + ) + + yield run_task_info logger.info("Pipeline run completed: `%s`", pipeline_name) send_telemetry( @@ -271,19 +107,22 @@ async def run_tasks_with_telemetry(tasks: list[Task], data, pipeline_name: str): async def run_tasks( tasks: list[Task], - dataset_id: UUID = uuid4(), + dataset_id: UUID = None, data: Any = None, pipeline_name: str = "unknown_pipeline", + context: dict = None, ): + dataset_id = dataset_id or uuid4() pipeline_id = uuid5(NAMESPACE_OID, pipeline_name) pipeline_run = await log_pipeline_run_start(pipeline_id, pipeline_name, dataset_id, data) yield pipeline_run + pipeline_run_id = pipeline_run.pipeline_run_id try: - async for _ in run_tasks_with_telemetry(tasks, data, pipeline_id): + async for _ in run_tasks_with_telemetry(tasks, data, pipeline_id, context): pass yield await log_pipeline_run_complete( diff --git a/cognee/modules/pipelines/operations/run_tasks_base.py b/cognee/modules/pipelines/operations/run_tasks_base.py new file mode 100644 index 0000000000..04c30a1277 --- /dev/null +++ b/cognee/modules/pipelines/operations/run_tasks_base.py @@ -0,0 +1,63 @@ +from collections import deque + +from cognee.shared.logging_utils import get_logger + +from .needs import get_need_task_results, get_task_needs +from ..tasks.Task import Task, TaskExecutionCompleted, TaskExecutionInfo +from ..exceptions import WrongTaskOrderException + +logger = get_logger("run_tasks_base(tasks: list[Task], data)") + + +async def run_tasks_base(tasks: list[Task], data=None, context=None): + if len(tasks) == 0: + return + + pipeline_input = [data] if data is not None else [] + + """Run tasks in dependency order and return results.""" + task_graph = {} # Map task to its dependencies + dependents = {} # Reverse dependencies (who depends on whom) + results = {} + number_of_executed_tasks = 0 + + tasks_map = {task.executable: task for task in tasks} # Map task executable to task object + + # Build task dependency graph + for task in tasks: + task_graph[task.executable] = get_task_needs(task.task_config.needs) + for dependent_task in task_graph[task.executable]: + dependents.setdefault(dependent_task, []).append(task.executable) + + # Find tasks without dependencies + ready_queue = deque([task for task in tasks if not task_graph[task.executable]]) + + # Execute tasks in order + while ready_queue: + task = ready_queue.popleft() + task_inputs = ( + get_need_task_results(results, task) if task.task_config.needs else pipeline_input + ) + + async for task_execution_info in task.run(*task_inputs): # Run task and store result + if isinstance(task_execution_info, TaskExecutionInfo): # Update result as it comes + results[task.executable] = task_execution_info.result + + if isinstance(task_execution_info, TaskExecutionCompleted): + if task.executable not in results: # If result not already set, set it + results[task.executable] = task_execution_info.result + + number_of_executed_tasks += 1 + + yield task_execution_info + + # Process tasks depending on this task + for dependent_task in dependents.get(task.executable, []): + task_graph[dependent_task].remove(task.executable) # Mark dependency as resolved + if not task_graph[dependent_task]: # If all dependencies resolved, add to queue + ready_queue.append(tasks_map[dependent_task]) + + if number_of_executed_tasks != len(tasks): + raise WrongTaskOrderException( + f"{number_of_executed_tasks}/{len(tasks)} tasks executed. You likely have some disconnected tasks or circular dependency." + ) diff --git a/cognee/modules/pipelines/tasks/Task.py b/cognee/modules/pipelines/tasks/Task.py index 753152d0dd..8b12f2ac82 100644 --- a/cognee/modules/pipelines/tasks/Task.py +++ b/cognee/modules/pipelines/tasks/Task.py @@ -1,30 +1,136 @@ -from typing import Union, Callable, Any, Coroutine, Generator, AsyncGenerator +import inspect +from typing import Callable, Any, Union + +from pydantic import BaseModel + +from ..tasks.types import TaskExecutable +from ..operations.needs import MergeNeeds +from ..exceptions import TaskExecutionException + + +class TaskExecutionStarted(BaseModel): + task: Callable + + +class TaskExecutionCompleted(BaseModel): + task: Callable + result: Any = None + + +class TaskExecutionErrored(BaseModel): + task: TaskExecutable + error: TaskExecutionException + + model_config = {"arbitrary_types_allowed": True} + + +class TaskExecutionInfo(BaseModel): + result: Any = None + task: Callable + + +class TaskConfig(BaseModel): + output_batch_size: int = 1 + needs: list[Union[Callable, MergeNeeds]] = [] class Task: - executable: Union[ - Callable[..., Any], - Callable[..., Coroutine[Any, Any, Any]], - Generator[Any, Any, Any], - AsyncGenerator[Any, Any], - ] - task_config: dict[str, Any] = { - "batch_size": 1, - } + task_config: TaskConfig default_params: dict[str, Any] = {} - def __init__(self, executable, *args, task_config=None, **kwargs): + def __init__(self, executable, *args, task_config: TaskConfig = None, **kwargs): self.executable = executable self.default_params = {"args": args, "kwargs": kwargs} + self.result = None - if task_config is not None: - self.task_config = task_config - - if "batch_size" not in task_config: - self.task_config["batch_size"] = 1 + self.task_config = task_config or TaskConfig() - def run(self, *args, **kwargs): + async def run(self, *args, **kwargs): combined_args = args + self.default_params["args"] - combined_kwargs = {**self.default_params["kwargs"], **kwargs} + combined_kwargs = { + **self.default_params["kwargs"], + **kwargs, + } + + yield TaskExecutionStarted( + task=self.executable, + ) + + try: + if inspect.iscoroutinefunction(self.executable): # Async function + end_result = await self.executable(*combined_args, **combined_kwargs) + + elif inspect.isgeneratorfunction(self.executable): # Generator + task_result = [] + end_result = [] + + for value in self.executable(*combined_args, **combined_kwargs): + task_result.append(value) # Store the last yielded value + end_result.append(value) + + if self.task_config.output_batch_size == 1: + yield TaskExecutionInfo( + result=value, + task=self.executable, + ) + elif self.task_config.output_batch_size == len(task_result): + yield TaskExecutionInfo( + result=task_result, + task=self.executable, + ) + task_result = [] # Reset for the next batch + + # Yield any remaining items in the final batch if it's not empty + if task_result and self.task_config.output_batch_size > 1: + yield TaskExecutionInfo( + result=task_result, + task=self.executable, + ) + + elif inspect.isasyncgenfunction(self.executable): # Async Generator + task_result = [] + end_result = [] + + async for value in self.executable(*combined_args, **combined_kwargs): + task_result.append(value) # Store the last yielded value + end_result.append(value) + + if self.task_config.output_batch_size == 1: + yield TaskExecutionInfo( + result=value, + task=self.executable, + ) + elif self.task_config.output_batch_size == len(task_result): + yield TaskExecutionInfo( + result=task_result, + task=self.executable, + ) + task_result = [] # Reset for the next batch + + # Yield any remaining items in the final batch if it's not empty + if task_result and self.task_config.output_batch_size > 1: + yield TaskExecutionInfo( + result=task_result, + task=self.executable, + ) + else: # Regular function + end_result = self.executable(*combined_args, **combined_kwargs) + + yield TaskExecutionCompleted( + task=self.executable, + result=end_result, + ) + + except Exception as error: + import traceback + + error_details = TaskExecutionException( + type=type(error).__name__, + message=str(error), + traceback=traceback.format_exc(), + ) - return self.executable(*combined_args, **combined_kwargs) + yield TaskExecutionErrored( + task=self.executable, + error=error_details, + ) diff --git a/cognee/modules/pipelines/tasks/__init__.py b/cognee/modules/pipelines/tasks/__init__.py new file mode 100644 index 0000000000..7861ba72e0 --- /dev/null +++ b/cognee/modules/pipelines/tasks/__init__.py @@ -0,0 +1,8 @@ +from .Task import ( + Task, + TaskConfig, + TaskExecutionInfo, + TaskExecutionCompleted, + TaskExecutionStarted, + TaskExecutionErrored, +) diff --git a/cognee/modules/pipelines/tasks/types.py b/cognee/modules/pipelines/tasks/types.py new file mode 100644 index 0000000000..889a9fe5e0 --- /dev/null +++ b/cognee/modules/pipelines/tasks/types.py @@ -0,0 +1,9 @@ +from typing import Any, AsyncGenerator, Callable, Coroutine, Generator, Union + + +TaskExecutable = Union[ + Callable[..., Any], + Callable[..., Coroutine[Any, Any, Any]], + AsyncGenerator[Any, Any], + Generator[Any, Any, Any], +] diff --git a/cognee/tasks/graph/extract_graph_from_data.py b/cognee/tasks/graph/extract_graph_from_data.py index 6d9ba3583f..48860031fa 100644 --- a/cognee/tasks/graph/extract_graph_from_data.py +++ b/cognee/tasks/graph/extract_graph_from_data.py @@ -12,7 +12,6 @@ retrieve_existing_edges, ) from cognee.shared.data_models import KnowledgeGraph -from cognee.tasks.storage import add_data_points async def integrate_chunk_graphs( @@ -28,7 +27,6 @@ async def integrate_chunk_graphs( for chunk_index, chunk_graph in enumerate(chunk_graphs): data_chunks[chunk_index].contains = chunk_graph - await add_data_points(chunk_graphs) return data_chunks existing_edges_map = await retrieve_existing_edges( @@ -41,13 +39,7 @@ async def integrate_chunk_graphs( data_chunks, chunk_graphs, ontology_adapter, existing_edges_map ) - if len(graph_nodes) > 0: - await add_data_points(graph_nodes) - - if len(graph_edges) > 0: - await graph_engine.add_edges(graph_edges) - - return data_chunks + return graph_nodes, graph_edges async def extract_graph_from_data( diff --git a/cognee/tasks/ingestion/resolve_data_directories.py b/cognee/tasks/ingestion/resolve_data_directories.py index e549688d8d..5434b4f89b 100644 --- a/cognee/tasks/ingestion/resolve_data_directories.py +++ b/cognee/tasks/ingestion/resolve_data_directories.py @@ -41,4 +41,5 @@ async def resolve_data_directories( resolved_data.append(item) else: # If it's not a string add it directly resolved_data.append(item) + return resolved_data diff --git a/cognee/tasks/storage/add_data_points.py b/cognee/tasks/storage/add_data_points.py index c5ab8e7020..01e4852df9 100644 --- a/cognee/tasks/storage/add_data_points.py +++ b/cognee/tasks/storage/add_data_points.py @@ -6,7 +6,8 @@ from .index_graph_edges import index_graph_edges -async def add_data_points(data_points: list[DataPoint]): +async def add_data_points(data_points: list[DataPoint], data_point_connections: list = None): + data_point_connections = data_point_connections or [] nodes = [] edges = [] @@ -38,6 +39,8 @@ async def add_data_points(data_points: list[DataPoint]): await graph_engine.add_nodes(nodes) await graph_engine.add_edges(edges) + if data_point_connections: + await graph_engine.add_edges(data_point_connections) # This step has to happen after adding nodes and edges because we query the graph. await index_graph_edges() diff --git a/cognee/tasks/summarization/summarize_text.py b/cognee/tasks/summarization/summarize_text.py index df7ac67403..1579ffdad9 100644 --- a/cognee/tasks/summarization/summarize_text.py +++ b/cognee/tasks/summarization/summarize_text.py @@ -2,12 +2,12 @@ from typing import Type from uuid import uuid5 from pydantic import BaseModel +from cognee.infrastructure.engine import DataPoint from cognee.modules.data.extraction.extract_summary import extract_summary -from cognee.modules.chunking.models.DocumentChunk import DocumentChunk from .models import TextSummary -async def summarize_text(data_chunks: list[DocumentChunk], summarization_model: Type[BaseModel]): +async def summarize_text(data_chunks: list[DataPoint], summarization_model: Type[BaseModel]): if len(data_chunks) == 0: return data_chunks diff --git a/cognee/tests/integration/run_toy_tasks/run_task_from_queue_test.py b/cognee/tests/integration/run_toy_tasks/run_task_from_queue_test.py deleted file mode 100644 index 0aa60f3b26..0000000000 --- a/cognee/tests/integration/run_toy_tasks/run_task_from_queue_test.py +++ /dev/null @@ -1,66 +0,0 @@ -import asyncio -from queue import Queue - -import cognee -from cognee.modules.pipelines.operations.run_tasks import run_tasks_base -from cognee.modules.pipelines.tasks.Task import Task -from cognee.modules.users.methods import get_default_user -from cognee.infrastructure.databases.relational import create_db_and_tables - - -async def pipeline(data_queue): - await cognee.prune.prune_data() - await cognee.prune.prune_system(metadata=True) - - async def queue_consumer(): - while not data_queue.is_closed: - if not data_queue.empty(): - yield data_queue.get() - else: - await asyncio.sleep(0.3) - - async def add_one(num): - yield num + 1 - - async def multiply_by_two(num): - yield num * 2 - - await create_db_and_tables() - user = await get_default_user() - - tasks_run = run_tasks_base( - [ - Task(queue_consumer), - Task(add_one), - Task(multiply_by_two), - ], - data=None, - user=user, - ) - - results = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] - index = 0 - async for result in tasks_run: - assert result == results[index], f"at {index = }: {result = } != {results[index] = }" - index += 1 - - -async def run_queue(): - data_queue = Queue() - data_queue.is_closed = False - - async def queue_producer(): - for i in range(0, 10): - data_queue.put(i) - await asyncio.sleep(0.1) - data_queue.is_closed = True - - await asyncio.gather(pipeline(data_queue), queue_producer()) - - -def test_run_tasks_from_queue(): - asyncio.run(run_queue()) - - -if __name__ == "__main__": - asyncio.run(run_queue()) diff --git a/cognee/tests/integration/run_toy_tasks/run_tasks_broadcast_test.py b/cognee/tests/integration/run_toy_tasks/run_tasks_broadcast_test.py new file mode 100644 index 0000000000..10c361e70a --- /dev/null +++ b/cognee/tests/integration/run_toy_tasks/run_tasks_broadcast_test.py @@ -0,0 +1,41 @@ +import asyncio + +from cognee.modules.pipelines.tasks import Task, TaskConfig, TaskExecutionInfo +from cognee.modules.pipelines.operations.run_tasks_base import run_tasks_base + + +async def run_and_check_tasks(): + def number_generator(num, context=None): + for i in range(num): + yield i + 1 + + async def add_one(num, context=None): + yield num + 1 + + async def multiply_by_two(num, context=None): + yield num * 2 + + index = 0 + expected_results = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 20] + + async for task_run_info in run_tasks_base( + [ + Task(number_generator), + Task(add_one, task_config=TaskConfig(needs=[number_generator])), + Task(multiply_by_two, task_config=TaskConfig(needs=[number_generator])), + ], + data=10, + ): + if isinstance(task_run_info, TaskExecutionInfo): + assert task_run_info.result == expected_results[index], ( + f"at {index = }: {task_run_info.result = } != {expected_results[index] = }" + ) + index += 1 + + +def test_run_tasks(): + asyncio.run(run_and_check_tasks()) + + +if __name__ == "__main__": + test_run_tasks() diff --git a/cognee/tests/integration/run_toy_tasks/run_tasks_circular_test.py b/cognee/tests/integration/run_toy_tasks/run_tasks_circular_test.py new file mode 100644 index 0000000000..d7f54e21a6 --- /dev/null +++ b/cognee/tests/integration/run_toy_tasks/run_tasks_circular_test.py @@ -0,0 +1,47 @@ +import pytest +import asyncio + +from cognee.modules.pipelines.tasks import Task, TaskConfig, TaskExecutionInfo +from cognee.modules.pipelines.exceptions import WrongTaskOrderException +from cognee.modules.pipelines.operations.run_tasks_base import run_tasks_base + + +async def run_and_check_tasks(): + def number_generator(num, context=None): + for i in range(num): + yield i + 1 + + async def add_one(num, context=None): + yield num + 1 + + async def multiply_by_two(num, context=None): + yield num * 2 + + index = 0 + expected_results = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 22] + + with pytest.raises( + WrongTaskOrderException, + match="1/3 tasks executed. You likely have some disconnected tasks or circular dependency.", + ): + async for task_run_info in run_tasks_base( + [ + Task(number_generator), + Task(add_one, task_config=TaskConfig(needs=[number_generator, multiply_by_two])), + Task(multiply_by_two, task_config=TaskConfig(needs=[add_one])), + ], + data=10, + ): + if isinstance(task_run_info, TaskExecutionInfo): + assert task_run_info.result == expected_results[index], ( + f"at {index = }: {task_run_info.result = } != {expected_results[index] = }" + ) + index += 1 + + +def test_run_tasks(): + asyncio.run(run_and_check_tasks()) + + +if __name__ == "__main__": + test_run_tasks() diff --git a/cognee/tests/integration/run_toy_tasks/run_tasks_multiple_inputs_test.py b/cognee/tests/integration/run_toy_tasks/run_tasks_multiple_inputs_test.py new file mode 100644 index 0000000000..9bcfe3f8c5 --- /dev/null +++ b/cognee/tests/integration/run_toy_tasks/run_tasks_multiple_inputs_test.py @@ -0,0 +1,46 @@ +import asyncio + +from cognee.modules.pipelines.tasks import Task, TaskConfig, TaskExecutionInfo +from cognee.modules.pipelines.operations.run_tasks_base import run_tasks_base + + +async def run_and_check_tasks(): + def number_generator(num, context=None): + for i in range(num): + yield i + 1 + + async def add_one(num, context=None): + yield num + 1 + + async def add_two(num, context=None): + yield num + 2 + + async def multiply_by_two(num1, num2, context=None): + yield num1 * 2 + yield num2 * 2 + + index = 0 + expected_results = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 24] + + async for task_run_info in run_tasks_base( + [ + Task(number_generator), + Task(add_one, task_config=TaskConfig(needs=[number_generator])), + Task(add_two, task_config=TaskConfig(needs=[number_generator])), + Task(multiply_by_two, task_config=TaskConfig(needs=[add_one, add_two])), + ], + data=10, + ): + if isinstance(task_run_info, TaskExecutionInfo): + assert task_run_info.result == expected_results[index], ( + f"at {index = }: {task_run_info.result = } != {expected_results[index] = }" + ) + index += 1 + + +def test_run_tasks(): + asyncio.run(run_and_check_tasks()) + + +if __name__ == "__main__": + test_run_tasks() diff --git a/cognee/tests/integration/run_toy_tasks/run_tasks_simple_test.py b/cognee/tests/integration/run_toy_tasks/run_tasks_simple_test.py new file mode 100644 index 0000000000..dd54be5c9d --- /dev/null +++ b/cognee/tests/integration/run_toy_tasks/run_tasks_simple_test.py @@ -0,0 +1,41 @@ +import asyncio + +from cognee.modules.pipelines.tasks import Task, TaskConfig, TaskExecutionInfo +from cognee.modules.pipelines.operations.run_tasks_base import run_tasks_base + + +async def run_and_check_tasks(): + def number_generator(num, context=None): + for i in range(num): + yield i + 1 + + async def add_one(num, context=None): + yield num + 1 + + async def multiply_by_two(num, context=None): + yield num * 2 + + index = 0 + expected_results = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 22] + + async for task_run_info in run_tasks_base( + [ + Task(number_generator), + Task(add_one, task_config=TaskConfig(needs=[number_generator])), + Task(multiply_by_two, task_config=TaskConfig(needs=[add_one])), + ], + data=10, + ): + if isinstance(task_run_info, TaskExecutionInfo): + assert task_run_info.result == expected_results[index], ( + f"at {index = }: {task_run_info.result = } != {expected_results[index] = }" + ) + index += 1 + + +def test_run_tasks(): + asyncio.run(run_and_check_tasks()) + + +if __name__ == "__main__": + test_run_tasks() diff --git a/cognee/tests/integration/run_toy_tasks/run_tasks_test.py b/cognee/tests/integration/run_toy_tasks/run_tasks_test.py deleted file mode 100644 index b1400beb59..0000000000 --- a/cognee/tests/integration/run_toy_tasks/run_tasks_test.py +++ /dev/null @@ -1,50 +0,0 @@ -import asyncio - -import cognee -from cognee.modules.pipelines.operations.run_tasks import run_tasks_base -from cognee.modules.pipelines.tasks.Task import Task -from cognee.modules.users.methods import get_default_user -from cognee.infrastructure.databases.relational import create_db_and_tables - - -async def run_and_check_tasks(): - await cognee.prune.prune_data() - await cognee.prune.prune_system(metadata=True) - - def number_generator(num): - for i in range(num): - yield i + 1 - - async def add_one(nums): - for num in nums: - yield num + 1 - - async def multiply_by_two(num): - yield num * 2 - - async def add_one_single(num): - yield num + 1 - - await create_db_and_tables() - user = await get_default_user() - - pipeline = run_tasks_base( - [ - Task(number_generator), - Task(add_one, task_config={"batch_size": 5}), - Task(multiply_by_two, task_config={"batch_size": 1}), - Task(add_one_single), - ], - data=10, - user=user, - ) - - results = [5, 7, 9, 11, 13, 15, 17, 19, 21, 23] - index = 0 - async for result in pipeline: - assert result == results[index], f"at {index = }: {result = } != {results[index] = }" - index += 1 - - -def test_run_tasks(): - asyncio.run(run_and_check_tasks()) diff --git a/cognee/tests/test_library.py b/cognee/tests/test_library.py index 96facd015b..5f693d7b25 100755 --- a/cognee/tests/test_library.py +++ b/cognee/tests/test_library.py @@ -1,6 +1,7 @@ import os import pathlib import cognee +from cognee.api.v1.visualize.visualize import visualize_graph from cognee.modules.search.operations import get_history from cognee.modules.users.methods import get_default_user from cognee.shared.logging_utils import get_logger @@ -76,6 +77,12 @@ async def main(): assert len(history) == 6, "Search history is not correct." + # await render_graph() + graph_file_path = os.path.join( + pathlib.Path(__file__).parent, ".artifacts", "graph_visualization.html" + ) + await visualize_graph(graph_file_path) + # Assert local data files are cleaned properly await cognee.prune.prune_data() assert not os.path.isdir(data_directory_path), "Local data files are not deleted" diff --git a/notebooks/cognee_code_graph_demo.ipynb b/notebooks/cognee_code_graph_demo.ipynb index 73e4fdd279..72ce55c89a 100644 --- a/notebooks/cognee_code_graph_demo.ipynb +++ b/notebooks/cognee_code_graph_demo.ipynb @@ -74,13 +74,13 @@ " get_repo_file_dependencies,\n", ")\n", "from cognee.tasks.storage import add_data_points\n", - "from cognee.modules.pipelines.tasks.Task import Task\n", + "from cognee.modules.pipelines.tasks import Task, TaskConfig\n", "\n", "detailed_extraction = True\n", "\n", "tasks = [\n", " Task(get_repo_file_dependencies, detailed_extraction=detailed_extraction),\n", - " Task(add_data_points, task_config={\"batch_size\": 100 if detailed_extraction else 500}),\n", + " Task(add_data_points, task_config=TaskConfig(needs=[get_repo_file_dependencies], output_batch_size=100 if detailed_extraction else 500)),\n", "]" ] }, diff --git a/notebooks/cognee_demo.ipynb b/notebooks/cognee_demo.ipynb index 2c1eb59d18..6a730d898f 100644 --- a/notebooks/cognee_demo.ipynb +++ b/notebooks/cognee_demo.ipynb @@ -518,11 +518,11 @@ "from cognee.modules.data.models import Dataset, Data\n", "from cognee.modules.data.methods.get_dataset_data import get_dataset_data\n", "from cognee.modules.cognify.config import get_cognify_config\n", - "from cognee.modules.pipelines.tasks.Task import Task\n", "from cognee.modules.pipelines import run_tasks\n", + "from cognee.modules.pipelines.tasks import Task, TaskConfig\n", + "from cognee.modules.pipelines.operations.needs import merge_needs\n", "from cognee.modules.users.models import User\n", "from cognee.tasks.documents import (\n", - " check_permissions_on_documents,\n", " classify_documents,\n", " extract_chunks_from_documents,\n", ")\n", @@ -540,19 +540,25 @@ "\n", " tasks = [\n", " Task(classify_documents),\n", - " Task(check_permissions_on_documents, user=user, permissions=[\"write\"]),\n", - " Task(\n", - " extract_chunks_from_documents, max_chunk_size=get_max_chunk_tokens()\n", - " ), # Extract text chunks based on the document type.\n", - " Task(\n", - " extract_graph_from_data, graph_model=KnowledgeGraph, task_config={\"batch_size\": 10}\n", - " ), # Generate knowledge graphs from the document chunks.\n", + " Task( # Extract text chunks based on the document type.\n", + " extract_chunks_from_documents,\n", + " max_chunk_size=get_max_chunk_tokens(),\n", + " task_config=TaskConfig(needs=[classify_documents], output_batch_size=10),\n", + " ),\n", + " Task( # Generate knowledge graphs from the document chunks.\n", + " extract_graph_from_data,\n", + " graph_model=KnowledgeGraph,\n", + " task_config=TaskConfig(needs=[extract_chunks_from_documents]),\n", + " ),\n", " Task(\n", " summarize_text,\n", " summarization_model=cognee_config.summarization_model,\n", - " task_config={\"batch_size\": 10},\n", + " task_config=TaskConfig(needs=[extract_chunks_from_documents]),\n", + " ),\n", + " Task(\n", + " add_data_points,\n", + " task_config=TaskConfig(needs=[merge_needs(summarize_text, extract_graph_from_data)]),\n", " ),\n", - " Task(add_data_points, task_config={\"batch_size\": 10}),\n", " ]\n", "\n", " pipeline_run = run_tasks(tasks, dataset.id, data_documents, \"cognify_pipeline\")\n", @@ -1041,7 +1047,7 @@ ], "metadata": { "kernelspec": { - "display_name": "py312", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -1055,7 +1061,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.8" + "version": "3.11.8" } }, "nbformat": 4, diff --git a/notebooks/hr_demo.ipynb b/notebooks/hr_demo.ipynb index fc6515bdfc..0dbc6f73b0 100644 --- a/notebooks/hr_demo.ipynb +++ b/notebooks/hr_demo.ipynb @@ -397,14 +397,15 @@ "from cognee.modules.data.models import Dataset, Data\n", "from cognee.modules.data.methods.get_dataset_data import get_dataset_data\n", "from cognee.modules.cognify.config import get_cognify_config\n", - "from cognee.modules.pipelines.tasks.Task import Task\n", "from cognee.modules.pipelines import run_tasks\n", + "from cognee.modules.pipelines.tasks import Task, TaskConfig\n", + "from cognee.modules.pipelines.operations.needs import merge_needs\n", "from cognee.modules.users.models import User\n", "from cognee.tasks.documents import (\n", - " check_permissions_on_documents,\n", " classify_documents,\n", " extract_chunks_from_documents,\n", ")\n", + "from cognee.infrastructure.llm import get_max_chunk_tokens\n", "from cognee.tasks.graph import extract_graph_from_data\n", "from cognee.tasks.storage import add_data_points\n", "from cognee.tasks.summarization import summarize_text\n", @@ -418,17 +419,25 @@ "\n", " tasks = [\n", " Task(classify_documents),\n", - " Task(check_permissions_on_documents, user=user, permissions=[\"write\"]),\n", - " Task(extract_chunks_from_documents), # Extract text chunks based on the document type.\n", - " Task(\n", - " extract_graph_from_data, graph_model=KnowledgeGraph, task_config={\"batch_size\": 10}\n", - " ), # Generate knowledge graphs from the document chunks.\n", + " Task( # Extract text chunks based on the document type.\n", + " extract_chunks_from_documents,\n", + " max_chunk_size=get_max_chunk_tokens(),\n", + " task_config=TaskConfig(needs=[classify_documents], output_batch_size=10),\n", + " ),\n", + " Task( # Generate knowledge graphs from the document chunks.\n", + " extract_graph_from_data,\n", + " graph_model=KnowledgeGraph,\n", + " task_config=TaskConfig(needs=[extract_chunks_from_documents]),\n", + " ),\n", " Task(\n", " summarize_text,\n", " summarization_model=cognee_config.summarization_model,\n", - " task_config={\"batch_size\": 10},\n", + " task_config=TaskConfig(needs=[extract_chunks_from_documents]),\n", + " ),\n", + " Task(\n", + " add_data_points,\n", + " task_config=TaskConfig(needs=[merge_needs(summarize_text, extract_graph_from_data)]),\n", " ),\n", - " Task(add_data_points, task_config={\"batch_size\": 10}),\n", " ]\n", "\n", " pipeline = run_tasks(tasks, data_documents)\n", diff --git a/notebooks/pokemon_datapoints_notebook.ipynb b/notebooks/pokemon_datapoints_notebook.ipynb index 9fbc34bc18..2f01e7c6dc 100644 --- a/notebooks/pokemon_datapoints_notebook.ipynb +++ b/notebooks/pokemon_datapoints_notebook.ipynb @@ -1,38 +1,25 @@ { "cells": [ { - "metadata": { - "ExecuteTime": { - "end_time": "2025-03-04T11:58:00.193158Z", - "start_time": "2025-03-04T11:58:00.190238Z" - } - }, - "cell_type": "code", - "source": [ - "import nest_asyncio\n", - "nest_asyncio.apply()" - ], - "id": "2efba278d106bb5f", - "outputs": [], - "execution_count": 2 - }, - { - "metadata": {}, "cell_type": "markdown", + "id": "ccbb2bc23aa456ee", + "metadata": {}, "source": [ "### Environment Configuration\n", "#### Setup required directories and environment variables.\n" - ], - "id": "ccbb2bc23aa456ee" + ] }, { + "cell_type": "code", + "execution_count": 1, + "id": "662d554f96f211d9", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:33.879188Z", "start_time": "2025-03-04T11:59:33.873682Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "import pathlib\n", "import os\n", @@ -48,28 +35,28 @@ "BASE_URL = \"https://pokeapi.co/api/v2/\"\n", "os.environ[\"BUCKET_URL\"] = data_directory_path\n", "os.environ[\"DATA_WRITER__DISABLE_COMPRESSION\"] = \"true\"\n" - ], - "id": "662d554f96f211d9", - "outputs": [], - "execution_count": 8 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "36ae0be71f6e9167", + "metadata": {}, "source": [ "## Initialize DLT Pipeline\n", "### Create the DLT pipeline to fetch Pokémon data.\n" - ], - "id": "36ae0be71f6e9167" + ] }, { + "cell_type": "code", + "execution_count": 2, + "id": "25101ae5f016ce0c", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:58:03.982939Z", "start_time": "2025-03-04T11:58:03.819676Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "import dlt\n", "from pathlib import Path\n", @@ -79,28 +66,28 @@ " destination=\"filesystem\",\n", " dataset_name=\"pokemon_data\",\n", ")\n" - ], - "id": "25101ae5f016ce0c", - "outputs": [], - "execution_count": 4 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "9a87ce05a072c48b", + "metadata": {}, "source": [ "## Fetch Pokémon List\n", "### Retrieve a list of Pokémon from the API.\n" - ], - "id": "9a87ce05a072c48b" + ] }, { + "cell_type": "code", + "execution_count": 3, + "id": "3b6e60778c61e24a", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:58:03.990076Z", "start_time": "2025-03-04T11:58:03.987199Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "@dlt.resource(write_disposition=\"replace\")\n", "def pokemon_list(limit: int = 50):\n", @@ -108,28 +95,28 @@ " response = requests.get(f\"{BASE_URL}pokemon\", params={\"limit\": limit})\n", " response.raise_for_status()\n", " yield response.json()[\"results\"]\n" - ], - "id": "3b6e60778c61e24a", - "outputs": [], - "execution_count": 5 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "9952767846194e97", + "metadata": {}, "source": [ "## Fetch Pokémon Details\n", "### Fetch detailed information about each Pokémon.\n" - ], - "id": "9952767846194e97" + ] }, { + "cell_type": "code", + "execution_count": 4, + "id": "79ec9fef12267485", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:58:03.996394Z", "start_time": "2025-03-04T11:58:03.994122Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "@dlt.transformer(data_from=pokemon_list)\n", "def pokemon_details(pokemons):\n", @@ -139,64 +126,64 @@ " response = requests.get(pokemon[\"url\"])\n", " response.raise_for_status()\n", " yield response.json()\n" - ], - "id": "79ec9fef12267485", - "outputs": [], - "execution_count": 6 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "41e05f660bf9e9d2", + "metadata": {}, "source": [ "## Run Data Pipeline\n", "### Execute the pipeline and store Pokémon data.\n" - ], - "id": "41e05f660bf9e9d2" + ] }, { + "cell_type": "code", + "execution_count": 5, + "id": "20a3b2c7f404677f", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:41.571015Z", "start_time": "2025-03-04T11:59:36.840744Z" } }, - "cell_type": "code", - "source": [ - "info = pipeline.run([pokemon_list, pokemon_details])\n", - "print(info)\n" - ], - "id": "20a3b2c7f404677f", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Pipeline pokemon_pipeline load step completed in 0.06 seconds\n", + "Pipeline pokemon_pipeline load step completed in 0.04 seconds\n", "1 load package(s) were loaded to destination filesystem and into dataset pokemon_data\n", - "The filesystem destination used file:///Users/lazar/PycharmProjects/cognee/.data_storage location to store data\n", - "Load package 1741089576.860229 is LOADED and contains no failed jobs\n" + "The filesystem destination used file:///Users/borisarzentar/Projects/Topoteretes/cognee/notebooks/.data_storage location to store data\n", + "Load package 1743589860.3306491 is LOADED and contains no failed jobs\n" ] } ], - "execution_count": 9 + "source": [ + "info = pipeline.run([pokemon_list, pokemon_details])\n", + "print(info)\n" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "937f10b8d1037743", + "metadata": {}, "source": [ "## Load Pokémon Abilities\n", "### Load Pokémon ability data from stored files.\n" - ], - "id": "937f10b8d1037743" + ] }, { + "cell_type": "code", + "execution_count": 6, + "id": "be73050036439ea1", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:44.377719Z", "start_time": "2025-03-04T11:59:44.363718Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "import json\n", "from cognee.low_level import DataPoint\n", @@ -220,28 +207,28 @@ " pokemon_abilities.append(ability)\n", "\n", " return abilities_root, pokemon_abilities\n" - ], - "id": "be73050036439ea1", - "outputs": [], - "execution_count": 10 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "98c97f799f73df77", + "metadata": {}, "source": [ "## Load Pokémon Data\n", "### Load Pokémon details and associate them with abilities.\n" - ], - "id": "98c97f799f73df77" + ] }, { + "cell_type": "code", + "execution_count": 7, + "id": "7862951248df0bf5", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:46.251306Z", "start_time": "2025-03-04T11:59:46.238283Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "from typing import List, Optional\n", "\n", @@ -303,28 +290,28 @@ " pokemons.append(Pokemon(**pokemon_data))\n", "\n", " return pokemons\n" - ], - "id": "7862951248df0bf5", - "outputs": [], - "execution_count": 11 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "676fa5a2b61c2107", + "metadata": {}, "source": [ "## Process Pokémon Data\n", "### Load and associate Pokémon abilities.\n" - ], - "id": "676fa5a2b61c2107" + ] }, { + "cell_type": "code", + "execution_count": 8, + "id": "ad14cdecdccd71bb", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:47.365226Z", "start_time": "2025-03-04T11:59:47.356722Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "STORAGE_PATH = Path(\".data_storage/pokemon_data/pokemon_details\")\n", "jsonl_pokemons = sorted(STORAGE_PATH.glob(\"*.jsonl\"))\n", @@ -335,30 +322,38 @@ "abilities_root, pokemon_abilities = load_abilities_data(jsonl_abilities)\n", "pokemon_root = Pokemons(have=abilities_root)\n", "pokemons = load_pokemon_data(jsonl_pokemons, pokemon_abilities, pokemon_root)\n" - ], - "id": "ad14cdecdccd71bb", - "outputs": [], - "execution_count": 12 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "59dec67b2ae50f0f", + "metadata": {}, "source": [ "## Initialize Cognee\n", "### Setup Cognee for data processing.\n" - ], - "id": "59dec67b2ae50f0f" + ] }, { + "cell_type": "code", + "execution_count": 9, + "id": "d2e095ae576a02c1", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:49.244577Z", "start_time": "2025-03-04T11:59:48.618261Z" } }, - "cell_type": "code", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/borisarzentar/Projects/Topoteretes/cognee/.venv/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], "source": [ - "import asyncio\n", "from cognee.low_level import setup as cognee_setup\n", "\n", "async def initialize_cognee():\n", @@ -367,109 +362,90 @@ " await cognee_setup()\n", "\n", "await initialize_cognee()\n" - ], - "id": "d2e095ae576a02c1", - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:cognee.infrastructure.databases.relational.sqlalchemy.SqlAlchemyAdapter:Database deleted successfully.INFO:cognee.infrastructure.databases.relational.sqlalchemy.SqlAlchemyAdapter:Database deleted successfully." - ] - } - ], - "execution_count": 13 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "5f0b8090bc7b1fe6", + "metadata": {}, "source": [ "## Process Pokémon Data\n", "### Add Pokémon data points to Cognee.\n" - ], - "id": "5f0b8090bc7b1fe6" + ] }, { + "cell_type": "code", + "execution_count": 10, + "id": "ffa12fc1f5350d95", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T11:59:57.744035Z", "start_time": "2025-03-04T11:59:50.574033Z" } }, - "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'_sa_instance_state': , 'pipeline_run_id': UUID('32976ad1-847f-4c80-8eab-002bc28ba621'), 'pipeline_name': 'pokemon_pipeline', 'pipeline_id': UUID('fd2ed59d-b550-5b05-bbe6-7b708fe12483'), 'status': , 'dataset_id': UUID('dafbc434-f846-5ad8-8f28-143eb0e60ed5'), 'run_info': {'data': \"[Pokemon(id=UUID('996ad860-2a9a-504f-8861-aeafd0b2ae29'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='bulbasaur', base_experience=64, height=7, weight=69, is_default=True, order=1, location_area_encounters='https://pokeapi.co/api/v2/pokemon/1/encounters', species__name='bulbasaur', species__url='https://pokeapi.co/api/v2/pokemon-species/1/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/1.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/1.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/1.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/1.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('d360738e-ac41-58fb-8b93-f46846332c1c'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='overgrow', ability__name='overgrow', ability__url='https://pokeapi.co/api/v2/ability/65/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('512065af-f53c-5b15-8507-7b64dbb5093e'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('59e06cf8-f390-5093-af2e-3685be593a25'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='ivysaur', base_experience=142, height=10, weight=130, is_default=True, order=2, location_area_encounters='https://pokeapi.co/api/v2/pokemon/2/encounters', species__name='ivysaur', species__url='https://pokeapi.co/api/v2/pokemon-species/2/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/2.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/2.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/2.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/2.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/2.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/2.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('93afde85-86ec-544c-b2b1-2d256370d06e'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='overgrow', ability__name='overgrow', ability__url='https://pokeapi.co/api/v2/ability/65/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('273e630a-8472-51bf-ac5a-ef795de497e8'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('391ada15-580c-5baa-b16f-eeb35d9b1122'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='venusaur', base_experience=263, height=20, weight=1000, is_default=True, order=3, location_area_encounters='https://pokeapi.co/api/v2/pokemon/3/encounters', species__name='venusaur', species__url='https://pokeapi.co/api/v2/pokemon-species/3/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/3.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/3.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/3.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/3.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/3.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/3.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('3819dd9b-1cb3-5494-b884-7180a58a3572'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='overgrow', ability__name='overgrow', ability__url='https://pokeapi.co/api/v2/ability/65/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('43f7bedb-cbd4-5bfb-bbfd-78def51410b3'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('22fe83ae-a20f-54fc-b436-cec85c94c5e8'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='charmander', base_experience=62, height=6, weight=85, is_default=True, order=5, location_area_encounters='https://pokeapi.co/api/v2/pokemon/4/encounters', species__name='charmander', species__url='https://pokeapi.co/api/v2/pokemon-species/4/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/4.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/4.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/4.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/4.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/4.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('1f12b15f-aed0-54e7-94b0-e0e2adea3ae7'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='blaze', ability__name='blaze', ability__url='https://pokeapi.co/api/v2/ability/66/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('36c5670c-2c40-5183-bda1-dde186e2b1c8'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='solar-power', ability__name='solar-power', ability__url='https://pokeapi.co/api/v2/ability/94/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b7d55bf4-7057-5113-85c8-141871bf7635'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='charmeleon', base_experience=142, height=11, weight=190, is_default=True, order=6, location_area_encounters='https://pokeapi.co/api/v2/pokemon/5/encounters', species__name='charmeleon', species__url='https://pokeapi.co/api/v2/pokemon-species/5/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/5.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/5.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/5.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/5.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/5.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/5.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('cdf93e52-4606-528c-b58e-ba4906b5ea48'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='blaze', ability__name='blaze', ability__url='https://pokeapi.co/api/v2/ability/66/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('2d4cce3f-02f2-5789-a4c1-f18a7db83d19'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='solar-power', ability__name='solar-power', ability__url='https://pokeapi.co/api/v2/ability/94/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('1883fdfb-249b-58f5-b445-87dff6eabc06'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='charizard', base_experience=267, height=17, weight=905, is_default=True, order=7, location_area_encounters='https://pokeapi.co/api/v2/pokemon/6/encounters', species__name='charizard', species__url='https://pokeapi.co/api/v2/pokemon-species/6/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/6.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/6.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/6.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/6.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/6.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ef5c36b6-8884-5e34-8d9e-f408a00d4fa4'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='blaze', ability__name='blaze', ability__url='https://pokeapi.co/api/v2/ability/66/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('ce5d23d8-74e6-5c2e-b254-6e329475b83b'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='solar-power', ability__name='solar-power', ability__url='https://pokeapi.co/api/v2/ability/94/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('d6ed313e-533a-55a6-aa06-4c00bc132812'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='squirtle', base_experience=63, height=5, weight=90, is_default=True, order=10, location_area_encounters='https://pokeapi.co/api/v2/pokemon/7/encounters', species__name='squirtle', species__url='https://pokeapi.co/api/v2/pokemon-species/7/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/7.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/7.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/7.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/7.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/7.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('35996229-15ee-5ab0-abca-d65b2747e0ad'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='torrent', ability__name='torrent', ability__url='https://pokeapi.co/api/v2/ability/67/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('001f7d2a-3757-503c-a13d-3ba65387e20d'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rain-dish', ability__name='rain-dish', ability__url='https://pokeapi.co/api/v2/ability/44/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('9090025d-5d06-58f1-b79a-3690407024fc'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='wartortle', base_experience=142, height=10, weight=225, is_default=True, order=11, location_area_encounters='https://pokeapi.co/api/v2/pokemon/8/encounters', species__name='wartortle', species__url='https://pokeapi.co/api/v2/pokemon-species/8/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/8.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/8.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/8.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/8.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/8.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/8.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('77ba80b6-60e6-5613-8197-2913e197aafc'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='torrent', ability__name='torrent', ability__url='https://pokeapi.co/api/v2/ability/67/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('9a809923-6b2c-5b95-ac7a-b07ccd521aef'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rain-dish', ability__name='rain-dish', ability__url='https://pokeapi.co/api/v2/ability/44/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('751af8b4-32a7-55bc-9fad-8bfbcbbf4237'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='blastoise', base_experience=265, height=16, weight=855, is_default=True, order=12, location_area_encounters='https://pokeapi.co/api/v2/pokemon/9/encounters', species__name='blastoise', species__url='https://pokeapi.co/api/v2/pokemon-species/9/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/9.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/9.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/9.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/9.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/9.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/9.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('6a3b0015-d7ef-5bca-ab55-790a441dc221'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='torrent', ability__name='torrent', ability__url='https://pokeapi.co/api/v2/ability/67/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8baba911-b7c4-597b-843b-9ffe47aa05ff'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rain-dish', ability__name='rain-dish', ability__url='https://pokeapi.co/api/v2/ability/44/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('305f5e8d-e48d-5c3a-8ce3-446622dd8a8a'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='caterpie', base_experience=39, height=3, weight=29, is_default=True, order=14, location_area_encounters='https://pokeapi.co/api/v2/pokemon/10/encounters', species__name='caterpie', species__url='https://pokeapi.co/api/v2/pokemon-species/10/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/10.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/10.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/10.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/10.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/10.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('b3524870-3a4a-5aa7-bd5c-6f9dda8cf0b8'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shield-dust', ability__name='shield-dust', ability__url='https://pokeapi.co/api/v2/ability/19/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b724fa25-2677-581e-ad56-c970114e0b86'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('a4c08562-50fa-5599-939c-eb6f2a83a362'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='metapod', base_experience=72, height=7, weight=99, is_default=True, order=15, location_area_encounters='https://pokeapi.co/api/v2/pokemon/11/encounters', species__name='metapod', species__url='https://pokeapi.co/api/v2/pokemon-species/11/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/11.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/11.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/11.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/11.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/11.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/11.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('4c149799-e32d-5386-b5dc-7edad26f5f17'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('d35aeaf3-5d1d-535a-a31a-22133ddf5f3d'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='butterfree', base_experience=198, height=11, weight=320, is_default=True, order=16, location_area_encounters='https://pokeapi.co/api/v2/pokemon/12/encounters', species__name='butterfree', species__url='https://pokeapi.co/api/v2/pokemon-species/12/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/12.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/12.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/12.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/12.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/12.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/12.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('e3d83e95-0bfb-54c0-97be-e832ce1ce111'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='compound-eyes', ability__name='compound-eyes', ability__url='https://pokeapi.co/api/v2/ability/14/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('bbd83ff4-0e51-557b-8907-d4da7e90ad5f'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tinted-lens', ability__name='tinted-lens', ability__url='https://pokeapi.co/api/v2/ability/110/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('61c97311-bb14-5679-99fc-98497a701292'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='weedle', base_experience=39, height=3, weight=32, is_default=True, order=17, location_area_encounters='https://pokeapi.co/api/v2/pokemon/13/encounters', species__name='weedle', species__url='https://pokeapi.co/api/v2/pokemon-species/13/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/13.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/13.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/13.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/13.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/13.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/13.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('fd030dd9-c771-5496-be3e-32bb4290fee5'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shield-dust', ability__name='shield-dust', ability__url='https://pokeapi.co/api/v2/ability/19/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b2951b19-99d3-522c-9796-0c4ce63fef48'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('1bb138f7-5f19-587c-8a25-fb174eabf441'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='kakuna', base_experience=72, height=6, weight=100, is_default=True, order=18, location_area_encounters='https://pokeapi.co/api/v2/pokemon/14/encounters', species__name='kakuna', species__url='https://pokeapi.co/api/v2/pokemon-species/14/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/14.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/14.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/14.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/14.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/14.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/14.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('71034555-2791-5d39-bbd7-fb27e35ba183'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('be6c2a5f-4160-5145-8695-c628496b208d'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='beedrill', base_experience=178, height=10, weight=295, is_default=True, order=19, location_area_encounters='https://pokeapi.co/api/v2/pokemon/15/encounters', species__name='beedrill', species__url='https://pokeapi.co/api/v2/pokemon-species/15/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/15.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/15.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/15.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/15.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/15.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/15.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('4444c884-50e1-5a94-bdab-60b6f1f7d9ff'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='swarm', ability__name='swarm', ability__url='https://pokeapi.co/api/v2/ability/68/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4a398ff7-36e7-518c-a590-fa6714bb2d96'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sniper', ability__name='sniper', ability__url='https://pokeapi.co/api/v2/ability/97/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('7dbed579-ec83-5f9b-8aa3-1c40e858acfc'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pidgey', base_experience=50, height=3, weight=18, is_default=True, order=21, location_area_encounters='https://pokeapi.co/api/v2/pokemon/16/encounters', species__name='pidgey', species__url='https://pokeapi.co/api/v2/pokemon-species/16/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/16.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/16.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/16.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/16.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/16.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/16.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('5b544a4d-56e8-5c0d-bca8-9fc961b96e45'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('934e0468-4466-5d68-b634-9bd7df0f4303'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tangled-feet', ability__name='tangled-feet', ability__url='https://pokeapi.co/api/v2/ability/77/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('cf35c20b-8c40-5714-9d2c-063ee7a589de'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='big-pecks', ability__name='big-pecks', ability__url='https://pokeapi.co/api/v2/ability/145/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('bcc896de-3c61-523e-973c-052f16456e28'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pidgeotto', base_experience=122, height=11, weight=300, is_default=True, order=22, location_area_encounters='https://pokeapi.co/api/v2/pokemon/17/encounters', species__name='pidgeotto', species__url='https://pokeapi.co/api/v2/pokemon-species/17/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/17.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/17.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/17.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/17.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/17.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/17.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ed00b802-ae08-5bda-afc4-4bdea362e350'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('3f2fedce-427c-518d-aaa2-03a33c31694e'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tangled-feet', ability__name='tangled-feet', ability__url='https://pokeapi.co/api/v2/ability/77/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b7f6f91d-14da-502d-ae03-65a5a8a2bfa0'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='big-pecks', ability__name='big-pecks', ability__url='https://pokeapi.co/api/v2/ability/145/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('77b34e74-5631-5a71-b8ce-97b9d6bab10a'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pidgeot', base_experience=216, height=15, weight=395, is_default=True, order=23, location_area_encounters='https://pokeapi.co/api/v2/pokemon/18/encounters', species__name='pidgeot', species__url='https://pokeapi.co/api/v2/pokemon-species/18/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/18.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/18.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/18.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/18.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/18.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/18.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('735c1b83-4982-502e-836c-7d34cec75306'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f67c2001-2401-516b-955c-a2c7f16b8f20'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tangled-feet', ability__name='tangled-feet', ability__url='https://pokeapi.co/api/v2/ability/77/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('99506d47-e3fc-51f3-b2d9-3ce08125b649'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='big-pecks', ability__name='big-pecks', ability__url='https://pokeapi.co/api/v2/ability/145/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('9d58db4d-28b7-56fc-9b12-db9a3e9d0769'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='rattata', base_experience=51, height=3, weight=35, is_default=True, order=25, location_area_encounters='https://pokeapi.co/api/v2/pokemon/19/encounters', species__name='rattata', species__url='https://pokeapi.co/api/v2/pokemon-species/19/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/19.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/19.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/19.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/19.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/19.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/19.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('cb0e1050-2912-5c94-9ee1-3c58458d4dfe'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('00f22cef-5d6f-51ef-af3c-bc19ca4247b0'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='guts', ability__name='guts', ability__url='https://pokeapi.co/api/v2/ability/62/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('98ce00f0-da2c-5645-abf3-4ee0f974c36e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('6fea451e-90db-5366-bbde-9a65b83f8f64'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='raticate', base_experience=145, height=7, weight=185, is_default=True, order=27, location_area_encounters='https://pokeapi.co/api/v2/pokemon/20/encounters', species__name='raticate', species__url='https://pokeapi.co/api/v2/pokemon-species/20/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/20.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/20.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/20.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/20.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/20.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/20.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('45634545-1e1e-5d9c-8543-6530187e2699'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('9740a0d5-2273-5ec4-8565-d1524b6e8365'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='guts', ability__name='guts', ability__url='https://pokeapi.co/api/v2/ability/62/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('411137ac-2a2c-5fa1-bc7a-ad0551a425ce'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('0df2c324-4b3b-5e4b-8574-770c7c601dc4'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='spearow', base_experience=52, height=3, weight=20, is_default=True, order=30, location_area_encounters='https://pokeapi.co/api/v2/pokemon/21/encounters', species__name='spearow', species__url='https://pokeapi.co/api/v2/pokemon-species/21/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/21.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/21.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/21.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/21.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/21.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/21.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ffe8f785-70e7-506b-8c4a-729c6ee4dc15'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b0a2b69b-401c-55bb-b7b3-eb868dd201b0'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sniper', ability__name='sniper', ability__url='https://pokeapi.co/api/v2/ability/97/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('05596e20-ebb9-571a-9f7c-250cbacfb499'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='fearow', base_experience=155, height=12, weight=380, is_default=True, order=31, location_area_encounters='https://pokeapi.co/api/v2/pokemon/22/encounters', species__name='fearow', species__url='https://pokeapi.co/api/v2/pokemon-species/22/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/22.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/22.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/22.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/22.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/22.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/22.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('48b617d8-1a5e-504c-9925-52b464889358'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('69814b34-3d5a-5420-86fd-d150b5d82be3'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sniper', ability__name='sniper', ability__url='https://pokeapi.co/api/v2/ability/97/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('32b736a1-2bed-5f62-8131-c3dc9a2a33c7'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='ekans', base_experience=58, height=20, weight=69, is_default=True, order=32, location_area_encounters='https://pokeapi.co/api/v2/pokemon/23/encounters', species__name='ekans', species__url='https://pokeapi.co/api/v2/pokemon-species/23/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/23.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/23.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/23.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/23.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/23.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/23.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('6f7917b2-6a92-5856-8619-b9d7883aec44'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='intimidate', ability__name='intimidate', ability__url='https://pokeapi.co/api/v2/ability/22/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('3cb5235c-5248-5959-b783-8927a0d1c0c0'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4ab0eafa-31a9-5462-8d11-2d6a2818af5e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='unnerve', ability__name='unnerve', ability__url='https://pokeapi.co/api/v2/ability/127/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('29be4ef0-91eb-512b-8f83-360b6db38a83'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='arbok', base_experience=157, height=35, weight=650, is_default=True, order=33, location_area_encounters='https://pokeapi.co/api/v2/pokemon/24/encounters', species__name='arbok', species__url='https://pokeapi.co/api/v2/pokemon-species/24/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/24.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/24.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/24.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/24.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/24.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/24.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('2f62613d-2423-5b17-8783-db626bac3c67'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='intimidate', ability__name='intimidate', ability__url='https://pokeapi.co/api/v2/ability/22/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('3083da40-f91d-50e7-b1fe-17648d64707e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('110064e1-278f-5faa-8662-6e2d16407d7c'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='unnerve', ability__name='unnerve', ability__url='https://pokeapi.co/api/v2/ability/127/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('46f64ca6-6094-51fc-bbbe-34e3333c5388'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pikachu', base_experience=112, height=4, weight=60, is_default=True, order=35, location_area_encounters='https://pokeapi.co/api/v2/pokemon/25/encounters', species__name='pikachu', species__url='https://pokeapi.co/api/v2/pokemon-species/25/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/25.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/25.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/25.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/25.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/25.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('471d16de-c686-5928-8ba2-17b144d8197b'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='static', ability__name='static', ability__url='https://pokeapi.co/api/v2/ability/9/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('129d6789-1b19-5ab4-8c4a-3dfd6e7e8d6d'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='lightning-rod', ability__name='lightning-rod', ability__url='https://pokeapi.co/api/v2/ability/31/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('8df6e0fb-0d35-5fd6-831a-7e5b9ad2457a'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='raichu', base_experience=243, height=8, weight=300, is_default=True, order=51, location_area_encounters='https://pokeapi.co/api/v2/pokemon/26/encounters', species__name='raichu', species__url='https://pokeapi.co/api/v2/pokemon-species/26/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/26.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/26.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/26.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/26.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/26.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/26.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('32588d5b-5b5f-5d6e-80bb-4963610df285'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='static', ability__name='static', ability__url='https://pokeapi.co/api/v2/ability/9/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('bb538a79-d6e4-5f19-b306-1ac11492d68e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='lightning-rod', ability__name='lightning-rod', ability__url='https://pokeapi.co/api/v2/ability/31/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('5151e75a-9d7d-5897-be85-aaa96757564b'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='sandshrew', base_experience=60, height=6, weight=120, is_default=True, order=53, location_area_encounters='https://pokeapi.co/api/v2/pokemon/27/encounters', species__name='sandshrew', species__url='https://pokeapi.co/api/v2/pokemon-species/27/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/27.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/27.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/27.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/27.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/27.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/27.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('4c05ce00-4f47-5699-b1b7-95782f5fbd50'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-veil', ability__name='sand-veil', ability__url='https://pokeapi.co/api/v2/ability/8/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('85231b6d-3e84-5fb8-a558-e37bd514c5e6'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-rush', ability__name='sand-rush', ability__url='https://pokeapi.co/api/v2/ability/146/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('21f6a510-8fff-5bed-9d0e-df7b2ca28db1'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='sandslash', base_experience=158, height=10, weight=295, is_default=True, order=55, location_area_encounters='https://pokeapi.co/api/v2/pokemon/28/encounters', species__name='sandslash', species__url='https://pokeapi.co/api/v2/pokemon-species/28/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/28.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/28.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/28.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/28.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/28.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/28.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('3425a5a5-ccb5-5b9d-8a7e-7e4976414787'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-veil', ability__name='sand-veil', ability__url='https://pokeapi.co/api/v2/ability/8/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('cb945cf2-8665-5dc6-8783-1d1df279e466'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-rush', ability__name='sand-rush', ability__url='https://pokeapi.co/api/v2/ability/146/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('3eee96fe-b265-5e36-8d78-b2d50a9ac563'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoran-f', base_experience=55, height=4, weight=70, is_default=True, order=57, location_area_encounters='https://pokeapi.co/api/v2/pokemon/29/encounters', species__name='nidoran-f', species__url='https://pokeapi.co/api/v2/pokemon-species/29/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/29.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/29.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/29.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/29.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/29.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/29.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ef422d60-1aa3-5cf7-a22e-5bfb79687046'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b3242644-724c-56a8-9513-1c926c3a6568'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('22c86762-285a-5c3c-810d-ef7547e45b2a'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('720073c2-6984-53fa-9546-b893e83e0f62'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidorina', base_experience=128, height=8, weight=200, is_default=True, order=58, location_area_encounters='https://pokeapi.co/api/v2/pokemon/30/encounters', species__name='nidorina', species__url='https://pokeapi.co/api/v2/pokemon-species/30/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/30.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/30.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/30.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/30.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/30.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/30.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('21508e18-567c-5fa5-9334-5124085143b0'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('155716a6-d261-5970-8215-8227867fc042'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('7f40a953-9652-5afb-9b72-74e9f1738dd6'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b0526112-ddde-5dbf-b887-9b6f93557007'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoqueen', base_experience=253, height=13, weight=600, is_default=True, order=59, location_area_encounters='https://pokeapi.co/api/v2/pokemon/31/encounters', species__name='nidoqueen', species__url='https://pokeapi.co/api/v2/pokemon-species/31/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/31.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/31.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/31.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/31.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/31.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/31.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('e8d05664-b5f1-5abf-be6b-0df01b841703'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('9a57254f-009d-5ccb-9405-4f75166e9414'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('011b58cb-8682-5e66-97f8-54978b5db782'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sheer-force', ability__name='sheer-force', ability__url='https://pokeapi.co/api/v2/ability/125/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b85b4ff7-2f5e-5d5d-bcda-728e00ad61de'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoran-m', base_experience=55, height=5, weight=90, is_default=True, order=60, location_area_encounters='https://pokeapi.co/api/v2/pokemon/32/encounters', species__name='nidoran-m', species__url='https://pokeapi.co/api/v2/pokemon-species/32/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/32.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/32.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/32.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/32.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/32.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/32.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('d0e79cad-3ed0-525d-ab90-21c35a20af65'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8ad090be-e336-5e59-acb2-6b7de5e6c5eb'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('1d006cfb-8e53-5fc9-a5d8-ca49d931cf43'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('7561fe4e-6ffd-5631-96d6-cf89fdadba83'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidorino', base_experience=128, height=9, weight=195, is_default=True, order=61, location_area_encounters='https://pokeapi.co/api/v2/pokemon/33/encounters', species__name='nidorino', species__url='https://pokeapi.co/api/v2/pokemon-species/33/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/33.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/33.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/33.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/33.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/33.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/33.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('79638c6a-9208-5d8f-8d31-b462751737a4'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('69d148b8-fdb0-52c3-ac5e-b2e89f308c37'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4f9636f7-f85b-5e65-990d-71a7daf65e5f'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('ae5a160a-ca64-5557-a0d8-1fdd610d83e1'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoking', base_experience=253, height=14, weight=620, is_default=True, order=62, location_area_encounters='https://pokeapi.co/api/v2/pokemon/34/encounters', species__name='nidoking', species__url='https://pokeapi.co/api/v2/pokemon-species/34/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/34.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/34.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/34.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/34.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/34.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/34.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('881a1768-9f0e-524a-a9ae-91c36c82f628'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8fca3f8a-551a-551d-b63a-13147cce4abe'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('d4262044-0822-5d3c-abba-840fc42d70a7'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sheer-force', ability__name='sheer-force', ability__url='https://pokeapi.co/api/v2/ability/125/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('5429db33-2d2c-51e4-9b96-9918a6a67f07'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='clefairy', base_experience=113, height=6, weight=75, is_default=True, order=64, location_area_encounters='https://pokeapi.co/api/v2/pokemon/35/encounters', species__name='clefairy', species__url='https://pokeapi.co/api/v2/pokemon-species/35/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/35.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/35.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/35.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/35.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/35.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('c9917294-ce9e-5de9-b07a-05b84bbc01ad'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('bebcbe23-266e-5f18-b074-027c259e1c0e'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='magic-guard', ability__name='magic-guard', ability__url='https://pokeapi.co/api/v2/ability/98/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('5381e562-8472-56f6-a7a1-30d5023363ef'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='friend-guard', ability__name='friend-guard', ability__url='https://pokeapi.co/api/v2/ability/132/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('214f116d-a5a3-5203-867d-28bcad2b6c1a'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='clefable', base_experience=242, height=13, weight=400, is_default=True, order=65, location_area_encounters='https://pokeapi.co/api/v2/pokemon/36/encounters', species__name='clefable', species__url='https://pokeapi.co/api/v2/pokemon-species/36/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/36.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/36.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/36.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/36.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/36.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/36.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('9991818f-ceee-5104-b9a8-0421f072b676'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8a24270a-dc11-5a34-8351-f157dd5911fa'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='magic-guard', ability__name='magic-guard', ability__url='https://pokeapi.co/api/v2/ability/98/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('c8316e39-3b1a-5237-92fc-f84d9583f49e'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='unaware', ability__name='unaware', ability__url='https://pokeapi.co/api/v2/ability/109/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('c18d0fc0-d829-5009-a349-094ea30c386b'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='vulpix', base_experience=60, height=6, weight=99, is_default=True, order=66, location_area_encounters='https://pokeapi.co/api/v2/pokemon/37/encounters', species__name='vulpix', species__url='https://pokeapi.co/api/v2/pokemon-species/37/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/37.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/37.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/37.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/37.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/37.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/37.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('8d865c07-941e-5bfe-adea-6184661031b0'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='flash-fire', ability__name='flash-fire', ability__url='https://pokeapi.co/api/v2/ability/18/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('5fb6221c-75b3-5222-bc77-ac49d8fa9b4d'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='drought', ability__name='drought', ability__url='https://pokeapi.co/api/v2/ability/70/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('c3205bf1-c929-5b45-af5a-42b59ab87391'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='ninetales', base_experience=177, height=11, weight=199, is_default=True, order=68, location_area_encounters='https://pokeapi.co/api/v2/pokemon/38/encounters', species__name='ninetales', species__url='https://pokeapi.co/api/v2/pokemon-species/38/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/38.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/38.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/38.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/38.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/38.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/38.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('43809d94-1ece-5f7e-a900-ac1e0a684166'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='flash-fire', ability__name='flash-fire', ability__url='https://pokeapi.co/api/v2/ability/18/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('427c9248-d779-5d63-83e4-6fb40957b9fb'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='drought', ability__name='drought', ability__url='https://pokeapi.co/api/v2/ability/70/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('6863109a-0444-5f87-b018-66483cb30f22'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='jigglypuff', base_experience=95, height=5, weight=55, is_default=True, order=71, location_area_encounters='https://pokeapi.co/api/v2/pokemon/39/encounters', species__name='jigglypuff', species__url='https://pokeapi.co/api/v2/pokemon-species/39/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/39.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/39.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/39.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/39.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/39.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/39.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('9705c164-9623-5d2b-86cb-8fdeb8faecae'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('d08857dd-ea33-5c1c-8b21-62f09f082a54'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='competitive', ability__name='competitive', ability__url='https://pokeapi.co/api/v2/ability/172/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('a5f63db1-5dad-59f3-b73a-ae9c518a5fd8'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='friend-guard', ability__name='friend-guard', ability__url='https://pokeapi.co/api/v2/ability/132/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b4ab3922-2b8d-5d9c-b20a-e34bbc64c01f'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='wigglytuff', base_experience=218, height=10, weight=120, is_default=True, order=72, location_area_encounters='https://pokeapi.co/api/v2/pokemon/40/encounters', species__name='wigglytuff', species__url='https://pokeapi.co/api/v2/pokemon-species/40/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/40.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/40.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/40.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/40.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/40.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/40.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('0cea5b29-3211-5507-b636-5f06acac944a'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('20b7e547-3e02-52c8-bf35-71db2211fd8e'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='competitive', ability__name='competitive', ability__url='https://pokeapi.co/api/v2/ability/172/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('74bd55b9-cefd-51b3-a694-5d7fcfa27253'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='frisk', ability__name='frisk', ability__url='https://pokeapi.co/api/v2/ability/119/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('08d2a401-c6d0-56d0-bfca-d8fe47a0ccde'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='zubat', base_experience=49, height=8, weight=75, is_default=True, order=73, location_area_encounters='https://pokeapi.co/api/v2/pokemon/41/encounters', species__name='zubat', species__url='https://pokeapi.co/api/v2/pokemon-species/41/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/41.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/41.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/41.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/41.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/41.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/41.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('1d966ce1-c9c2-53c2-928d-050824c3775b'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='inner-focus', ability__name='inner-focus', ability__url='https://pokeapi.co/api/v2/ability/39/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f43394e6-2ae2-54f6-a65d-d8dcc45a1ad2'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='infiltrator', ability__name='infiltrator', ability__url='https://pokeapi.co/api/v2/ability/151/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('ba293c61-ad33-57b9-9671-f3319f57d789'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='golbat', base_experience=159, height=16, weight=550, is_default=True, order=74, location_area_encounters='https://pokeapi.co/api/v2/pokemon/42/encounters', species__name='golbat', species__url='https://pokeapi.co/api/v2/pokemon-species/42/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/42.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/42.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/42.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/42.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/42.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/42.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('c24d15b2-4e44-563a-879e-5b4485a96210'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='inner-focus', ability__name='inner-focus', ability__url='https://pokeapi.co/api/v2/ability/39/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8d634c3d-c86a-5104-b852-55c21fc124e5'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='infiltrator', ability__name='infiltrator', ability__url='https://pokeapi.co/api/v2/ability/151/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('45fae334-63fa-5064-9e45-024ff9e0095c'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='oddish', base_experience=64, height=5, weight=54, is_default=True, order=76, location_area_encounters='https://pokeapi.co/api/v2/pokemon/43/encounters', species__name='oddish', species__url='https://pokeapi.co/api/v2/pokemon-species/43/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/43.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/43.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/43.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/43.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/43.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/43.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('612865f3-ed54-5874-8056-21d5a4b78d23'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b0312d9e-7551-57f1-afb2-0e7d52de5e33'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('fce23375-fdd4-5b30-8e57-a401e5265ba1'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='gloom', base_experience=138, height=8, weight=86, is_default=True, order=77, location_area_encounters='https://pokeapi.co/api/v2/pokemon/44/encounters', species__name='gloom', species__url='https://pokeapi.co/api/v2/pokemon-species/44/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/44.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/44.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/44.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/44.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/44.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/44.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('359030a2-d9c5-5f68-8c00-86b4749df755'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('212ac8d0-f5dc-5af6-915e-7558bff10828'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='stench', ability__name='stench', ability__url='https://pokeapi.co/api/v2/ability/1/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b5a095ae-2fa5-5416-a5c3-4b3e8a7d0f9c'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='vileplume', base_experience=245, height=12, weight=186, is_default=True, order=78, location_area_encounters='https://pokeapi.co/api/v2/pokemon/45/encounters', species__name='vileplume', species__url='https://pokeapi.co/api/v2/pokemon-species/45/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/45.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/45.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/45.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/45.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/45.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/45.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('9fdae376-8140-5e69-b1f2-69aa78c813b2'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8131c6bf-0a35-5551-91c9-b5880797546b'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='effect-spore', ability__name='effect-spore', ability__url='https://pokeapi.co/api/v2/ability/27/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('8060dbbf-e5cc-5ed8-b6a8-9c463ae3f1ef'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='paras', base_experience=57, height=3, weight=54, is_default=True, order=80, location_area_encounters='https://pokeapi.co/api/v2/pokemon/46/encounters', species__name='paras', species__url='https://pokeapi.co/api/v2/pokemon-species/46/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/46.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/46.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/46.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/46.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/46.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/46.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('88ca22e3-1cd4-5f0a-bf48-9d97c1b5c2ae'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='effect-spore', ability__name='effect-spore', ability__url='https://pokeapi.co/api/v2/ability/27/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('98bd3314-adad-56ab-aa2b-a0672a6d3e6b'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='dry-skin', ability__name='dry-skin', ability__url='https://pokeapi.co/api/v2/ability/87/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('a336a88b-efcd-55cf-ad50-2a6d8e360a65'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='damp', ability__name='damp', ability__url='https://pokeapi.co/api/v2/ability/6/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('36054888-8e10-578a-b964-a1e6efebf8bf'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='parasect', base_experience=142, height=10, weight=295, is_default=True, order=81, location_area_encounters='https://pokeapi.co/api/v2/pokemon/47/encounters', species__name='parasect', species__url='https://pokeapi.co/api/v2/pokemon-species/47/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/47.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/47.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/47.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/47.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/47.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/47.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('27b0549f-5b75-576c-a114-6dd0da5eafb8'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='effect-spore', ability__name='effect-spore', ability__url='https://pokeapi.co/api/v2/ability/27/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('2cf6b756-5ddf-5068-aad9-54fcaaf7d421'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='dry-skin', ability__name='dry-skin', ability__url='https://pokeapi.co/api/v2/ability/87/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('12414f59-1977-5666-b925-0aadd57ab721'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='damp', ability__name='damp', ability__url='https://pokeapi.co/api/v2/ability/6/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('ae0f5d2b-52f8-5845-8572-d7c586982e02'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='venonat', base_experience=61, height=10, weight=300, is_default=True, order=82, location_area_encounters='https://pokeapi.co/api/v2/pokemon/48/encounters', species__name='venonat', species__url='https://pokeapi.co/api/v2/pokemon-species/48/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/48.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/48.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/48.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/48.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/48.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/48.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ab6ff77e-12c4-56bc-9088-163ad9efa81a'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='compound-eyes', ability__name='compound-eyes', ability__url='https://pokeapi.co/api/v2/ability/14/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f9d695fd-f0be-5026-8488-21ca03ed97c0'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tinted-lens', ability__name='tinted-lens', ability__url='https://pokeapi.co/api/v2/ability/110/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('5fa9eb9e-4404-5f18-b2d6-08574ccec5ab'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('651ee801-9621-5f6a-a42a-18c7cc80c352'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='venomoth', base_experience=158, height=15, weight=125, is_default=True, order=83, location_area_encounters='https://pokeapi.co/api/v2/pokemon/49/encounters', species__name='venomoth', species__url='https://pokeapi.co/api/v2/pokemon-species/49/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/49.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/49.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/49.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/49.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/49.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/49.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('0c1f73e2-c761-5a3e-a8c6-cb4a9530eec4'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shield-dust', ability__name='shield-dust', ability__url='https://pokeapi.co/api/v2/ability/19/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f1577a9f-59c4-50ef-a8c0-141246206842'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tinted-lens', ability__name='tinted-lens', ability__url='https://pokeapi.co/api/v2/ability/110/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('787aa8ec-0fd3-5fcb-8685-ff162d74d87c'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='wonder-skin', ability__name='wonder-skin', ability__url='https://pokeapi.co/api/v2/ability/147/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('5d9b0a1d-62ce-570c-ba61-24557b6f4e68'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='diglett', base_experience=53, height=2, weight=8, is_default=True, order=84, location_area_encounters='https://pokeapi.co/api/v2/pokemon/50/encounters', species__name='diglett', species__url='https://pokeapi.co/api/v2/pokemon-species/50/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/50.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/50.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/50.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/50.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/50.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/50.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('19329e0a-3298-5898-ab1c-db72c228353e'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-veil', ability__name='sand-veil', ability__url='https://pokeapi.co/api/v2/ability/8/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('2c95019b-f568-51bb-a299-cc775e82d6e9'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='arena-trap', ability__name='arena-trap', ability__url='https://pokeapi.co/api/v2/ability/71/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4ab6b24e-230e-558b-8772-0515eeb16855'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-force', ability__name='sand-force', ability__url='https://pokeapi.co/api/v2/ability/159/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))])]\"}, 'id': UUID('fbe105f2-d9bd-41a6-b0cc-7797cd376f10'), 'created_at': datetime.datetime(2025, 4, 2, 10, 31, 10, 493233, tzinfo=datetime.timezone.utc)}\n", + "User 6e530b88-4dec-4a66-913a-98959faf9d4c has registered.\n", + "{'_sa_instance_state': , 'pipeline_run_id': UUID('32976ad1-847f-4c80-8eab-002bc28ba621'), 'pipeline_name': 'pokemon_pipeline', 'pipeline_id': UUID('fd2ed59d-b550-5b05-bbe6-7b708fe12483'), 'status': , 'dataset_id': UUID('dafbc434-f846-5ad8-8f28-143eb0e60ed5'), 'run_info': {'data': \"[Pokemon(id=UUID('996ad860-2a9a-504f-8861-aeafd0b2ae29'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='bulbasaur', base_experience=64, height=7, weight=69, is_default=True, order=1, location_area_encounters='https://pokeapi.co/api/v2/pokemon/1/encounters', species__name='bulbasaur', species__url='https://pokeapi.co/api/v2/pokemon-species/1/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/1.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/1.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/1.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/1.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('d360738e-ac41-58fb-8b93-f46846332c1c'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='overgrow', ability__name='overgrow', ability__url='https://pokeapi.co/api/v2/ability/65/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('512065af-f53c-5b15-8507-7b64dbb5093e'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('59e06cf8-f390-5093-af2e-3685be593a25'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='ivysaur', base_experience=142, height=10, weight=130, is_default=True, order=2, location_area_encounters='https://pokeapi.co/api/v2/pokemon/2/encounters', species__name='ivysaur', species__url='https://pokeapi.co/api/v2/pokemon-species/2/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/2.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/2.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/2.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/2.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/2.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/2.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('93afde85-86ec-544c-b2b1-2d256370d06e'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='overgrow', ability__name='overgrow', ability__url='https://pokeapi.co/api/v2/ability/65/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('273e630a-8472-51bf-ac5a-ef795de497e8'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('391ada15-580c-5baa-b16f-eeb35d9b1122'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='venusaur', base_experience=263, height=20, weight=1000, is_default=True, order=3, location_area_encounters='https://pokeapi.co/api/v2/pokemon/3/encounters', species__name='venusaur', species__url='https://pokeapi.co/api/v2/pokemon-species/3/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/3.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/3.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/3.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/3.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/3.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/3.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('3819dd9b-1cb3-5494-b884-7180a58a3572'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='overgrow', ability__name='overgrow', ability__url='https://pokeapi.co/api/v2/ability/65/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('43f7bedb-cbd4-5bfb-bbfd-78def51410b3'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('22fe83ae-a20f-54fc-b436-cec85c94c5e8'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='charmander', base_experience=62, height=6, weight=85, is_default=True, order=5, location_area_encounters='https://pokeapi.co/api/v2/pokemon/4/encounters', species__name='charmander', species__url='https://pokeapi.co/api/v2/pokemon-species/4/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/4.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/4.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/4.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/4.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/4.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('1f12b15f-aed0-54e7-94b0-e0e2adea3ae7'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='blaze', ability__name='blaze', ability__url='https://pokeapi.co/api/v2/ability/66/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('36c5670c-2c40-5183-bda1-dde186e2b1c8'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='solar-power', ability__name='solar-power', ability__url='https://pokeapi.co/api/v2/ability/94/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b7d55bf4-7057-5113-85c8-141871bf7635'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='charmeleon', base_experience=142, height=11, weight=190, is_default=True, order=6, location_area_encounters='https://pokeapi.co/api/v2/pokemon/5/encounters', species__name='charmeleon', species__url='https://pokeapi.co/api/v2/pokemon-species/5/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/5.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/5.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/5.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/5.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/5.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/5.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('cdf93e52-4606-528c-b58e-ba4906b5ea48'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='blaze', ability__name='blaze', ability__url='https://pokeapi.co/api/v2/ability/66/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('2d4cce3f-02f2-5789-a4c1-f18a7db83d19'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='solar-power', ability__name='solar-power', ability__url='https://pokeapi.co/api/v2/ability/94/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('1883fdfb-249b-58f5-b445-87dff6eabc06'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='charizard', base_experience=267, height=17, weight=905, is_default=True, order=7, location_area_encounters='https://pokeapi.co/api/v2/pokemon/6/encounters', species__name='charizard', species__url='https://pokeapi.co/api/v2/pokemon-species/6/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/6.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/6.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/6.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/6.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/6.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ef5c36b6-8884-5e34-8d9e-f408a00d4fa4'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='blaze', ability__name='blaze', ability__url='https://pokeapi.co/api/v2/ability/66/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('ce5d23d8-74e6-5c2e-b254-6e329475b83b'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='solar-power', ability__name='solar-power', ability__url='https://pokeapi.co/api/v2/ability/94/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('d6ed313e-533a-55a6-aa06-4c00bc132812'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='squirtle', base_experience=63, height=5, weight=90, is_default=True, order=10, location_area_encounters='https://pokeapi.co/api/v2/pokemon/7/encounters', species__name='squirtle', species__url='https://pokeapi.co/api/v2/pokemon-species/7/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/7.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/7.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/7.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/7.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/7.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('35996229-15ee-5ab0-abca-d65b2747e0ad'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='torrent', ability__name='torrent', ability__url='https://pokeapi.co/api/v2/ability/67/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('001f7d2a-3757-503c-a13d-3ba65387e20d'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rain-dish', ability__name='rain-dish', ability__url='https://pokeapi.co/api/v2/ability/44/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('9090025d-5d06-58f1-b79a-3690407024fc'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='wartortle', base_experience=142, height=10, weight=225, is_default=True, order=11, location_area_encounters='https://pokeapi.co/api/v2/pokemon/8/encounters', species__name='wartortle', species__url='https://pokeapi.co/api/v2/pokemon-species/8/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/8.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/8.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/8.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/8.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/8.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/8.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('77ba80b6-60e6-5613-8197-2913e197aafc'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='torrent', ability__name='torrent', ability__url='https://pokeapi.co/api/v2/ability/67/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('9a809923-6b2c-5b95-ac7a-b07ccd521aef'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rain-dish', ability__name='rain-dish', ability__url='https://pokeapi.co/api/v2/ability/44/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('751af8b4-32a7-55bc-9fad-8bfbcbbf4237'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='blastoise', base_experience=265, height=16, weight=855, is_default=True, order=12, location_area_encounters='https://pokeapi.co/api/v2/pokemon/9/encounters', species__name='blastoise', species__url='https://pokeapi.co/api/v2/pokemon-species/9/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/9.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/9.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/9.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/9.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/9.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/9.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('6a3b0015-d7ef-5bca-ab55-790a441dc221'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='torrent', ability__name='torrent', ability__url='https://pokeapi.co/api/v2/ability/67/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8baba911-b7c4-597b-843b-9ffe47aa05ff'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rain-dish', ability__name='rain-dish', ability__url='https://pokeapi.co/api/v2/ability/44/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('305f5e8d-e48d-5c3a-8ce3-446622dd8a8a'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='caterpie', base_experience=39, height=3, weight=29, is_default=True, order=14, location_area_encounters='https://pokeapi.co/api/v2/pokemon/10/encounters', species__name='caterpie', species__url='https://pokeapi.co/api/v2/pokemon-species/10/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/10.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/10.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/10.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/10.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/10.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('b3524870-3a4a-5aa7-bd5c-6f9dda8cf0b8'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shield-dust', ability__name='shield-dust', ability__url='https://pokeapi.co/api/v2/ability/19/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b724fa25-2677-581e-ad56-c970114e0b86'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('a4c08562-50fa-5599-939c-eb6f2a83a362'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='metapod', base_experience=72, height=7, weight=99, is_default=True, order=15, location_area_encounters='https://pokeapi.co/api/v2/pokemon/11/encounters', species__name='metapod', species__url='https://pokeapi.co/api/v2/pokemon-species/11/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/11.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/11.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/11.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/11.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/11.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/11.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('4c149799-e32d-5386-b5dc-7edad26f5f17'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('d35aeaf3-5d1d-535a-a31a-22133ddf5f3d'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='butterfree', base_experience=198, height=11, weight=320, is_default=True, order=16, location_area_encounters='https://pokeapi.co/api/v2/pokemon/12/encounters', species__name='butterfree', species__url='https://pokeapi.co/api/v2/pokemon-species/12/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/12.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/12.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/12.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/12.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/12.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/12.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('e3d83e95-0bfb-54c0-97be-e832ce1ce111'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='compound-eyes', ability__name='compound-eyes', ability__url='https://pokeapi.co/api/v2/ability/14/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('bbd83ff4-0e51-557b-8907-d4da7e90ad5f'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tinted-lens', ability__name='tinted-lens', ability__url='https://pokeapi.co/api/v2/ability/110/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('61c97311-bb14-5679-99fc-98497a701292'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='weedle', base_experience=39, height=3, weight=32, is_default=True, order=17, location_area_encounters='https://pokeapi.co/api/v2/pokemon/13/encounters', species__name='weedle', species__url='https://pokeapi.co/api/v2/pokemon-species/13/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/13.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/13.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/13.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/13.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/13.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/13.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('fd030dd9-c771-5496-be3e-32bb4290fee5'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shield-dust', ability__name='shield-dust', ability__url='https://pokeapi.co/api/v2/ability/19/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b2951b19-99d3-522c-9796-0c4ce63fef48'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('1bb138f7-5f19-587c-8a25-fb174eabf441'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='kakuna', base_experience=72, height=6, weight=100, is_default=True, order=18, location_area_encounters='https://pokeapi.co/api/v2/pokemon/14/encounters', species__name='kakuna', species__url='https://pokeapi.co/api/v2/pokemon-species/14/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/14.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/14.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/14.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/14.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/14.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/14.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('71034555-2791-5d39-bbd7-fb27e35ba183'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('be6c2a5f-4160-5145-8695-c628496b208d'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='beedrill', base_experience=178, height=10, weight=295, is_default=True, order=19, location_area_encounters='https://pokeapi.co/api/v2/pokemon/15/encounters', species__name='beedrill', species__url='https://pokeapi.co/api/v2/pokemon-species/15/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/15.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/15.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/15.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/15.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/15.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/15.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('4444c884-50e1-5a94-bdab-60b6f1f7d9ff'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='swarm', ability__name='swarm', ability__url='https://pokeapi.co/api/v2/ability/68/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4a398ff7-36e7-518c-a590-fa6714bb2d96'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sniper', ability__name='sniper', ability__url='https://pokeapi.co/api/v2/ability/97/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('7dbed579-ec83-5f9b-8aa3-1c40e858acfc'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pidgey', base_experience=50, height=3, weight=18, is_default=True, order=21, location_area_encounters='https://pokeapi.co/api/v2/pokemon/16/encounters', species__name='pidgey', species__url='https://pokeapi.co/api/v2/pokemon-species/16/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/16.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/16.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/16.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/16.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/16.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/16.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('5b544a4d-56e8-5c0d-bca8-9fc961b96e45'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('934e0468-4466-5d68-b634-9bd7df0f4303'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tangled-feet', ability__name='tangled-feet', ability__url='https://pokeapi.co/api/v2/ability/77/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('cf35c20b-8c40-5714-9d2c-063ee7a589de'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='big-pecks', ability__name='big-pecks', ability__url='https://pokeapi.co/api/v2/ability/145/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('bcc896de-3c61-523e-973c-052f16456e28'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pidgeotto', base_experience=122, height=11, weight=300, is_default=True, order=22, location_area_encounters='https://pokeapi.co/api/v2/pokemon/17/encounters', species__name='pidgeotto', species__url='https://pokeapi.co/api/v2/pokemon-species/17/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/17.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/17.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/17.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/17.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/17.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/17.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ed00b802-ae08-5bda-afc4-4bdea362e350'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('3f2fedce-427c-518d-aaa2-03a33c31694e'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tangled-feet', ability__name='tangled-feet', ability__url='https://pokeapi.co/api/v2/ability/77/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b7f6f91d-14da-502d-ae03-65a5a8a2bfa0'), created_at=1743589870290, updated_at=1743589870290, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='big-pecks', ability__name='big-pecks', ability__url='https://pokeapi.co/api/v2/ability/145/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('77b34e74-5631-5a71-b8ce-97b9d6bab10a'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pidgeot', base_experience=216, height=15, weight=395, is_default=True, order=23, location_area_encounters='https://pokeapi.co/api/v2/pokemon/18/encounters', species__name='pidgeot', species__url='https://pokeapi.co/api/v2/pokemon-species/18/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/18.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/18.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/18.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/18.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/18.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/18.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('735c1b83-4982-502e-836c-7d34cec75306'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f67c2001-2401-516b-955c-a2c7f16b8f20'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tangled-feet', ability__name='tangled-feet', ability__url='https://pokeapi.co/api/v2/ability/77/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('99506d47-e3fc-51f3-b2d9-3ce08125b649'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='big-pecks', ability__name='big-pecks', ability__url='https://pokeapi.co/api/v2/ability/145/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('9d58db4d-28b7-56fc-9b12-db9a3e9d0769'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='rattata', base_experience=51, height=3, weight=35, is_default=True, order=25, location_area_encounters='https://pokeapi.co/api/v2/pokemon/19/encounters', species__name='rattata', species__url='https://pokeapi.co/api/v2/pokemon-species/19/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/19.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/19.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/19.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/19.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/19.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/19.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('cb0e1050-2912-5c94-9ee1-3c58458d4dfe'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('00f22cef-5d6f-51ef-af3c-bc19ca4247b0'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='guts', ability__name='guts', ability__url='https://pokeapi.co/api/v2/ability/62/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('98ce00f0-da2c-5645-abf3-4ee0f974c36e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('6fea451e-90db-5366-bbde-9a65b83f8f64'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='raticate', base_experience=145, height=7, weight=185, is_default=True, order=27, location_area_encounters='https://pokeapi.co/api/v2/pokemon/20/encounters', species__name='raticate', species__url='https://pokeapi.co/api/v2/pokemon-species/20/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/20.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/20.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/20.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/20.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/20.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/20.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('45634545-1e1e-5d9c-8543-6530187e2699'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('9740a0d5-2273-5ec4-8565-d1524b6e8365'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='guts', ability__name='guts', ability__url='https://pokeapi.co/api/v2/ability/62/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('411137ac-2a2c-5fa1-bc7a-ad0551a425ce'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('0df2c324-4b3b-5e4b-8574-770c7c601dc4'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='spearow', base_experience=52, height=3, weight=20, is_default=True, order=30, location_area_encounters='https://pokeapi.co/api/v2/pokemon/21/encounters', species__name='spearow', species__url='https://pokeapi.co/api/v2/pokemon-species/21/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/21.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/21.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/21.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/21.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/21.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/21.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ffe8f785-70e7-506b-8c4a-729c6ee4dc15'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b0a2b69b-401c-55bb-b7b3-eb868dd201b0'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sniper', ability__name='sniper', ability__url='https://pokeapi.co/api/v2/ability/97/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('05596e20-ebb9-571a-9f7c-250cbacfb499'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='fearow', base_experience=155, height=12, weight=380, is_default=True, order=31, location_area_encounters='https://pokeapi.co/api/v2/pokemon/22/encounters', species__name='fearow', species__url='https://pokeapi.co/api/v2/pokemon-species/22/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/22.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/22.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/22.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/22.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/22.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/22.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('48b617d8-1a5e-504c-9925-52b464889358'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='keen-eye', ability__name='keen-eye', ability__url='https://pokeapi.co/api/v2/ability/51/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('69814b34-3d5a-5420-86fd-d150b5d82be3'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sniper', ability__name='sniper', ability__url='https://pokeapi.co/api/v2/ability/97/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('32b736a1-2bed-5f62-8131-c3dc9a2a33c7'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='ekans', base_experience=58, height=20, weight=69, is_default=True, order=32, location_area_encounters='https://pokeapi.co/api/v2/pokemon/23/encounters', species__name='ekans', species__url='https://pokeapi.co/api/v2/pokemon-species/23/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/23.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/23.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/23.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/23.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/23.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/23.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('6f7917b2-6a92-5856-8619-b9d7883aec44'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='intimidate', ability__name='intimidate', ability__url='https://pokeapi.co/api/v2/ability/22/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('3cb5235c-5248-5959-b783-8927a0d1c0c0'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4ab0eafa-31a9-5462-8d11-2d6a2818af5e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='unnerve', ability__name='unnerve', ability__url='https://pokeapi.co/api/v2/ability/127/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('29be4ef0-91eb-512b-8f83-360b6db38a83'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='arbok', base_experience=157, height=35, weight=650, is_default=True, order=33, location_area_encounters='https://pokeapi.co/api/v2/pokemon/24/encounters', species__name='arbok', species__url='https://pokeapi.co/api/v2/pokemon-species/24/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/24.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/24.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/24.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/24.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/24.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/24.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('2f62613d-2423-5b17-8783-db626bac3c67'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='intimidate', ability__name='intimidate', ability__url='https://pokeapi.co/api/v2/ability/22/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('3083da40-f91d-50e7-b1fe-17648d64707e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shed-skin', ability__name='shed-skin', ability__url='https://pokeapi.co/api/v2/ability/61/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('110064e1-278f-5faa-8662-6e2d16407d7c'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='unnerve', ability__name='unnerve', ability__url='https://pokeapi.co/api/v2/ability/127/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('46f64ca6-6094-51fc-bbbe-34e3333c5388'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='pikachu', base_experience=112, height=4, weight=60, is_default=True, order=35, location_area_encounters='https://pokeapi.co/api/v2/pokemon/25/encounters', species__name='pikachu', species__url='https://pokeapi.co/api/v2/pokemon-species/25/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/25.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/25.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/25.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/25.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/25.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('471d16de-c686-5928-8ba2-17b144d8197b'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='static', ability__name='static', ability__url='https://pokeapi.co/api/v2/ability/9/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('129d6789-1b19-5ab4-8c4a-3dfd6e7e8d6d'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='lightning-rod', ability__name='lightning-rod', ability__url='https://pokeapi.co/api/v2/ability/31/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('8df6e0fb-0d35-5fd6-831a-7e5b9ad2457a'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='raichu', base_experience=243, height=8, weight=300, is_default=True, order=51, location_area_encounters='https://pokeapi.co/api/v2/pokemon/26/encounters', species__name='raichu', species__url='https://pokeapi.co/api/v2/pokemon-species/26/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/26.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/26.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/26.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/26.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/26.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/26.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('32588d5b-5b5f-5d6e-80bb-4963610df285'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='static', ability__name='static', ability__url='https://pokeapi.co/api/v2/ability/9/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('bb538a79-d6e4-5f19-b306-1ac11492d68e'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='lightning-rod', ability__name='lightning-rod', ability__url='https://pokeapi.co/api/v2/ability/31/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('5151e75a-9d7d-5897-be85-aaa96757564b'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='sandshrew', base_experience=60, height=6, weight=120, is_default=True, order=53, location_area_encounters='https://pokeapi.co/api/v2/pokemon/27/encounters', species__name='sandshrew', species__url='https://pokeapi.co/api/v2/pokemon-species/27/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/27.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/27.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/27.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/27.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/27.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/27.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('4c05ce00-4f47-5699-b1b7-95782f5fbd50'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-veil', ability__name='sand-veil', ability__url='https://pokeapi.co/api/v2/ability/8/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('85231b6d-3e84-5fb8-a558-e37bd514c5e6'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-rush', ability__name='sand-rush', ability__url='https://pokeapi.co/api/v2/ability/146/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('21f6a510-8fff-5bed-9d0e-df7b2ca28db1'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='sandslash', base_experience=158, height=10, weight=295, is_default=True, order=55, location_area_encounters='https://pokeapi.co/api/v2/pokemon/28/encounters', species__name='sandslash', species__url='https://pokeapi.co/api/v2/pokemon-species/28/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/28.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/28.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/28.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/28.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/28.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/28.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('3425a5a5-ccb5-5b9d-8a7e-7e4976414787'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-veil', ability__name='sand-veil', ability__url='https://pokeapi.co/api/v2/ability/8/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('cb945cf2-8665-5dc6-8783-1d1df279e466'), created_at=1743589870291, updated_at=1743589870291, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-rush', ability__name='sand-rush', ability__url='https://pokeapi.co/api/v2/ability/146/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('3eee96fe-b265-5e36-8d78-b2d50a9ac563'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoran-f', base_experience=55, height=4, weight=70, is_default=True, order=57, location_area_encounters='https://pokeapi.co/api/v2/pokemon/29/encounters', species__name='nidoran-f', species__url='https://pokeapi.co/api/v2/pokemon-species/29/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/29.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/29.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/29.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/29.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/29.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/29.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ef422d60-1aa3-5cf7-a22e-5bfb79687046'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b3242644-724c-56a8-9513-1c926c3a6568'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('22c86762-285a-5c3c-810d-ef7547e45b2a'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('720073c2-6984-53fa-9546-b893e83e0f62'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidorina', base_experience=128, height=8, weight=200, is_default=True, order=58, location_area_encounters='https://pokeapi.co/api/v2/pokemon/30/encounters', species__name='nidorina', species__url='https://pokeapi.co/api/v2/pokemon-species/30/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/30.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/30.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/30.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/30.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/30.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/30.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('21508e18-567c-5fa5-9334-5124085143b0'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('155716a6-d261-5970-8215-8227867fc042'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('7f40a953-9652-5afb-9b72-74e9f1738dd6'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b0526112-ddde-5dbf-b887-9b6f93557007'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoqueen', base_experience=253, height=13, weight=600, is_default=True, order=59, location_area_encounters='https://pokeapi.co/api/v2/pokemon/31/encounters', species__name='nidoqueen', species__url='https://pokeapi.co/api/v2/pokemon-species/31/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/31.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/31.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/31.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/31.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/31.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/31.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('e8d05664-b5f1-5abf-be6b-0df01b841703'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('9a57254f-009d-5ccb-9405-4f75166e9414'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('011b58cb-8682-5e66-97f8-54978b5db782'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sheer-force', ability__name='sheer-force', ability__url='https://pokeapi.co/api/v2/ability/125/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b85b4ff7-2f5e-5d5d-bcda-728e00ad61de'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoran-m', base_experience=55, height=5, weight=90, is_default=True, order=60, location_area_encounters='https://pokeapi.co/api/v2/pokemon/32/encounters', species__name='nidoran-m', species__url='https://pokeapi.co/api/v2/pokemon-species/32/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/32.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/32.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/32.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/32.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/32.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/32.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('d0e79cad-3ed0-525d-ab90-21c35a20af65'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8ad090be-e336-5e59-acb2-6b7de5e6c5eb'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('1d006cfb-8e53-5fc9-a5d8-ca49d931cf43'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('7561fe4e-6ffd-5631-96d6-cf89fdadba83'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidorino', base_experience=128, height=9, weight=195, is_default=True, order=61, location_area_encounters='https://pokeapi.co/api/v2/pokemon/33/encounters', species__name='nidorino', species__url='https://pokeapi.co/api/v2/pokemon-species/33/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/33.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/33.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/33.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/33.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/33.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/33.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('79638c6a-9208-5d8f-8d31-b462751737a4'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('69d148b8-fdb0-52c3-ac5e-b2e89f308c37'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4f9636f7-f85b-5e65-990d-71a7daf65e5f'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='hustle', ability__name='hustle', ability__url='https://pokeapi.co/api/v2/ability/55/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('ae5a160a-ca64-5557-a0d8-1fdd610d83e1'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='nidoking', base_experience=253, height=14, weight=620, is_default=True, order=62, location_area_encounters='https://pokeapi.co/api/v2/pokemon/34/encounters', species__name='nidoking', species__url='https://pokeapi.co/api/v2/pokemon-species/34/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/34.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/34.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/34.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/34.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/34.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/34.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('881a1768-9f0e-524a-a9ae-91c36c82f628'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='poison-point', ability__name='poison-point', ability__url='https://pokeapi.co/api/v2/ability/38/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8fca3f8a-551a-551d-b63a-13147cce4abe'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='rivalry', ability__name='rivalry', ability__url='https://pokeapi.co/api/v2/ability/79/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('d4262044-0822-5d3c-abba-840fc42d70a7'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sheer-force', ability__name='sheer-force', ability__url='https://pokeapi.co/api/v2/ability/125/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('5429db33-2d2c-51e4-9b96-9918a6a67f07'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='clefairy', base_experience=113, height=6, weight=75, is_default=True, order=64, location_area_encounters='https://pokeapi.co/api/v2/pokemon/35/encounters', species__name='clefairy', species__url='https://pokeapi.co/api/v2/pokemon-species/35/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/35.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/35.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/35.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/35.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/35.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('c9917294-ce9e-5de9-b07a-05b84bbc01ad'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('bebcbe23-266e-5f18-b074-027c259e1c0e'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='magic-guard', ability__name='magic-guard', ability__url='https://pokeapi.co/api/v2/ability/98/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('5381e562-8472-56f6-a7a1-30d5023363ef'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='friend-guard', ability__name='friend-guard', ability__url='https://pokeapi.co/api/v2/ability/132/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('214f116d-a5a3-5203-867d-28bcad2b6c1a'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='clefable', base_experience=242, height=13, weight=400, is_default=True, order=65, location_area_encounters='https://pokeapi.co/api/v2/pokemon/36/encounters', species__name='clefable', species__url='https://pokeapi.co/api/v2/pokemon-species/36/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/36.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/36.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/36.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/36.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/36.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/36.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('9991818f-ceee-5104-b9a8-0421f072b676'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8a24270a-dc11-5a34-8351-f157dd5911fa'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='magic-guard', ability__name='magic-guard', ability__url='https://pokeapi.co/api/v2/ability/98/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('c8316e39-3b1a-5237-92fc-f84d9583f49e'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='unaware', ability__name='unaware', ability__url='https://pokeapi.co/api/v2/ability/109/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('c18d0fc0-d829-5009-a349-094ea30c386b'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='vulpix', base_experience=60, height=6, weight=99, is_default=True, order=66, location_area_encounters='https://pokeapi.co/api/v2/pokemon/37/encounters', species__name='vulpix', species__url='https://pokeapi.co/api/v2/pokemon-species/37/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/37.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/37.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/37.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/37.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/37.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/37.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('8d865c07-941e-5bfe-adea-6184661031b0'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='flash-fire', ability__name='flash-fire', ability__url='https://pokeapi.co/api/v2/ability/18/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('5fb6221c-75b3-5222-bc77-ac49d8fa9b4d'), created_at=1743589870292, updated_at=1743589870292, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='drought', ability__name='drought', ability__url='https://pokeapi.co/api/v2/ability/70/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('c3205bf1-c929-5b45-af5a-42b59ab87391'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='ninetales', base_experience=177, height=11, weight=199, is_default=True, order=68, location_area_encounters='https://pokeapi.co/api/v2/pokemon/38/encounters', species__name='ninetales', species__url='https://pokeapi.co/api/v2/pokemon-species/38/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/38.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/38.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/38.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/38.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/38.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/38.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('43809d94-1ece-5f7e-a900-ac1e0a684166'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='flash-fire', ability__name='flash-fire', ability__url='https://pokeapi.co/api/v2/ability/18/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('427c9248-d779-5d63-83e4-6fb40957b9fb'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='drought', ability__name='drought', ability__url='https://pokeapi.co/api/v2/ability/70/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('6863109a-0444-5f87-b018-66483cb30f22'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='jigglypuff', base_experience=95, height=5, weight=55, is_default=True, order=71, location_area_encounters='https://pokeapi.co/api/v2/pokemon/39/encounters', species__name='jigglypuff', species__url='https://pokeapi.co/api/v2/pokemon-species/39/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/39.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/39.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/39.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/39.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/39.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/39.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('9705c164-9623-5d2b-86cb-8fdeb8faecae'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('d08857dd-ea33-5c1c-8b21-62f09f082a54'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='competitive', ability__name='competitive', ability__url='https://pokeapi.co/api/v2/ability/172/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('a5f63db1-5dad-59f3-b73a-ae9c518a5fd8'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='friend-guard', ability__name='friend-guard', ability__url='https://pokeapi.co/api/v2/ability/132/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b4ab3922-2b8d-5d9c-b20a-e34bbc64c01f'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='wigglytuff', base_experience=218, height=10, weight=120, is_default=True, order=72, location_area_encounters='https://pokeapi.co/api/v2/pokemon/40/encounters', species__name='wigglytuff', species__url='https://pokeapi.co/api/v2/pokemon-species/40/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/40.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/40.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/40.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/40.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/40.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/40.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('0cea5b29-3211-5507-b636-5f06acac944a'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='cute-charm', ability__name='cute-charm', ability__url='https://pokeapi.co/api/v2/ability/56/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('20b7e547-3e02-52c8-bf35-71db2211fd8e'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='competitive', ability__name='competitive', ability__url='https://pokeapi.co/api/v2/ability/172/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('74bd55b9-cefd-51b3-a694-5d7fcfa27253'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='frisk', ability__name='frisk', ability__url='https://pokeapi.co/api/v2/ability/119/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('08d2a401-c6d0-56d0-bfca-d8fe47a0ccde'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='zubat', base_experience=49, height=8, weight=75, is_default=True, order=73, location_area_encounters='https://pokeapi.co/api/v2/pokemon/41/encounters', species__name='zubat', species__url='https://pokeapi.co/api/v2/pokemon-species/41/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/41.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/41.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/41.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/41.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/41.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/41.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('1d966ce1-c9c2-53c2-928d-050824c3775b'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='inner-focus', ability__name='inner-focus', ability__url='https://pokeapi.co/api/v2/ability/39/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f43394e6-2ae2-54f6-a65d-d8dcc45a1ad2'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='infiltrator', ability__name='infiltrator', ability__url='https://pokeapi.co/api/v2/ability/151/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('ba293c61-ad33-57b9-9671-f3319f57d789'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='golbat', base_experience=159, height=16, weight=550, is_default=True, order=74, location_area_encounters='https://pokeapi.co/api/v2/pokemon/42/encounters', species__name='golbat', species__url='https://pokeapi.co/api/v2/pokemon-species/42/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/42.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/42.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/42.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/42.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/42.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/42.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('c24d15b2-4e44-563a-879e-5b4485a96210'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='inner-focus', ability__name='inner-focus', ability__url='https://pokeapi.co/api/v2/ability/39/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8d634c3d-c86a-5104-b852-55c21fc124e5'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='infiltrator', ability__name='infiltrator', ability__url='https://pokeapi.co/api/v2/ability/151/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('45fae334-63fa-5064-9e45-024ff9e0095c'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='oddish', base_experience=64, height=5, weight=54, is_default=True, order=76, location_area_encounters='https://pokeapi.co/api/v2/pokemon/43/encounters', species__name='oddish', species__url='https://pokeapi.co/api/v2/pokemon-species/43/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/43.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/43.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/43.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/43.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/43.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/43.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('612865f3-ed54-5874-8056-21d5a4b78d23'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('b0312d9e-7551-57f1-afb2-0e7d52de5e33'), created_at=1743589870293, updated_at=1743589870293, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('fce23375-fdd4-5b30-8e57-a401e5265ba1'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='gloom', base_experience=138, height=8, weight=86, is_default=True, order=77, location_area_encounters='https://pokeapi.co/api/v2/pokemon/44/encounters', species__name='gloom', species__url='https://pokeapi.co/api/v2/pokemon-species/44/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/44.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/44.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/44.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/44.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/44.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/44.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('359030a2-d9c5-5f68-8c00-86b4749df755'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('212ac8d0-f5dc-5af6-915e-7558bff10828'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='stench', ability__name='stench', ability__url='https://pokeapi.co/api/v2/ability/1/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('b5a095ae-2fa5-5416-a5c3-4b3e8a7d0f9c'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='vileplume', base_experience=245, height=12, weight=186, is_default=True, order=78, location_area_encounters='https://pokeapi.co/api/v2/pokemon/45/encounters', species__name='vileplume', species__url='https://pokeapi.co/api/v2/pokemon-species/45/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/45.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/45.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/45.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/45.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/45.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/45.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('9fdae376-8140-5e69-b1f2-69aa78c813b2'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='chlorophyll', ability__name='chlorophyll', ability__url='https://pokeapi.co/api/v2/ability/34/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('8131c6bf-0a35-5551-91c9-b5880797546b'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='effect-spore', ability__name='effect-spore', ability__url='https://pokeapi.co/api/v2/ability/27/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('8060dbbf-e5cc-5ed8-b6a8-9c463ae3f1ef'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='paras', base_experience=57, height=3, weight=54, is_default=True, order=80, location_area_encounters='https://pokeapi.co/api/v2/pokemon/46/encounters', species__name='paras', species__url='https://pokeapi.co/api/v2/pokemon-species/46/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/46.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/46.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/46.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/46.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/46.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/46.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('88ca22e3-1cd4-5f0a-bf48-9d97c1b5c2ae'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='effect-spore', ability__name='effect-spore', ability__url='https://pokeapi.co/api/v2/ability/27/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('98bd3314-adad-56ab-aa2b-a0672a6d3e6b'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='dry-skin', ability__name='dry-skin', ability__url='https://pokeapi.co/api/v2/ability/87/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('a336a88b-efcd-55cf-ad50-2a6d8e360a65'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='damp', ability__name='damp', ability__url='https://pokeapi.co/api/v2/ability/6/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('36054888-8e10-578a-b964-a1e6efebf8bf'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='parasect', base_experience=142, height=10, weight=295, is_default=True, order=81, location_area_encounters='https://pokeapi.co/api/v2/pokemon/47/encounters', species__name='parasect', species__url='https://pokeapi.co/api/v2/pokemon-species/47/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/47.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/47.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/47.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/47.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/47.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/47.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('27b0549f-5b75-576c-a114-6dd0da5eafb8'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='effect-spore', ability__name='effect-spore', ability__url='https://pokeapi.co/api/v2/ability/27/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('2cf6b756-5ddf-5068-aad9-54fcaaf7d421'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='dry-skin', ability__name='dry-skin', ability__url='https://pokeapi.co/api/v2/ability/87/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('12414f59-1977-5666-b925-0aadd57ab721'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='damp', ability__name='damp', ability__url='https://pokeapi.co/api/v2/ability/6/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('ae0f5d2b-52f8-5845-8572-d7c586982e02'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='venonat', base_experience=61, height=10, weight=300, is_default=True, order=82, location_area_encounters='https://pokeapi.co/api/v2/pokemon/48/encounters', species__name='venonat', species__url='https://pokeapi.co/api/v2/pokemon-species/48/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/48.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/48.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/48.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/48.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/48.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/48.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('ab6ff77e-12c4-56bc-9088-163ad9efa81a'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='compound-eyes', ability__name='compound-eyes', ability__url='https://pokeapi.co/api/v2/ability/14/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f9d695fd-f0be-5026-8488-21ca03ed97c0'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tinted-lens', ability__name='tinted-lens', ability__url='https://pokeapi.co/api/v2/ability/110/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('5fa9eb9e-4404-5f18-b2d6-08574ccec5ab'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='run-away', ability__name='run-away', ability__url='https://pokeapi.co/api/v2/ability/50/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('651ee801-9621-5f6a-a42a-18c7cc80c352'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='venomoth', base_experience=158, height=15, weight=125, is_default=True, order=83, location_area_encounters='https://pokeapi.co/api/v2/pokemon/49/encounters', species__name='venomoth', species__url='https://pokeapi.co/api/v2/pokemon-species/49/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/49.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/49.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/49.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/49.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/49.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/49.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('0c1f73e2-c761-5a3e-a8c6-cb4a9530eec4'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='shield-dust', ability__name='shield-dust', ability__url='https://pokeapi.co/api/v2/ability/19/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('f1577a9f-59c4-50ef-a8c0-141246206842'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='tinted-lens', ability__name='tinted-lens', ability__url='https://pokeapi.co/api/v2/ability/110/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('787aa8ec-0fd3-5fcb-8685-ff162d74d87c'), created_at=1743589870294, updated_at=1743589870294, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='wonder-skin', ability__name='wonder-skin', ability__url='https://pokeapi.co/api/v2/ability/147/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))]), Pokemon(id=UUID('5d9b0a1d-62ce-570c-ba61-24557b6f4e68'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemon', name='diglett', base_experience=53, height=2, weight=8, is_default=True, order=84, location_area_encounters='https://pokeapi.co/api/v2/pokemon/50/encounters', species__name='diglett', species__url='https://pokeapi.co/api/v2/pokemon-species/50/', cries__latest='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/50.ogg', cries__legacy='https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/50.ogg', sprites__front_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/50.png', sprites__front_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/50.png', sprites__back_default='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/50.png', sprites__back_shiny='https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/50.png', is_type=Pokemons(id=UUID('2a9482f8-3b89-4de8-9021-3c0b55c01712'), created_at=1743589870289, updated_at=1743589870289, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Pokemons', name='Pokemons', have=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), abilities=[PokemonAbility(id=UUID('19329e0a-3298-5898-ab1c-db72c228353e'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-veil', ability__name='sand-veil', ability__url='https://pokeapi.co/api/v2/ability/8/', is_hidden=False, slot=1, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('2c95019b-f568-51bb-a299-cc775e82d6e9'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='arena-trap', ability__name='arena-trap', ability__url='https://pokeapi.co/api/v2/ability/71/', is_hidden=False, slot=2, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities')), PokemonAbility(id=UUID('4ab6b24e-230e-558b-8772-0515eeb16855'), created_at=1743589870295, updated_at=1743589870295, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['ability__name']}, type='PokemonAbility', name='sand-force', ability__name='sand-force', ability__url='https://pokeapi.co/api/v2/ability/159/', is_hidden=True, slot=3, is_type=Abilities(id=UUID('bdfe2120-da1d-45f2-adf2-1bd9de3d8d1c'), created_at=1743589870288, updated_at=1743589870288, ontology_valid=False, version=1, topological_rank=0, metadata={'index_fields': ['name']}, type='Abilities', name='Abilities'))])]\"}, 'id': UUID('0a5993fe-7c2f-4fbb-b082-32ff549a9ba4'), 'created_at': datetime.datetime(2025, 4, 2, 10, 31, 14, 16875, tzinfo=datetime.timezone.utc)}\n", + "Done\n" + ] + } + ], "source": [ "from cognee.modules.pipelines.tasks.Task import Task\n", "from cognee.tasks.storage import add_data_points\n", "from cognee.modules.pipelines import run_tasks\n", "\n", - "tasks = [Task(add_data_points, task_config={\"batch_size\": 50})]\n", - "results = run_tasks(\n", + "tasks = [Task(add_data_points)]\n", + "pipeline_run = run_tasks(\n", " tasks=tasks,\n", " data=pokemons,\n", " dataset_id=uuid5(NAMESPACE_OID, \"Pokemon\"),\n", " pipeline_name='pokemon_pipeline',\n", ")\n", "\n", - "async for result in results:\n", - " print(result)\n", + "async for run_info in pipeline_run:\n", + " print(run_info.__dict__)\n", "print(\"Done\")\n" - ], - "id": "ffa12fc1f5350d95", - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:run_tasks(tasks: [Task], data):Pipeline run started: `fd2ed59d-b550-5b05-bbe6-7b708fe12483`INFO:run_tasks(tasks: [Task], data):Coroutine task started: `add_data_points`" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "User d347ea85-e512-4cae-b9d7-496fe1745424 has registered.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/lazar/PycharmProjects/cognee/cognee/infrastructure/databases/vector/pgvector/PGVectorAdapter.py:79: SAWarning: This declarative base already contains a class with the same class name and module name as cognee.infrastructure.databases.vector.pgvector.PGVectorAdapter.PGVectorDataPoint, and will be replaced in the string-lookup table.\n", - " class PGVectorDataPoint(Base):\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"/Users/lazar/PycharmProjects/cognee/cognee/infrastructure/databases/vector/pgvector/PGVectorAdapter.py:113: SAWarning: This declarative base already contains a class with the same class name and module name as cognee.infrastructure.databases.vector.pgvector.PGVectorAdapter.PGVectorDataPoint, and will be replaced in the string-lookup table.\n", - " class PGVectorDataPoint(Base):\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 8, column: 16, offset: 335} for query: '\\n UNWIND $nodes AS node\\n MERGE (n {id: node.node_id})\\n ON CREATE SET n += node.properties, n.updated_at = timestamp()\\n ON MATCH SET n += node.properties, n.updated_at = timestamp()\\n WITH n, node.node_id AS label\\n CALL apoc.create.addLabels(n, [label]) YIELD node AS labeledNode\\n RETURN ID(labeledNode) AS internal_id, labeledNode.id AS nodeId\\n 'WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 1, column: 18, offset: 17} for query: 'MATCH (n) RETURN ID(n) AS id, labels(n) AS labels, properties(n) AS properties'WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 3, column: 16, offset: 43} for query: '\\n MATCH (n)-[r]->(m)\\n RETURN ID(n) AS source, ID(m) AS target, TYPE(r) AS type, properties(r) AS properties\\n 'WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 3, column: 33, offset: 60} for query: '\\n MATCH (n)-[r]->(m)\\n RETURN ID(n) AS source, ID(m) AS target, TYPE(r) AS type, properties(r) AS properties\\n 'INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:run_tasks(tasks: [Task], data):Coroutine task completed: `add_data_points`INFO:run_tasks(tasks: [Task], data):Pipeline run completed: `fd2ed59d-b550-5b05-bbe6-7b708fe12483`" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Done\n" - ] - } - ], - "execution_count": 14 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "e0d98d9832a2797a", + "metadata": {}, "source": [ "## Search Pokémon Data\n", "### Execute a search query using Cognee.\n" - ], - "id": "e0d98d9832a2797a" + ] }, { + "cell_type": "code", + "execution_count": 11, + "id": "bb2476b6b0c2aff", "metadata": { "ExecuteTime": { "end_time": "2025-03-04T12:00:02.878871Z", "start_time": "2025-03-04T11:59:59.571965Z" } }, - "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Search results:\n", + "Pokemons have abilities. Examples of Pokemons include: \n", + "- nidorino (ability: poison-point) \n", + "- nidoqueen (ability: poison-point) \n", + "- ninetales (ability: flash-fire) \n", + "- vulpix (ability: flash-fire).\n" + ] + } + ], "source": [ "from cognee.api.v1.search import SearchType\n", "\n", @@ -481,41 +457,20 @@ "print(\"Search results:\")\n", "for result_text in search_results:\n", " print(result_text)" - ], - "id": "bb2476b6b0c2aff", - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 1, column: 18, offset: 17} for query: 'MATCH (n) RETURN ID(n) AS id, labels(n) AS labels, properties(n) AS properties'WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 3, column: 16, offset: 43} for query: '\\n MATCH (n)-[r]->(m)\\n RETURN ID(n) AS source, ID(m) AS target, TYPE(r) AS type, properties(r) AS properties\\n 'WARNING:neo4j.notifications:Received notification from DBMS server: {severity: WARNING} {code: Neo.ClientNotification.Statement.FeatureDeprecationWarning} {category: DEPRECATION} {title: This feature is deprecated and will be removed in future versions.} {description: The query used a deprecated function: `id`.} {position: line: 3, column: 33, offset: 60} for query: '\\n MATCH (n)-[r]->(m)\\n RETURN ID(n) AS source, ID(m) AS target, TYPE(r) AS type, properties(r) AS properties\\n 'INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\u001B[92m13:00:02 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n", - "LiteLLM completion() model= gpt-4o-mini; provider = openaiINFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-4o-mini; provider = openai" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Search results:\n", - "The Pokemons mentioned are: golbat, jigglypuff, raichu, vulpix, and pikachu.\n" - ] - } - ], - "execution_count": 15 + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "", - "id": "a4c2d3e9c15b017" + "id": "a4c2d3e9c15b017", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -528,7 +483,8 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "version": "3.8.5" + "pygments_lexer": "ipython3", + "version": "3.11.8" } }, "nbformat": 4,