summaryrefslogtreecommitdiff
path: root/id_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'id_generator.py')
-rw-r--r--id_generator.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/id_generator.py b/id_generator.py
index 4e650dc..bcd3a83 100644
--- a/id_generator.py
+++ b/id_generator.py
@@ -10,7 +10,7 @@ logger = logging.getLogger(__name__)
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.
@@ -20,9 +20,13 @@ def get(name: str) -> int:
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