ds_protocol_graphql_py_lib.serde

File: __init__.py Region: ds_protocol_graphql_py_lib/serde

Serialization and deserialization utilities for GraphQL protocol.

Example

>>> from ds_protocol_graphql_py_lib.serde import GraphqlDeserializer
>>> deserializer = GraphqlDeserializer()

Submodules

Classes

GraphqlDeserializer

Deserializer for GraphQL API responses.

Package Contents

class ds_protocol_graphql_py_lib.serde.GraphqlDeserializer[source]

Bases: ds_resource_plugin_py_lib.common.serde.deserialize.PandasDeserializer

Deserializer for GraphQL API responses.

Handles various GraphQL response patterns: - Direct arrays: {“data”: {“users”: […]}} - Relay connections: {“data”: {“users”: {“edges”: [{“node”: {…}}]}}} - Single objects: {“data”: {“user”: {…}}} - Introspection queries: {“data”: {“__type”: {“fields”: […]}}}

deserialize_graphql(data: Any) pandas.DataFrame[source]

Deserialize GraphQL response to pandas DataFrame.

Parameters:

data – GraphQL response dict or raw data

Returns:

DataFrame containing the extracted data

_parse_graphql_data(data: Any) pandas.DataFrame[source]

Parse GraphQL data structure into DataFrame.

Handles nested structures and various GraphQL response patterns.

Parameters:

data – The data portion of the GraphQL response

Returns:

DataFrame with the extracted data

_handle_nested_dict(nested_value: dict[str, Any]) pandas.DataFrame[source]

Handle nested dict - determine if it’s a pure array container or single object.

Parameters:

nested_value – The nested dictionary to analyze

Returns:

DataFrame with appropriate data extraction

_extract_relay_nodes(data: dict[str, Any]) pandas.DataFrame[source]

Extract nodes from Relay-style pagination structure.

Parameters:

data – Dict containing “edges” key with Relay pagination structure

Returns:

DataFrame with nodes extracted from edges