Open
Description
(Cloned from yahoo#22)
Collecting here enhancements that would nice to have on this project going forward:
Language & Build
- 1.1 (ENH: Preparations for releasing v1.3.0 yahoo/graphkit#30) Black-en
- 1.2 drop PY2 (EOL this year)
- 1.3 Proper use of named-kwargs
- 1.3.1 f-strings
- 1.3.2 type annotations
- 1.4 drop <PY3.6
- (FEAT: ExecutionPlan remember compilation results for elaborate plots yahoo/graphkit#29) 1.5 use
logging
module instead ofprint()
- 1.6 (ENH: use pytest instead of numpy for tests yahoo/graphkit#28) pytest fixtures and parametrization
- 1.7(ENH: Preparations for releasing v1.3.0 yahoo/graphkit#30) add API reference & link to RTD generated docs in github's project description.
- restructure a better roles for modules
base
&functional
.
2. Functionality
- 2.1 drop "backward compatibility"
Operation
, clean up API
(e.g.FunctionalOperation.compute()
raises not impl, and network using private_compute()
instead). - 2.2 (ENH: annotate graph edges as optionals yahoo/graphkit#20) store node data in
networkx
and not in classes - 2.3 add weights
- 2.4 produce deterministic results & failures:
- 2.4.1 use ordered-dicts (dicts are insertion-ordered in PY3.6+)
- 2.4.2 (FIX: use insertion-ordered sets for deterministic results yahoo/graphkit#23) use ordered-sets, or sort them prior to iterating them
- 2.4.3 (FEAT: ExecutionPlan remember compilation results for elaborate plots yahoo/graphkit#29) use ordered
networkx.DiGraph
.
- 2.5 support optional outputs.
- 2.6 support combination of modifiers (e.g. optional-sideffect) and merge with
_DataNode
. - 2.7 assign "colors" to operations, and compute selectively on sub-sets of colors (idea from @syamajala's https://github.com/slac-lcls/networkfox)
- 2.8 parallel execution:
- 2.8.1 executor must accept an external "shared" pool from
contextvars
(now uses the one fromNetwork
). - 2.8.2 enable parallelism with configs alone - don't create the pool by default.
- 2.8.3 enhance parallelism to support also Executors & Async coroutines.
- 2.8.1 executor must accept an external "shared" pool from
- 2.9 support functions with:
- 2.9.1
*args
(non-kwarg optionals) - 2.9.2
**kwargs
(to receive the whole solution).
- 2.9.1
- 2.10 add config-methods to top-level module.
- 2.11 use a "start-node" to insert input-values in solution.
- 2.12 assimilate
netop.compute()
/netop.__call__()
toFunctionalOperation
: onlycompute()
should accept inputs dict,__call__()
should accept**kwargs
. - 2.13 keep executing as many nodes as possible, despite errors
3. diagrams:
Metadata
Metadata
Assignees
Labels
No labels