Data types in the Deephaven Python dtypes package
Deephaven defines its Python types in the deephaven.dtypes
package.
Importing deephaven.dtypes
Deephaven recommends importing this package as follows:
import deephaven.dtypes as dht
Values
The following values can be found in the deephaven.dtypes
package:
bool_ # Java boolean
byte # Signed byte
int8 # Signed byte
short # Signed short
int16 # Signed short
char # Character
int32 # Signed 32 bit integer
long # Signed 64 bit integer
int64 # Signed 64 bit integer
float32 # Single precision floating point
single # Single precision floating point
float64 # Double precision floating point
double # Double precision floating point
string # String
BigDecimal # Java BigDecimal
StringSet # Deephaven StringSet
Instant # Java Instant
LocalDate # Java LocalDate
LocalTime # Java LocalTime
ZonedDateTime # Java ZonedDateTime
Duration # Java Duration
Period # Java Period
TimeZone # Java TimeZone
PyObject # Python object
JObject # Java object
byte_array # Byte array
int8_array # Byte array
short_array # Short array
int16_array # Short array
int32_array # 32 bit integer array
long_array # 64 bit integer array
int64_array # 64 bit integer array
single_array # Single precision floating point array
float32_array # Single precision floating point array
double_array # Double precision floating point array
float64_array # Double precision floating point array
string_array # String array
instant_array # Instant array
zdt_array # ZonedDateTime array
Example usage
One application of Deephaven types is to set the column types for a Dynamic Table Writer. The following example creates 5 different tables, each containing a column for a different type contained within deephaven.dtypes
.
from deephaven import DynamicTableWriter
from deephaven import dtypes as dht
from deephaven import time as dhtu
col_defs_1 = {
"Boolean": dht.bool_,
"Byte": dht.byte,
"Short": dht.short,
"Int32": dht.int32,
"Int64": dht.long,
}
col_defs_2 = {
"Single": dht.single,
"Double": dht.double,
"String": dht.string,
"BigDecimal": dht.BigDecimal,
}
col_defs_3 = {
"DateTime": dht.Instant,
"Period": dht.Period,
"PyObject": dht.PyObject,
"JObject": dht.JObject,
}
col_defs_4 = {
"ByteArray": dht.byte_array,
"ShortArray": dht.short_array,
"IntArray": dht.int32_array,
"LongArray": dht.long_array,
}
col_defs_5 = {
"SingleArray": dht.single_array,
"DoubleArray": dht.double_array,
"StringArray": dht.string_array,
"InstantArray": dht.instant_array,
}
dtw1 = DynamicTableWriter(col_defs_1)
t1 = dtw1.table
dtw1.write_row(True, 1, 2, 3, 4)
dtw2 = DynamicTableWriter(col_defs_2)
t2 = dtw2.table
BigDecimal = dht.BigDecimal
dtw2.write_row(3.1, 2.9, "Hello World!", BigDecimal(3.14159))
dtw3 = DynamicTableWriter(col_defs_3)
t3 = dtw3.table
dtw3.write_row(dhtu.dh_now(), dhtu.to_j_period("P1W"), 3, "a")
dtw4 = DynamicTableWriter(col_defs_4)
t4 = dtw4.table
dtw4.write_row(
dht.array(dht.byte, [1, 2, 3]),
dht.array(dht.short, [1, 2, 3]),
dht.array(dht.int32, [1, 2, 3]),
dht.array(dht.long, [1, 2, 3]),
)
dtw5 = DynamicTableWriter(col_defs_5)
t5 = dtw5.table
dtw5.write_row(
dht.array(dht.single, [1.1, 2.2]),
dht.array(dht.double, [1.1, 2.2]),
dht.array(dht.string, ["a", "b"]),
dht.array(
dht.Instant,
[
dhtu.to_j_instant("2021-01-01T00:00:00 ET"),
dhtu.to_j_instant("2022-01-01T00:00:00 ET"),
],
),
)
- t1
- t2
- t3
- t4
- t5
One application of Deephaven types is to set the column types for a Dynamic Table Writer. The following example creates 4 different tables, each containing a column for a different type contained within deephaven.dtypes
.
from deephaven import DynamicTableWriter
from deephaven import dtypes as dht
from deephaven import time as dhtu
col_defs_1 = {
"Boolean": dht.bool_,
"Byte": dht.byte,
"Short": dht.short,
"Int32": dht.int32,
"Int64": dht.long,
}
col_defs_2 = {
"Single": dht.single,
"Double": dht.double,
"String": dht.string,
"BigDecimal": dht.BigDecimal,
}
col_defs_3 = {
"ByteArray": dht.byte_array,
"ShortArray": dht.short_array,
"IntArray": dht.int32_array,
"LongArray": dht.long_array,
}
col_defs_4 = {
"SingleArray": dht.single_array,
"DoubleArray": dht.double_array,
"StringArray": dht.string_array,
"InstantArray": dht.instant_array,
}
dtw1 = DynamicTableWriter(col_defs_1)
t1 = dtw1.table
dtw1.write_row(True, 1, 2, 3, 4)
dtw2 = DynamicTableWriter(col_defs_2)
t2 = dtw2.table
BigDecimal = dht.BigDecimal
dtw2.write_row(3.1, 2.9, "Hello World!", BigDecimal(3.14159))
dtw3 = DynamicTableWriter(col_defs_3)
t3 = dtw3.table
dtw3.write_row(
dht.array(dht.byte, [1, 2, 3]),
dht.array(dht.short, [1, 2, 3]),
dht.array(dht.int32, [1, 2, 3]),
dht.array(dht.long, [1, 2, 3]),
)
dtw4 = DynamicTableWriter(col_defs_4)
t4 = dtw4.table
dtw4.write_row(
dht.array(dht.single, [1.1, 2.2]),
dht.array(dht.double, [1.1, 2.2]),
dht.array(dht.string, ["a", "b"]),
dht.array(
dht.Instant,
[
dhtu.to_j_instant("2021-01-01T00:00:00 ET"),
dhtu.to_j_instant("2022-01-01T00:00:00 ET"),
],
),
)
- t1
- t2
- t3
- t4