@@ -14,11 +14,39 @@ SONYFLAKE_MACHINE_ID_OFFSET: int
1414SONYFLAKE_TIME_OFFSET : int
1515
1616class SonyFlake :
17- def __init__ (self , * machine_id : int , start_time : Optional [int ] = None ): ...
18- def __iter__ (self ) -> Self : ...
19- def __next__ (self ) -> int : ...
17+ def __init__ (self , * machine_id : int , start_time : Optional [int ] = None ):
18+ """Initialize SonyFlake ID generator.
19+
20+ Args:
21+ machine_id: Unique ID(s) of a SonyFlake instance.
22+ A number in range [0, 0xFFFF]. Must be provided at least one,
23+ at most 65536, and have no duplicates.
24+ start_time: Time since which the SonyFlake time is defined as the
25+ elapsed time. A UNIX timestamp in UTC time zone, if unset
26+ defaults to 1409529600 (2014-09-01 00:00:00 UTC). Must be in
27+ the past.
28+
29+ Raises:
30+ ValueError: Invalid values of ``machine_id`` or ``start_time``.
31+ TypeError: ``machine_id`` or ``start_time`` are not integers.
32+ """
33+
34+ def __iter__ (self ) -> Self :
35+ """Returns ``self``."""
36+
37+ def __next__ (self ) -> int :
38+ """Produce a SonyFlake ID."""
2039
2140class MachineIDLCG :
22- def __init__ (self , x : int , / ) -> None : ...
23- def __iter__ (self ) -> Self : ...
24- def __next__ (self ) -> int : ...
41+ def __new__ (cls , seed : int , / ) -> Self :
42+ """Make a LCG.
43+
44+ Args:
45+ seed: Starting seed.
46+ """
47+
48+ def __iter__ (self ) -> Self :
49+ """Returns ``self``."""
50+
51+ def __next__ (self ) -> int :
52+ """Produce a Machine ID for :class:`SonyFlake`."""
0 commit comments