projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adds unittest.
[python_utils.git]
/
id_generator.py
diff --git
a/id_generator.py
b/id_generator.py
index 4e650dca9f13662a1ace7013d4f00bcd3a0082e2..d4c70166bb3c52974793840cb8bebbf288500a49 100644
(file)
--- a/
id_generator.py
+++ b/
id_generator.py
@@
-10,7
+10,7
@@
logger = logging.getLogger(__name__)
generators = {}
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.
"""
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
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:
"""
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
x = next(generators[name])
logger.debug(f"Generated next id {x}")
return x
@@
-30,4
+34,5
@@
def get(name: str) -> int:
if __name__ == '__main__':
import doctest
if __name__ == '__main__':
import doctest
+
doctest.testmod()
doctest.testmod()