Guarantee ordering of events and entitites #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request contains minor updates to
Main.py
intended to preserve ordering or critical dictionaries when sent for Causality Detection. Also, this includes sortingkeys
of dictionaries prior to iterating through them to preservespan
ordering as it appears in the text submitted to SOFIA.Until Python 3.6 there was no guarantee of ordering in dictionaries. Python 3.6 and beyond, insertion ordering is guaranteed. Take this example:
In Python 2, if we ask for
sample.keys()
we will be returned keys in arbitrary order. For example this could return['bob', 'susan', 'jim']
.In Python 3
sample.keys()
will return the keys in insertion order which must be:['susan', 'bob', 'jim']
Since the
key
order is relied on byCausalityDetection.py
, it is preferable to useOrderedDict
to ensure compatibility with Python 2 and Python 3.