pydiverse-common 0.2.1__py3-none-any.whl → 0.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,10 +20,10 @@ from .dtypes import (
20
20
  PandasBackend,
21
21
  String,
22
22
  Time,
23
- Uint8,
24
- Uint16,
25
- Uint32,
26
- Uint64,
23
+ UInt8,
24
+ UInt16,
25
+ UInt32,
26
+ UInt64,
27
27
  )
28
28
 
29
29
  __all__ = [
@@ -44,10 +44,10 @@ __all__ = [
44
44
  "NullType",
45
45
  "String",
46
46
  "Time",
47
- "Uint8",
48
- "Uint16",
49
- "Uint32",
50
- "Uint64",
47
+ "UInt8",
48
+ "UInt16",
49
+ "UInt32",
50
+ "UInt64",
51
51
  "List",
52
52
  "PandasBackend",
53
53
  ]
@@ -70,6 +70,8 @@ class Dtype:
70
70
  return Time()
71
71
  if isinstance(sql_type, sqa.DateTime):
72
72
  return Datetime()
73
+ if isinstance(sql_type, sqa.Interval):
74
+ return Duration()
73
75
  if isinstance(sql_type, sqa.ARRAY):
74
76
  return List(Dtype.from_sql(sql_type.item_type.from_sql))
75
77
  if isinstance(sql_type, sqa.Null):
@@ -102,13 +104,13 @@ class Dtype:
102
104
  raise TypeError
103
105
  if pd.api.types.is_unsigned_integer_dtype(pandas_type):
104
106
  if is_np_dtype(pandas_type, np.uint64):
105
- return Uint64()
107
+ return UInt64()
106
108
  elif is_np_dtype(pandas_type, np.uint32):
107
- return Uint32()
109
+ return UInt32()
108
110
  elif is_np_dtype(pandas_type, np.uint16):
109
- return Uint16()
111
+ return UInt16()
110
112
  elif is_np_dtype(pandas_type, np.uint8):
111
- return Uint8()
113
+ return UInt8()
112
114
  raise TypeError
113
115
  if pd.api.types.is_float_dtype(pandas_type):
114
116
  if is_np_dtype(pandas_type, np.float64):
@@ -123,7 +125,10 @@ class Dtype:
123
125
  return Bool()
124
126
  if pd.api.types.is_datetime64_any_dtype(pandas_type):
125
127
  return Datetime()
126
- # we don't know any decimal dtype in pandas if column is not arrow backed
128
+ if pd.api.types.is_timedelta64_dtype(pandas_type):
129
+ return Duration()
130
+ # we don't know any decimal/time dtypes in pandas if column is not
131
+ # arrow backed
127
132
 
128
133
  raise TypeError
129
134
 
@@ -143,13 +148,13 @@ class Dtype:
143
148
  raise TypeError
144
149
  if pa.types.is_unsigned_integer(arrow_type):
145
150
  if pa.types.is_uint64(arrow_type):
146
- return Uint64()
151
+ return UInt64()
147
152
  if pa.types.is_uint32(arrow_type):
148
- return Uint32()
153
+ return UInt32()
149
154
  if pa.types.is_uint16(arrow_type):
150
- return Uint16()
155
+ return UInt16()
151
156
  if pa.types.is_uint8(arrow_type):
152
- return Uint8()
157
+ return UInt8()
153
158
  raise TypeError
154
159
  if pa.types.is_floating(arrow_type):
155
160
  if pa.types.is_float64(arrow_type):
@@ -172,6 +177,8 @@ class Dtype:
172
177
  return Date()
173
178
  if pa.types.is_time(arrow_type):
174
179
  return Time()
180
+ if pa.types.is_duration(arrow_type):
181
+ return Duration()
175
182
  raise TypeError
176
183
 
177
184
  @staticmethod
@@ -186,10 +193,10 @@ class Dtype:
186
193
  pl.Int32: Int32(),
187
194
  pl.Int16: Int16(),
188
195
  pl.Int8: Int8(),
189
- pl.UInt64: Uint64(),
190
- pl.UInt32: Uint32(),
191
- pl.UInt16: Uint16(),
192
- pl.UInt8: Uint8(),
196
+ pl.UInt64: UInt64(),
197
+ pl.UInt32: UInt32(),
198
+ pl.UInt16: UInt16(),
199
+ pl.UInt8: UInt8(),
193
200
  pl.Float64: Float64(),
194
201
  pl.Float32: Float32(),
195
202
  pl.Decimal: Decimal(),
@@ -212,10 +219,10 @@ class Dtype:
212
219
  Int16(): sqa.SmallInteger(),
213
220
  Int32(): sqa.Integer(),
214
221
  Int64(): sqa.BigInteger(),
215
- Uint8(): sqa.SmallInteger(),
216
- Uint16(): sqa.Integer(),
217
- Uint32(): sqa.BigInteger(),
218
- Uint64(): sqa.BigInteger(),
222
+ UInt8(): sqa.SmallInteger(),
223
+ UInt16(): sqa.Integer(),
224
+ UInt32(): sqa.BigInteger(),
225
+ UInt64(): sqa.BigInteger(),
219
226
  Float(): sqa.Float(53), # we default to 64 bit
220
227
  Float32(): sqa.Float(24),
221
228
  Float64(): sqa.Float(53),
@@ -225,6 +232,7 @@ class Dtype:
225
232
  Date(): sqa.Date(),
226
233
  Time(): sqa.Time(),
227
234
  Datetime(): sqa.DateTime(),
235
+ Duration(): sqa.Interval(),
228
236
  NullType(): sqa.types.NullType(),
229
237
  }[self]
230
238
 
@@ -252,10 +260,10 @@ class Dtype:
252
260
  Int16(): pd.Int16Dtype(),
253
261
  Int32(): pd.Int32Dtype(),
254
262
  Int64(): pd.Int64Dtype(),
255
- Uint8(): pd.UInt8Dtype(),
256
- Uint16(): pd.UInt16Dtype(),
257
- Uint32(): pd.UInt32Dtype(),
258
- Uint64(): pd.UInt64Dtype(),
263
+ UInt8(): pd.UInt8Dtype(),
264
+ UInt16(): pd.UInt16Dtype(),
265
+ UInt32(): pd.UInt32Dtype(),
266
+ UInt64(): pd.UInt64Dtype(),
259
267
  Float(): pd.Float64Dtype(), # we default to 64 bit
260
268
  Float32(): pd.Float32Dtype(),
261
269
  Float64(): pd.Float64Dtype(),
@@ -263,8 +271,9 @@ class Dtype:
263
271
  String(): pd.StringDtype(),
264
272
  Bool(): pd.BooleanDtype(),
265
273
  Date(): "datetime64[s]",
266
- # Time() not supported
267
274
  Datetime(): "datetime64[us]",
275
+ Time(): "timedelta64[us]",
276
+ Duration(): "timedelta64[us]",
268
277
  }[self]
269
278
 
270
279
  def to_arrow(self):
@@ -276,10 +285,10 @@ class Dtype:
276
285
  Int16(): pa.int16(),
277
286
  Int32(): pa.int32(),
278
287
  Int64(): pa.int64(),
279
- Uint8(): pa.uint8(),
280
- Uint16(): pa.uint16(),
281
- Uint32(): pa.uint32(),
282
- Uint64(): pa.uint64(),
288
+ UInt8(): pa.uint8(),
289
+ UInt16(): pa.uint16(),
290
+ UInt32(): pa.uint32(),
291
+ UInt64(): pa.uint64(),
283
292
  Float(): pa.float64(), # we default to 64 bit
284
293
  Float32(): pa.float32(),
285
294
  Float64(): pa.float64(),
@@ -289,6 +298,7 @@ class Dtype:
289
298
  Date(): pa.date32(),
290
299
  Time(): pa.time64("us"),
291
300
  Datetime(): pa.timestamp("us"),
301
+ Duration(): pa.duration("us"),
292
302
  }[self]
293
303
 
294
304
  def to_polars(self: "Dtype"):
@@ -300,10 +310,10 @@ class Dtype:
300
310
  Int32(): pl.Int32,
301
311
  Int16(): pl.Int16,
302
312
  Int8(): pl.Int8,
303
- Uint64(): pl.UInt64,
304
- Uint32(): pl.UInt32,
305
- Uint16(): pl.UInt16,
306
- Uint8(): pl.UInt8,
313
+ UInt64(): pl.UInt64,
314
+ UInt32(): pl.UInt32,
315
+ UInt16(): pl.UInt16,
316
+ UInt8(): pl.UInt8,
307
317
  Float(): pl.Float64, # we default to 64 bit
308
318
  Float64(): pl.Float64,
309
319
  Float32(): pl.Float32,
@@ -311,8 +321,8 @@ class Dtype:
311
321
  String(): pl.Utf8,
312
322
  Bool(): pl.Boolean,
313
323
  Datetime(): pl.Datetime("us"),
314
- Duration(): pl.Duration,
315
- Time(): pl.Time,
324
+ Duration(): pl.Duration("us"),
325
+ Time(): pl.Time, # Polars uses nanoseconds since midnight
316
326
  Date(): pl.Date,
317
327
  NullType(): pl.Null,
318
328
  }[self]
@@ -351,16 +361,16 @@ class Int16(Int): ...
351
361
  class Int8(Int): ...
352
362
 
353
363
 
354
- class Uint64(Int): ...
364
+ class UInt64(Int): ...
355
365
 
356
366
 
357
- class Uint32(Int): ...
367
+ class UInt32(Int): ...
358
368
 
359
369
 
360
- class Uint16(Int): ...
370
+ class UInt16(Int): ...
361
371
 
362
372
 
363
- class Uint8(Int): ...
373
+ class UInt8(Int): ...
364
374
 
365
375
 
366
376
  class String(Dtype): ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydiverse-common
3
- Version: 0.2.1
3
+ Version: 0.3.1
4
4
  Summary: Common functionality shared between pydiverse libraries
5
5
  Author: QuantCo, Inc.
6
6
  Author-email: Martin Trautmann <windiana@users.sf.net>, Finn Rudolph <finn.rudolph@t-online.de>
@@ -1,5 +1,5 @@
1
- pydiverse/common/__init__.py,sha256=dMbOmWvQjkFv0agRnVGxvShqLzIR3ItAfshmbStoF7M,732
2
- pydiverse/common/dtypes.py,sha256=f29krHaatqDBfxZMBtyvyDS95LVqkeXhhkSCypQasJk,12074
1
+ pydiverse/common/__init__.py,sha256=2t3wnZGY_KITo5lysb-GAgXizeyd_iZvPjEHKnMsYpA,732
2
+ pydiverse/common/dtypes.py,sha256=OtxOLnA5HIX9OandrrSgKS8bzERnntLRvQF-hSzvlbU,12509
3
3
  pydiverse/common/errors/__init__.py,sha256=FNeEfVbUa23b9sHkFsmxHYhY6sRgjaZysPQmlovpJrI,262
4
4
  pydiverse/common/util/__init__.py,sha256=fGdKZtLaTVBW7NfCpX7rZhKHwUzmBnsuY2akDOnAnjc,315
5
5
  pydiverse/common/util/computation_tracing.py,sha256=HeXRHRUI8vxpzQ27Xcpa0StndSTP63EMT9vj4trPJUY,9697
@@ -9,7 +9,7 @@ pydiverse/common/util/disposable.py,sha256=4XoGz70YRWA9TAqnUBvRCTAdsOGBviFN0gzxU
9
9
  pydiverse/common/util/hashing.py,sha256=6x77BKg-w61u59fuTe9di0BtU-kEKH6UTRcKsRoYJ84,1196
10
10
  pydiverse/common/util/import_.py,sha256=K7dSgz4YyrqEvqhoOzbwgD7D8HScMoO5XoSWtjbaoUs,4056
11
11
  pydiverse/common/util/structlog.py,sha256=g0d8yaXBzAxmGNGZYMnMP9dsSQ__jN44GAY8Mb0ABeI,3487
12
- pydiverse_common-0.2.1.dist-info/METADATA,sha256=Ax5YkSWgxpZ8tHM_pPAlmC-ZD-x3SIlj0P4xyepi76Y,3357
13
- pydiverse_common-0.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
14
- pydiverse_common-0.2.1.dist-info/licenses/LICENSE,sha256=AcE6SDVuAq6v9ZLE_8eOCe_NvSE0rAPR3NR7lSowYh4,1517
15
- pydiverse_common-0.2.1.dist-info/RECORD,,
12
+ pydiverse_common-0.3.1.dist-info/METADATA,sha256=Ul8A6lt1G9b05z5khak8nhekPdjTcQsaZxmoReueJXU,3357
13
+ pydiverse_common-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
14
+ pydiverse_common-0.3.1.dist-info/licenses/LICENSE,sha256=AcE6SDVuAq6v9ZLE_8eOCe_NvSE0rAPR3NR7lSowYh4,1517
15
+ pydiverse_common-0.3.1.dist-info/RECORD,,