Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
chore: linting
Signed-off-by: Alaeddine Abdessalem <[email protected]>
  • Loading branch information
alaeddine-13 committed Aug 10, 2023
commit bc3e1d66fe4d3f8a193858f7b208604620744d9e
16 changes: 10 additions & 6 deletions docarray/utils/create_dynamic_doc_class.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from docarray import DocList, BaseDoc
from docarray.typing import AnyTensor
from typing import Any, Dict, List, Optional, Type, Union

from pydantic import create_model
from pydantic.fields import FieldInfo
from typing import Dict, List, Any, Union, Optional, Type
from docarray.utils._internal._typing import safe_issubclass

from docarray import BaseDoc, DocList
from docarray.typing import AnyTensor
from docarray.utils._internal._typing import safe_issubclass

RESERVED_KEYS = [
'type',
Expand Down Expand Up @@ -190,7 +191,7 @@ def _get_field_type_from_schema(
cached_models=cached_models,
is_tensor=tensor_shape is not None,
num_recursions=num_recursions + 1,
definitions=definitions
definitions=definitions,
)
else:
if num_recursions > 0:
Expand All @@ -205,7 +206,10 @@ def _get_field_type_from_schema(


def create_base_doc_from_schema(
schema: Dict[str, Any], base_doc_name: str, cached_models: Optional[Dict] = None, definitions: Optional[Dict] = None,
schema: Dict[str, Any],
base_doc_name: str,
cached_models: Optional[Dict] = None,
definitions: Optional[Dict] = None,
) -> Type:
"""
Dynamically create a `BaseDoc` subclass from a `schema` of another `BaseDoc`.
Expand Down
15 changes: 8 additions & 7 deletions tests/units/util/test_create_dynamic_code_class.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
from typing import Any, Dict, List, Optional, Union

import numpy as np
import pytest
from typing import List, Dict, Union, Any
from pydantic import Field

from docarray import BaseDoc, DocList
from docarray.documents import TextDoc
from docarray.typing import AnyTensor, ImageUrl
from docarray.utils.create_dynamic_doc_class import (
create_base_doc_from_schema,
create_pure_python_type_model,
)
import numpy as np
from typing import Optional
from docarray import BaseDoc, DocList
from docarray.typing import AnyTensor, ImageUrl
from docarray.documents import TextDoc
from pydantic import Field


@pytest.mark.parametrize('transformation', ['proto', 'json'])
Expand Down