Open ianmkenney opened 5 months ago
Hello @ianmkenney! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
gufe/tokenization.py
:Line 672:80: E501 line too long (87 > 79 characters) Line 781:80: E501 line too long (84 > 79 characters) Line 786:80: E501 line too long (86 > 79 characters)
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 98.97%. Comparing base (
12bc644
) to head (ba0680a
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@richardjgowers I think this is ready.
I'll take on review @ianmkenney!
Thanks for taking on the review @dotsdl - maybe this is a good start for a more regular GUFE meeting?
@ianmkenney is this ready for review in your view? Still WIP?
@dotsdl should be good for review
This PR implements the
KeyedChain
representation forGufeTokenizable
s originally implemented in alchemiscale. As it appears general and useful enough, an upstream implementation seems appropriate.The
KeyedChain
representation encodes aGufeTokenizable
as a list of Tuples with theGufeKey
and keyed dicts of other required tokenizables as their first and second elements, respectively. These tokenizables are sorted such that, when decoded in order, all required dependencies have been satisfied while accounting for duplicated dependencies down the tree structure. This representation is particularly useful when encoding/decodingGufeTokenizables
on systems without a populatedTOKENIZATION_REGISTRY
.