generators = {}
-def get(name: str) -> int:
+def get(name: str, *, start=0) -> int:
"""
Returns a thread safe monotonically increasing id suitable for use
as a globally unique identifier.
0
>>> id_generator.get('student_id')
1
+ >>> id_generator.get('employee_id', start=10000)
+ 10000
+ >>> id_generator.get('employee_id', start=10000)
+ 10001
"""
if name not in generators:
- generators[name] = itertools.count()
+ generators[name] = itertools.count(start, 1)
x = next(generators[name])
logger.debug(f"Generated next id {x}")
return x
if __name__ == '__main__':
import doctest
+
doctest.testmod()