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

Phase two design updates #12

Merged
merged 40 commits into from
Apr 14, 2021
Merged

Phase two design updates #12

merged 40 commits into from
Apr 14, 2021

Conversation

rmmilewi
Copy link
Member

I'm merging in these changes so I can start work on quality of life features described in #11 .

…to remove potential confusion in naming with planned analysis class.
…s(es) for performing analyses that process/distill our collected data.
…ass(es) for logging runs of Reposcanner and the lineage of any data that gets generated and/or consumed.
…hanged name of ReposcannerRoutineManager to ReposcannerManager, to reflect the fact that it'll (eventually) be used to orchestrate runs of both routines and data analyses.
…taEntity exists, and provided a way to compute an MD5 checksum of the file.
…onseModel now keeps a list to store attachments. If the caller doesn't provide any attachments, then this list remains empty. There is also now an addAttachment method so callers can add attachments after construction of the response model.
…expected to return anything, but instead can append attachments to the response object as needed after its construction in the execute() method.
…nnerDataEntity objects; added CLI argument for YAML config file to specify which routines and analysises should be activated; initializeRoutines is now called in run() rather than in the constructor, and expects the config data file.
…and analyses. Elevated ManagerTask to an abstract base class so we can have tasks for routines and tasks for analyses
…ow log both associated routines and analyses
… new class above it called BaseRequestModel. Making room for analysis requests.
…annerManger public to allow for unit testing, and added several tests.
…riting files has been moved out of routines/analyses and into the data layer, I'm removing the export() method from both routines and analyses. Now all the implementation logic can go in the execute() method.
…Store, which in turn can be passed to ReposcannerLabNotebook.onTaskStart() to log which files an analysis will grab from the store.
…ing in data is the responsibility of the AnalysisRequestModel, which can now fetch data from the data store based on the criteriaFunction(). The files grabbed by the request are logged in the notebook during a call to onTaskStart()
…ommented out the obsolete routines in reposcanner.contrib for the time being
…utine/analysis classes, canHandleRequest() is no longer considered an abstract method, but instead has a default implementation that checks the incoming request's class against abstract method getRequestType(). This should cut down on the amount of unnecessary boilerplate code. As an aside, it seems like pytest-mock is leaking mock implementations across unit tests, because this change caused test_ContributorAccountListRoutine_willRejectInAppropriateRequest to break. This is happening because another test mocks an implementation of the routine's parent's canHandleRequest(). I will need to look into this.
… be written to (e.g. the root directory) is now considered an error and will be flagged as such.
…enance logging purposes. Right now we use the hash of the latest revision/commit.
…rather than on publication. This allows us to check whether the output directory is valid at the start, rather than at the very end of execution when it is far too late.
…s argument which directs the entity to look in the first row of the records for a header rather than calling getColumnNames(), which only applies for CSV files that feature W3C-compliant metadata.
…tests. Still need to make sure the real input data matches the expectations of the analysis, which we'll know for sure once we run it live.
…tine, and ContributorFileInteractionAnalysisRequest.
@rmmilewi rmmilewi merged commit e0f397a into master Apr 14, 2021
@mrmundt mrmundt deleted the PhaseTwoDesignUpdates branch May 23, 2022 18:22
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

Successfully merging this pull request may close these issues.

1 participant