Source code for nisystemlink.clients.dataframe.models._data_frame

from typing import List, Optional

from nisystemlink.clients.core._uplink._json_model import JsonModel


[docs]class DataFrame(JsonModel): """Data read from or to be written to a table. Values may be ``None`` (if the column is of type ``NULLABLE``) or encoded as a string in a format according to each column's datatype: * BOOL: One of ``"true"`` or ``"false"``, case-insensitive. * INT32: Any integer number in the range [-2147483648, 2147483647], surrounded by quotes. * INT64: Any integer number in the range [-9223372036854775808, 9223372036854775807], surrounded by quotes. * FLOAT32: A decimal number using a period for the decimal point, optionally in scientific notation, in the range [-3.40282347E+38, 3.40282347E+38], surrounded by quotes. Not all values within the range can be represented with 32 bits. To preserve the exact binary encoding of the value when converting to a string, clients should serialize 9 digits after the decimal. Instead of a number, the value may be ``"NaN"`` (not a number), ``"Infinity"`` (positive infinity), or ``"-Infinity"`` (negative infinity), case-sensitive. * FLOAT64: A decimal number using a period for the decimal point, optionally in scientific notation, in the range [-1.7976931348623157E+308, 1.7976931348623157E+308], surrounded by quotes. Not all values within the range can be represented with 64 bits. To preserve the exact binary encoding of the value when converting to a string, clients should serialize 17 digits after the decimal. Instead of a number, the value may be ``"NaN"`` (not a number), ``"Infinity"`` (positive infinity), or ``"-Infinity"`` (negative infinity), case-sensitive. * STRING: Any quoted string. * TIMESTAMP: A date and time with millisecond precision in ISO-8601 format and time zone. For example: ``"2022-08-19T16:17:30.123Z"``. If a time zone is not provided, UTC is assumed. If a time zone other than UTC is provided, the value will be converted to UTC. If more than three digits of fractional seconds are provided, the time will be truncated to three digits (i.e. milliseconds). The format is the same as a serialized Pandas DataFrame with orient="split" and index=False. See https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html. When providing a DataFrame for appending rows, any of the table's columns not specified will receive a value of ``None``. If any such columns aren't nullable, an error will be returned. If the entire columns property is left out, each row is assumed to contain all columns in the order specified when the table was created. """ columns: Optional[List[str]] = None """The names and order of the columns included in the data frame.""" data: List[List[Optional[str]]] """The data for each row with the order specified in the columns property. Must contain a value for each column in the columns property."""