Skip to content
Snippets Groups Projects

feat: AUTO-3805 CollectionProps type

Merged Anton Teplyakov requested to merge feature/AUTO-3805 into master
from perxis.collections import collections_pb2
from perxis.collections import collections_pb2
from typing import TypedDict
from dataclasses import dataclass, asdict
from typing_extensions import deprecated
from typing_extensions import deprecated
@@ -22,11 +22,18 @@ def make_collection_instances(
@@ -22,11 +22,18 @@ def make_collection_instances(
return collections
return collections
class CollectionProps(TypedDict):
@dataclass
single: bool
class CollectionProps:
system: bool
single: bool = False
no_data: bool
system: bool = False
hidden: bool
no_data: bool = False
 
hidden: bool = False
 
no_revisions: bool = False
 
no_archive: bool = False
 
no_publish: bool = False
 
 
def to_dict(self) -> dict:
 
return asdict(self) # noqa
def init_collections(
def init_collections(
@@ -40,8 +47,13 @@ def init_collections(
@@ -40,8 +47,13 @@ def init_collections(
with open(f"{schemes_dir}/{collection_id}.json", "r") as file:
with open(f"{schemes_dir}/{collection_id}.json", "r") as file:
collection_schema = file.read()
collection_schema = file.read()
 
props = collections_settings_mapping.get(collection_id) or CollectionProps()
 
 
if not isinstance(props, CollectionProps):
 
raise TypeError("collections_settings_mapping value must be an instance of CollectionProps")
 
kwargs = {
kwargs = {
**(collections_settings_mapping.get(collection_id) or {}),
**props.to_dict(),
"id": collection_id,
"id": collection_id,
"name": collection_name,
"name": collection_name,
"schema": collection_schema,
"schema": collection_schema,
Loading