1"""Pagination wrapper classes for AAS HTTP Client."""
5from basyx.aas
import model
9_logger = logging.getLogger(__name__)
13 """Class representing pagination metadata."""
17 def __init__(self, cursor: str) ->
None:
18 """Initialize a paging metadata object.
20 :param cursor: Cursor for the next page
26 """Class representing paginated data for Asset Administration Shells."""
28 paging_metadata: PagingMetadata
29 results: list[model.AssetAdministrationShell]
31 def __init__(self, cursor: str, results: list[model.AssetAdministrationShell]) ->
None:
32 """Initialize a paginated data object.
34 :param paging_metadata: Paging metadata
35 :param results: list of results
42 """Class representing paginated data for References."""
44 paging_metadata: PagingMetadata
45 results: list[model.ModelReference]
47 def __init__(self, cursor: str, results: list[model.ModelReference]) ->
None:
48 """Initialize a paginated data object.
50 :param paging_metadata: Paging metadata
51 :param results: list of results
58 """Class representing paginated data for Submodels."""
60 paging_metadata: PagingMetadata
61 results: list[model.Submodel]
63 def __init__(self, cursor: str, results: list[model.Submodel]) ->
None:
64 """Initialize a paginated data object.
66 :param paging_metadata: Paging metadata
67 :param results: list of results
74 """Class representing paginated data for Submodel Elements."""
76 paging_metadata: PagingMetadata
77 results: list[model.SubmodelElement]
79 def __init__(self, cursor: str, results: list[model.SubmodelElement]) ->
None:
80 """Initialize a paginated data object.
82 :param paging_metadata: Paging metadata
83 :param results: list of results
90 """Class representing paginated data for Shell Descriptors."""
92 paging_metadata: PagingMetadata
93 results: list[model.SubmodelElement]
95 def __init__(self, cursor: str, results: list[model.SubmodelElement]) ->
None:
96 """Initialize a paginated data object.
98 :param paging_metadata: Paging metadata
99 :param results: list of results
105def create_shell_paging_data(content: dict) -> ShellPaginatedData |
None:
106 """Create a ShellPaginatedData object from a dictionary.
108 :param content: Dictionary containing paginated shell data
109 :return: ShellPaginatedData object
111 aas_list: list[model.AssetAdministrationShell] = []
113 results: list = content.get(
"result", [])
114 if not results
or len(results) == 0:
115 _logger.warning(
"No shells found on server.")
118 for result
in results:
119 if not isinstance(result, dict):
120 _logger.error(f
"Invalid shell data: {result}")
123 aas = convert_to_object(result)
129 paging_metadata_dict = content.get(
"paging_metadata", {})
131 if "cursor" in paging_metadata_dict:
132 cursor = paging_metadata_dict[
"cursor"]
140def create_submodel_paging_data(content: dict) -> SubmodelPaginatedData |
None:
141 """Create a SubmodelPaginatedData object from a dictionary.
143 :param content: Dictionary containing paginated submodel data
144 :return: SubmodelPaginatedData object
146 sm_list: list[model.Submodel] = []
148 results: list = content.get(
"result", [])
149 if not results
or len(results) == 0:
150 _logger.warning(
"No shells found on server.")
153 for result
in results:
154 if not isinstance(result, dict):
155 _logger.error(f
"Invalid shell data: {result}")
158 sm = convert_to_object(result)
164 paging_metadata_dict = content.get(
"paging_metadata", {})
166 if "cursor" in paging_metadata_dict:
167 cursor = paging_metadata_dict[
"cursor"]
175def create_submodel_element_paging_data(content: dict) -> SubmodelElementPaginatedData |
None:
176 """Create a SubmodelElementPaginatedData object from a dictionary.
178 :param content: Dictionary containing paginated submodel element data
179 :return: SubmodelElementPaginatedData object
181 sme_list: list[model.SubmodelElement] = []
183 results: list = content.get(
"result", [])
184 if not results
or len(results) == 0:
185 _logger.warning(
"No shells found on server.")
188 for result
in results:
189 if not isinstance(result, dict):
190 _logger.error(f
"Invalid shell data: {result}")
193 sme = convert_to_object(result)
199 paging_metadata_dict = content.get(
"paging_metadata", {})
201 if "cursor" in paging_metadata_dict:
202 cursor = paging_metadata_dict[
"cursor"]
211 """Create a SubmodelElementPaginatedData object from a dictionary.
213 :param content: Dictionary containing paginated submodel element data
214 :return: SubmodelElementPaginatedData object
216 sme_list: list[model.SubmodelElement] = []
218 results: list = content.get(
"result", [])
219 if not results
or len(results) == 0:
220 _logger.warning(
"No shells found on server.")
223 for result
in results:
224 if not isinstance(result, dict):
225 _logger.error(f
"Invalid shell data: {result}")
228 sme = convert_to_object(result)
234 paging_metadata_dict = content.get(
"paging_metadata", {})
236 if "cursor" in paging_metadata_dict:
237 cursor = paging_metadata_dict[
"cursor"]
245def create_reference_paging_data(content: dict) -> ReferencePaginatedData |
None:
246 """Create a ReferencePaginatedData object from a dictionary.
248 :param content: Dictionary containing paginated reference data
249 :return: ReferencePaginatedData object
251 ref_list: list[model.ModelReference] = []
253 results: list = content.get(
"result", [])
254 if not results
or len(results) == 0:
255 _logger.warning(
"No shells found on server.")
258 for result
in results:
259 if not isinstance(result, dict):
260 _logger.error(f
"Invalid shell data: {result}")
263 reference = convert_to_object(result)
266 ref_list.append(reference)
269 paging_metadata_dict = content.get(
"paging_metadata", {})
271 if "cursor" in paging_metadata_dict:
272 cursor = paging_metadata_dict[
"cursor"]