Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add classes for graph evaluation input/output #268

Open
clegaspi opened this issue Aug 12, 2019 · 0 comments
Open

Add classes for graph evaluation input/output #268

clegaspi opened this issue Aug 12, 2019 · 0 comments

Comments

@clegaspi
Copy link
Contributor

clegaspi commented Aug 12, 2019

Right now, graph evaluation passes around tuples of (Model, list[Quantity]) to represent a "model and input set". I think this could be more elegantly handled by a fairly simple object. It'd make the code more readable.

Could also move _generates_noncyclic_output() from Graph to this class to evaluate upon creation if we wanted to do that. Right now that evaluation is cut out because it can be relatively expensive during graph evaluation. With provenance caching that we are doing now, it could be made a lot faster.

I think that with the integration with MPContribs in mind and the need for a DataTable-like data structure, maybe the list of Quantity objects could be represented by a row in a table (with certain columns)? I have to look at what exactly this is called in pandas.

We could also have a return set like OutputSet or something. This could hold an exception/error if there was an evaluation problem. It might more elegantly handle this "allow_model_failure" kwarg that we are using. Additionally, we should flesh out custom exceptions so that we catch bugs separately from model evaluation failures due to the nature of the model.

@clegaspi clegaspi changed the title Add InputSet class? Add classes for graph evaluation input/output Aug 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant