mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +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_attachment import AttachmentHandler
|
||||||
from zerver.data_import.hipchat_user import UserHandler
|
from zerver.data_import.hipchat_user import UserHandler
|
||||||
from zerver.data_import.sequencer import sequencer
|
from zerver.data_import.sequencer import NEXT_ID
|
||||||
|
|
||||||
# Create one sequencer for our entire conversion.
|
|
||||||
NEXT_ID = sequencer()
|
|
||||||
|
|
||||||
# stubs
|
# stubs
|
||||||
ZerverFieldsT = Dict[str, Any]
|
ZerverFieldsT = Dict[str, Any]
|
||||||
|
|||||||
@@ -9,10 +9,7 @@ from zerver.data_import.import_util import (
|
|||||||
|
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
from zerver.data_import.sequencer import sequencer
|
from zerver.data_import.sequencer import NEXT_ID
|
||||||
|
|
||||||
# Create one sequencer for our entire conversion.
|
|
||||||
NEXT_ID = sequencer()
|
|
||||||
|
|
||||||
class AttachmentHandler:
|
class AttachmentHandler:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ def sequencer() -> Callable[[str], int]:
|
|||||||
Use like this:
|
Use like this:
|
||||||
|
|
||||||
NEXT_ID = sequencer()
|
NEXT_ID = sequencer()
|
||||||
message_id = NEXT_ID('message_id')
|
message_id = NEXT_ID('message')
|
||||||
'''
|
'''
|
||||||
seq_dict = dict() # type: Dict[str, Callable[[], int]]
|
seq_dict = dict() # type: Dict[str, Callable[[], int]]
|
||||||
|
|
||||||
@@ -37,3 +37,14 @@ def sequencer() -> Callable[[str], int]:
|
|||||||
return seq()
|
return seq()
|
||||||
|
|
||||||
return next_one
|
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