MCPcopy
hub / github.com/redis/redis-py / extract_expire_flags

Function extract_expire_flags

redis/utils.py:358–392  ·  view source on GitHub ↗
(
    ex: Optional[ExpiryT] = None,
    px: Optional[ExpiryT] = None,
    exat: Optional[AbsExpiryT] = None,
    pxat: Optional[AbsExpiryT] = None,
)

Source from the content-addressed store, hash-verified

356
357
358def extract_expire_flags(
359 ex: Optional[ExpiryT] = None,
360 px: Optional[ExpiryT] = None,
361 exat: Optional[AbsExpiryT] = None,
362 pxat: Optional[AbsExpiryT] = None,
363) -> List[EncodableT]:
364 exp_options: list[EncodableT] = []
365 if ex is not None:
366 exp_options.append("EX")
367 if isinstance(ex, datetime.timedelta):
368 exp_options.append(int(ex.total_seconds()))
369 elif isinstance(ex, int):
370 exp_options.append(ex)
371 elif isinstance(ex, str) and ex.isdigit():
372 exp_options.append(int(ex))
373 else:
374 raise DataError("ex must be datetime.timedelta or int")
375 elif px is not None:
376 exp_options.append("PX")
377 if isinstance(px, datetime.timedelta):
378 exp_options.append(int(px.total_seconds() * 1000))
379 elif isinstance(px, int):
380 exp_options.append(px)
381 else:
382 raise DataError("px must be datetime.timedelta or int")
383 elif exat is not None:
384 if isinstance(exat, datetime.datetime):
385 exat = int(exat.timestamp())
386 exp_options.extend(["EXAT", exat])
387 elif pxat is not None:
388 if isinstance(pxat, datetime.datetime):
389 pxat = int(pxat.timestamp() * 1000)
390 exp_options.extend(["PXAT", pxat])
391
392 return exp_options
393
394
395def truncate_text(txt, max_length=100):

Callers 6

getexMethod · 0.90
increxMethod · 0.90
msetexMethod · 0.90
setMethod · 0.90
hgetexMethod · 0.90
hsetexMethod · 0.90

Calls 3

DataErrorClass · 0.90
appendMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected