mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 05:53:43 +00:00
conversions: Make NEXT_ID a true singleton.
We now instantiate NEXT_ID in sequencer.py, which avoids having multiple modules make multiple copies of a sequencer and possibly causing id collisions.
This commit is contained in:
@@ -40,10 +40,7 @@ from zerver.data_import.import_util import (
|
||||
|
||||
from zerver.data_import.hipchat_attachment import AttachmentHandler
|
||||
from zerver.data_import.hipchat_user import UserHandler
|
||||
from zerver.data_import.sequencer import sequencer
|
||||
|
||||
# Create one sequencer for our entire conversion.
|
||||
NEXT_ID = sequencer()
|
||||
from zerver.data_import.sequencer import NEXT_ID
|
||||
|
||||
# stubs
|
||||
ZerverFieldsT = Dict[str, Any]
|
||||
|
||||
@@ -9,10 +9,7 @@ from zerver.data_import.import_util import (
|
||||
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from zerver.data_import.sequencer import sequencer
|
||||
|
||||
# Create one sequencer for our entire conversion.
|
||||
NEXT_ID = sequencer()
|
||||
from zerver.data_import.sequencer import NEXT_ID
|
||||
|
||||
class AttachmentHandler:
|
||||
def __init__(self) -> None:
|
||||
|
||||
@@ -26,7 +26,7 @@ def sequencer() -> Callable[[str], int]:
|
||||
Use like this:
|
||||
|
||||
NEXT_ID = sequencer()
|
||||
message_id = NEXT_ID('message_id')
|
||||
message_id = NEXT_ID('message')
|
||||
'''
|
||||
seq_dict = dict() # type: Dict[str, Callable[[], int]]
|
||||
|
||||
@@ -37,3 +37,14 @@ def sequencer() -> Callable[[str], int]:
|
||||
return seq()
|
||||
|
||||
return next_one
|
||||
|
||||
'''
|
||||
NEXT_ID is a singleton used by an entire process, which is
|
||||
almost always reasonable. If you want to have two parallel
|
||||
sequences, just use different `name` values.
|
||||
|
||||
This object gets created once and only once during the first
|
||||
import of the file.
|
||||
'''
|
||||
|
||||
NEXT_ID = sequencer()
|
||||
|
||||
Reference in New Issue
Block a user