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.
The relevant commit here is:
efd9b7b
This is a proposal to cleanup the duplicate completions code.
This would help in integrating #37 in a proper way.
Contains three changes:
(1)
DAWG
now gets a paramcompletions
which lets any baseDAWG
create a guide(2) Completions are delegated to a new
PyCompletions
class; this helps avoid code duplication (e.g. inIntCompletionDAWG
). Also,PyCompletions
will create the underlyingCompletions
instance in its constructor, which will reduce memory allocations (inmaster
, this underlying class is recreated on each function call requesting a completion). At the same time, you can create multiple instances for multiple threads.(3) loading and storing are adjusted; as a nice aside, you can load a
DAWG
and it will automatically load completions if they were storedHere's an example with the changed API that now involved a
completer()
method:I'd prefer to change
dawg.CompletionDAWG
todawg.CompletionsDAWG
(added s) andd.completions()
for consistency (see poke1024@a50edcd).