We generally need a way to handle a configuration file that is standardized regardless of the study/project in question. This means that each file has the same format, including the same default fields, with 'optional' fields only if well-documented along with explicit handler methods for them that fail when those fields are needed for a given network family.
For instance, if using a random network, very few parameters are needed. However, a small world network, such as connected_watts_strogatz_graph, other parameters are required like tries and, adjacently, omega. This implies that tries and omega are only necessary for some network families, which needs to be reflected in validating a configuration file.
Options for implementation:
A. We handle validation on a per network basis, meaning every nx.<generator> must have it's only validation.
B. We group validation handlers per family, meaning every within-family nx.<generator> must have a common validator. Likely this means a family-level abstraction, e.g., small_world(n, k, p, method="", ... ).
C. We use an omnibus validation method that includes case-based handlers.
Not sure which is the best option at this moment. There may be a creative way to thread these together so things are more maintainable/easy to update and add new topological frameworks.
We generally need a way to handle a configuration file that is standardized regardless of the study/project in question. This means that each file has the same format, including the same default fields, with 'optional' fields only if well-documented along with explicit handler methods for them that fail when those fields are needed for a given network family.
For instance, if using a random network, very few parameters are needed. However, a small world network, such as
connected_watts_strogatz_graph, other parameters are required liketriesand, adjacently,omega. This implies thattriesandomegaare only necessary for some network families, which needs to be reflected in validating a configuration file.Options for implementation:
A. We handle validation on a per network basis, meaning every
nx.<generator>must have it's only validation.B. We group validation handlers per family, meaning every within-family
nx.<generator>must have a common validator. Likely this means a family-level abstraction, e.g.,small_world(n, k, p, method="", ... ).C. We use an omnibus validation method that includes case-based handlers.
Not sure which is the best option at this moment. There may be a creative way to thread these together so things are more maintainable/easy to update and add new topological frameworks.