Module brevettiai.platform.models.tag

Expand source code
from pydantic import Field, BaseModel
from typing import Optional, List
from uuid import uuid4


class Tag(BaseModel):
    """
    Model defining a Tag on the Brevetti platform
    """
    name: str
    id: str = Field(default_factory=lambda: str(uuid4()))
    parent_id: Optional[str] = Field(default=None, alias="parentId")
    created: str = ""
    children: List['Tag'] = Field(default_factory=list)

    class Config:
        allow_population_by_field_name = True

    @staticmethod
    def find(tree, key, value):
        items = tree.children if isinstance(tree, Tag) else tree
        for item in items:
            if getattr(item, key) == value:
                yield item
            else:
                yield from Tag.find(item, key, value)

    @staticmethod
    def find_path(tree, key, value, path=()):
        items = tree.children if isinstance(tree, Tag) else tree
        for item in items:
            if getattr(item, key) == value:
                yield (*path, item)
            else:
                yield from Tag.find_path(item, key, value, (*path, item))

Tag.update_forward_refs()

Classes

class Tag (**data: Any)

Model defining a Tag on the Brevetti platform

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

Expand source code
class Tag(BaseModel):
    """
    Model defining a Tag on the Brevetti platform
    """
    name: str
    id: str = Field(default_factory=lambda: str(uuid4()))
    parent_id: Optional[str] = Field(default=None, alias="parentId")
    created: str = ""
    children: List['Tag'] = Field(default_factory=list)

    class Config:
        allow_population_by_field_name = True

    @staticmethod
    def find(tree, key, value):
        items = tree.children if isinstance(tree, Tag) else tree
        for item in items:
            if getattr(item, key) == value:
                yield item
            else:
                yield from Tag.find(item, key, value)

    @staticmethod
    def find_path(tree, key, value, path=()):
        items = tree.children if isinstance(tree, Tag) else tree
        for item in items:
            if getattr(item, key) == value:
                yield (*path, item)
            else:
                yield from Tag.find_path(item, key, value, (*path, item))

Ancestors

  • pydantic.main.BaseModel
  • pydantic.utils.Representation

Class variables

var Config
var children : List[Tag]
var created : str
var id : str
var name : str
var parent_id : Optional[str]

Static methods

def find(tree, key, value)
Expand source code
@staticmethod
def find(tree, key, value):
    items = tree.children if isinstance(tree, Tag) else tree
    for item in items:
        if getattr(item, key) == value:
            yield item
        else:
            yield from Tag.find(item, key, value)
def find_path(tree, key, value, path=())
Expand source code
@staticmethod
def find_path(tree, key, value, path=()):
    items = tree.children if isinstance(tree, Tag) else tree
    for item in items:
        if getattr(item, key) == value:
            yield (*path, item)
        else:
            yield from Tag.find_path(item, key, value, (*path, item))