Module: list_panels_response_item
Expand source code
# Copyright (C) 2023-present The Project Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import annotations
from typing import List
from pydantic import BaseModel
from cl.runtime.primitive.case_util import CaseUtil
from cl.runtime.routers.entity.list_panels_request import ListPanelsRequest
from cl.runtime.schema.handler_declare_block_decl import HandlerDeclareBlockDecl
from cl.runtime.schema.schema import Schema
class ListPanelsResponseItem(BaseModel):
"""Data type for a single item in the response list for the /entity/list_panels route."""
name: str | None
"""Name of the panel."""
class Config:
alias_generator = CaseUtil.snake_to_pascal_case
populate_by_name = True
@classmethod
def list_panels(cls, request: ListPanelsRequest) -> List[ListPanelsResponseItem]:
"""Implements /entity/list_panels route."""
# TODO: Return saved view names
type_ = Schema.get_type_by_short_name(request.type)
handlers_block = HandlerDeclareBlockDecl.get_type_methods(type_, inherit=True).handlers
if handlers_block is not None and handlers_block:
return [
ListPanelsResponseItem(name=handler.label) for handler in handlers_block if handler.type_ == "Viewer"
]
return []
Classes
class ListPanelsResponseItem (**data: Any)
-
Data type for a single item in the response list for the /entity/list_panels route.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class ListPanelsResponseItem(BaseModel): """Data type for a single item in the response list for the /entity/list_panels route.""" name: str | None """Name of the panel.""" class Config: alias_generator = CaseUtil.snake_to_pascal_case populate_by_name = True @classmethod def list_panels(cls, request: ListPanelsRequest) -> List[ListPanelsResponseItem]: """Implements /entity/list_panels route.""" # TODO: Return saved view names type_ = Schema.get_type_by_short_name(request.type) handlers_block = HandlerDeclareBlockDecl.get_type_methods(type_, inherit=True).handlers if handlers_block is not None and handlers_block: return [ ListPanelsResponseItem(name=handler.label) for handler in handlers_block if handler.type_ == "Viewer" ] return []
Ancestors
- pydantic.main.BaseModel
Class variables
var Config
var model_computed_fields
var model_config
var model_fields
var name
-
Name of the panel.
Static methods
def list_panels(request: ListPanelsRequest) -> List[ListPanelsResponseItem]
-
Implements /entity/list_panels route.