This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
devicehub-teal/ereuse_devicehub/resources/lot/models.pyi

80 lines
1.9 KiB
Python
Raw Normal View History

import uuid
from datetime import datetime
from typing import Iterable, Set, Union
from uuid import UUID
from boltons import urlutils
from sqlalchemy import Column
from sqlalchemy.orm import Query, relationship
from sqlalchemy_utils import Ltree
from ereuse_devicehub.resources.device.models import Device
from ereuse_devicehub.resources.models import Thing
LotQuery = Union[Query, Iterable['Lot']]
class Lot(Thing):
id = ... # type: Column
name = ... # type: Column
closed = ... # type: Column
devices = ... # type: relationship
2018-09-07 10:38:02 +00:00
paths = ... # type: relationship
def __init__(self, name: str, closed: bool = closed.default.arg) -> None:
super().__init__()
self.id = ... # type: UUID
self.name = ... # type: str
self.closed = ... # type: bool
self.devices = ... # type: Set[Device]
self.paths = ... # type: Set[Path]
def add_child(self, child: Union[Lot, uuid.UUID]):
pass
2018-09-12 12:53:14 +00:00
def remove_child(self, child: Union[Lot, uuid.UUID]):
pass
@classmethod
def roots(cls) -> LotQuery:
pass
@property
def children(self) -> LotQuery:
pass
2018-10-06 10:45:56 +00:00
@property
def descendants(self) -> LotQuery:
pass
@classmethod
def descendantsq(cls, id) -> LotQuery:
pass
2018-09-12 12:53:14 +00:00
@property
def parents(self) -> LotQuery:
pass
2018-10-06 10:45:56 +00:00
@classmethod
def parentsq(cls, id) -> LotQuery:
pass
@property
def url(self) -> urlutils.URL:
pass
2018-10-06 10:45:56 +00:00
class Path:
id = ... # type: Column
lot_id = ... # type: Column
lot = ... # type: relationship
path = ... # type: Column
created = ... # type: Column
def __init__(self, lot: Lot) -> None:
super().__init__()
self.id = ... # type: UUID
self.lot = ... # type: Lot
self.path = ... # type: Ltree
self.created = ... # type: datetime