C API Wrapper¶
The C API wrapper provides direct access to the ujotypes-c library functions.
-
ujotypes._ujotypes.ujot_float_to_half(value)¶ Convert single precision float to half precision float value
Parameters: value (float) – the float32 value to be converted Returns: binary float16 value representation Return type: (int)
-
ujotypes._ujotypes.ujot_get_version()¶ Get the current API and library version
Returns: (library version, api version) Return type: (tuple of (int, int))
-
ujotypes._ujotypes.ujot_half_to_float(value)¶ Convert half precision float to single precision float value
Parameters: value (int) – binary float16 value representation to be converted Returns: float32 value Return type: (float)
-
ujotypes._ujotypes.ujot_read_from_buffer(buffer)¶ Reads a container variant from a buffer
Parameters: buffer (bytes) – the Ujo representation of the container variant Returns: container variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_read_from_file(filename)¶ Reads a container variant from a file
Parameters: filename (str) – full path to Ujo file to read Returns: container variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_binary(variant)¶ Read the value from an binary variant
Parameters: variant (int) – variant handle Returns: (binary data, binary type) Return type: (tuple of (bytes, int))
-
ujotypes._ujotypes.ujot_variant_as_bool(variant)¶ Read the value from a bool variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_float16(variant)¶ Read the value from an float16 variant
Parameters: variant (int) – variant handle Returns: binary float16 value representation Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_float32(variant)¶ Read the value from an float32 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (float)
-
ujotypes._ujotypes.ujot_variant_as_float64(variant)¶ Read the value from an float64 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (float)
-
ujotypes._ujotypes.ujot_variant_as_int16(variant)¶ Read the value from an int16 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_int32(variant)¶ Read the value from an int32 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_int64(variant)¶ Read the value from an int64 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_int8(variant)¶ Read the value from an int8 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_string_c(variant)¶ Read the value from a c-string variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (str)
-
ujotypes._ujotypes.ujot_variant_as_string_utf8(variant)¶ Read the value from a UTF8-string variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (str)
-
ujotypes._ujotypes.ujot_variant_as_timestamp(variant)¶ Read the value from an timestamp variant
Parameters: variant (int) – variant handle Returns: (year, month, day, hour, minute, second, microsecond) Return type: (tuple of (int, int, int, int, int, int, int))
-
ujotypes._ujotypes.ujot_variant_as_uint16(variant)¶ Read the value from an uint16 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_uint32(variant)¶ Read the value from an uint32 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_uint64(variant)¶ Read the value from an uint64 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_as_uint8(variant)¶ Read the value from an uint8 variant
Parameters: variant (int) – variant handle Returns: the value of the variant Return type: (int)
-
ujotypes._ujotypes.ujot_variant_decref(variant)¶ Decrement variant reference counter
Parameters: variant (int) – variant handle
-
ujotypes._ujotypes.ujot_variant_get_refcount(variant)¶ Get current reference count
Parameters: variant (int) – variant handle Returns: reference counter value Return type: (int)
-
ujotypes._ujotypes.ujot_variant_get_type(variant)¶ Determines the type of the given variant
Parameters: variant (int) – variant handle Returns: (type, subtype) Return type: (tuple of (int, int))
-
ujotypes._ujotypes.ujot_variant_incref(variant)¶ Increment variant reference counter
Parameters: variant (int) – variant handle
-
ujotypes._ujotypes.ujot_variant_list_append(list, value)¶ Appends a value to a list
Parameters: - list (int) – variant list handle
- value (int) – handle of variant to append to the list
Returns: index of the appended value
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_list_clear(list)¶ Clears the list
Parameters: list (int) – variant list handle
-
ujotypes._ujotypes.ujot_variant_list_contains(list, value)¶ Checks if an item is in the list
Parameters: - list (int) – variant list handle
- value (int) – handle to variant to check, if in the list
Returns: index of the value or UJOT_LIST_INDEX_UNKNOWN if not found
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_list_contains_in_subset(list, value, start, stop)¶ Checks if an item is in the subset of a list
If you specify a negative stop index, contains is checked for all elements from start index to the end of the list.
Parameters: - list (int) – variant list handle
- value (int) – handle to variant to check, if in the list
- start (int) – index where to start the subset (inclusive)
- stop (int) – index where to stop the subset (inclusive)
Returns: index of the value or UJOT_LIST_INDEX_UNKNOWN if not found
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_list_delete_item(list, index)¶ Deletes an item in a list
Parameters: - list (int) – variant list handle
- index (int) – index of the item to be deleted
-
ujotypes._ujotypes.ujot_variant_list_get_item(list, index)¶ Gets a value from the list
Parameters: - list (int) – variant list handle
- index (int) – index to get the value from
Returns: (borrowed) variant handle
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_list_get_size(list)¶ Gets the number of items in the list
Parameters: list (int) – variant list handle Returns: item count Return type: (int)
-
ujotypes._ujotypes.ujot_variant_list_insert(list, value, index)¶ Inserts a value to a list
Parameters: - list (int) – variant list handle
- value (int) – handle of variant to insert into the list
- index (int) – index to insert the value at
-
ujotypes._ujotypes.ujot_variant_list_set_item(list, value, index)¶ Overwrites a value in a list
Parameters: - list (int) – variant list handle
- value (int) – handle of variant to set into the list
- index (int) – index to set the value at
-
ujotypes._ujotypes.ujot_variant_map_clear(map)¶ Remove all items from a map
Parameters: map (int) – variant map handle
-
ujotypes._ujotypes.ujot_variant_map_delete(map, key)¶ Delete from map by key
Parameters: - map (int) – variant map handle
- key (int) – variant handle of the key to be deleted
-
ujotypes._ujotypes.ujot_variant_map_first(map)¶ Set the iterator to the beginning of a map
Parameters: map (int) – variant map handle
-
ujotypes._ujotypes.ujot_variant_map_get(map, key)¶ Get a value from the map by key
Parameters: - map (int) – variant map handle
- key (int) – variant handle of the key
Returns: variant handle of the value or none, if key doesn’t exist
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_map_get_size(map)¶ Gets the number of items in the map
Parameters: map (int) – variant map handle Returns: item count Return type: (int)
-
ujotypes._ujotypes.ujot_variant_map_haskey(map, key)¶ Check if a key exists in a map
Parameters: - map (int) – variant map handle
- key (int) – variant handle of the key to search for
Returns: - UJOT_TRUE if key was found
- UJOT_FALSE if key wasn’t found
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_map_next(map)¶ Get next item of a map
Parameters: map (int) – variant map handle Returns: - (key variant handle, value variant handle)
- None, if there are no more items in the map
Return type: (tuple of (int, int), None)
-
ujotypes._ujotypes.ujot_variant_map_set(map, key, value)¶ Set a key value pair in a map
Parameters: - map (int) – variant map handle
- key (int) – variant handle of the key
- value (int) – variant handle of the value
-
ujotypes._ujotypes.ujot_variant_new_binary(buffer, bin_type)¶ Creates a variant with an binary value
Parameters: - buffer (bytes) – binary data
- bin_type (int) – binary type
Returns: variant handle
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_bool(value)¶ Creates a variant with an boolean value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_float16(value)¶ Creates a variant with an float16 value
Parameters: value (int) – binary float16 value representation Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_float32(value)¶ Creates a variant with an float32 value
Parameters: value (float) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_float64(value)¶ Creates a variant with an float64 value
Parameters: value (float) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_int16(value)¶ Creates a variant with an int16 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_int32(value)¶ Creates a variant with an int32 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_int64(value)¶ Creates a variant with an int64 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_int8(value)¶ Creates a variant with an int8 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_list()¶ Create a new variant list
Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_map()¶ Create a new variant map
Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_none()¶ Create new variant of type none
Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_string_c(string)¶ Create a c-string variant
Parameters: string (str) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_string_utf8(string)¶ Create an UTF8-string variant
Parameters: string (str) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_timestamp(year, month, day, hour, minute, second, microsecond)¶ Creates a variant with an timestamp value
Parameters: - year (int) – the full year (e.g. 2018)
- month (int) – the month (1-12)
- day (int) – the day (1-31)
- hour (int) – the hour (0-23)
- minute (int) – the minute (0-59)
- second (int) – the second (0-59)
- microsecond (int) – the microsecond (0-999999)
Returns: variant handle
Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_uint16(value)¶ Creates a variant with an uint16 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_uint32(value)¶ Creates a variant with an uint32 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_uint64(value)¶ Creates a variant with an uint64 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_new_uint8(value)¶ Creates a variant with an uint8 value
Parameters: value (int) – the value to assign to the new variant Returns: variant handle Return type: (int)
-
ujotypes._ujotypes.ujot_variant_type_check(variant, type)¶ Check type of an Ujo variant
Parameters: - variant (int) – variant handle
- type (int) – type id to be checked
Returns: True if variant type matches
Return type: (bool)
-
ujotypes._ujotypes.ujot_write_to_buffer(variant)¶ Writes a container variant into a buffer
Parameters: variant (int) – container variant handle Returns: the Ujo representation of the container variant Return type: (bytes)
-
ujotypes._ujotypes.ujot_write_to_file(variant, filename)¶ Writes a container variant into a file
Parameters: - variant (int) – container variant handle
- filename (str) – full path to Ujo file to write