ds_provider_sdworx_py_lib.serde =============================== .. py:module:: ds_provider_sdworx_py_lib.serde .. autoapi-nested-parse:: **File:** ``__init__.py`` **Region:** ``ds_provider_sdworx_py_lib/serde`` Description ----------- This module implements serialization for SD Worx API formats. Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/ds_provider_sdworx_py_lib/serde/employment_update/index Classes ------- .. autoapisummary:: ds_provider_sdworx_py_lib.serde.EmploymentUpdateSerializer Package Contents ---------------- .. py:class:: EmploymentUpdateSerializer(*, request_level_columns: set[str] | None = None, metadata_columns: set[str] | None = None) Bases: :py:obj:`ds_resource_plugin_py_lib.common.serde.serialize.base.DataSerializer` Serialize DataFrame to SD Worx EmploymentUpdateRequest XML format. Expected columns after renaming: - ``CompanyNo``, ``SSN``, ``PersonCompanyEmploymentNo``: request-level columns - ``ValidFrom``, ``ValidUntil``: date metadata columns - All other columns: become ``FieldValue`` elements .. rubric:: Example .. code-block:: python import pandas as pd from ds_provider_sdworx_py_lib.serde import EmploymentUpdateSerializer serializer = EmploymentUpdateSerializer() df = pd.DataFrame([{ "CompanyNo": "001", "SSN": "12345678901", "PersonCompanyEmploymentNo": "E001", "ValidFrom": "2024-01-01", "ValidUntil": "2024-12-31", "Salary": "50000", }]) xml_bytes = serializer(df) .. py:attribute:: request_level_columns .. py:attribute:: metadata_columns .. py:method:: _escape_xml(value: Any) -> str Escape XML special characters in value. .. py:method:: _build_xml_element(row: pandas.Series[Any]) -> list[str] Build EmploymentUpdateRequest XML element for a single row. .. py:method:: __call__(obj: pandas.DataFrame, **_kwargs: Any) -> bytes Serialize DataFrame to EmploymentUpdateRequest XML bytes. Each row becomes an ``EmploymentUpdateRequest`` element within a single ``EmploymentUpdateRequests`` root document. :param obj: DataFrame with columns to serialize. :param \*\*kwargs: Additional keyword arguments (ignored). :returns: XML content as bytes (UTF-8 encoded).