Skip to content
This repository has been archived by the owner on Oct 16, 2023. It is now read-only.

Generate gafferpy core api using fishbowl #981

Closed
t92549 opened this issue Mar 14, 2022 · 5 comments · Fixed by #1015
Closed

Generate gafferpy core api using fishbowl #981

t92549 opened this issue Mar 14, 2022 · 5 comments · Fixed by #1015

Comments

@t92549
Copy link
Contributor

t92549 commented Mar 14, 2022

Currently, new Operations in Gaffer require a manual and tedious update to the gafferpy api (e.g. 2e8afc1).
Instead, this code could be generated automatically using fishbowl.
Rather than a developer having to do this manually, it would be nice if there was some way to automate gafferpy code changes when the Gaffer version gets updated in a release.
This would effectively mean the core part of gafferpy would be manually maintained but all the Operations etc. that can be generated will be automatically updated/maintained.

@t92549
Copy link
Contributor Author

t92549 commented Jun 14, 2022

As part of this, fishbowl should be generally cleaned and moved under gafferpy as a tool. It will only be responsible for generating implementations for Gaffer's Operations, Functions, Predicates and Binary Operators.

t92549 added a commit that referenced this issue Jun 15, 2022
t92549 added a commit that referenced this issue Jun 15, 2022
t92549 added a commit that referenced this issue Jun 15, 2022
t92549 added a commit that referenced this issue Jun 17, 2022
t92549 added a commit that referenced this issue Jun 21, 2022
@t92549 t92549 modified the milestones: v2.0.0, v2.0.0-alpha-0.3 Jul 13, 2022
t92549 added a commit that referenced this issue Jul 25, 2022
t92549 added a commit that referenced this issue Jul 25, 2022
@t92549
Copy link
Contributor Author

t92549 commented Jul 26, 2022

As part of this, fishbowl should be generally cleaned and moved under gafferpy as a tool. It will only be responsible for generating implementations for Gaffer's Operations, Functions, Predicates and Binary Operators.

As well as this it can now generate the GET endpoints in gaffer_config.py

@t92549
Copy link
Contributor Author

t92549 commented Jul 26, 2022

This issue has been re-scoped to just cover the clean up and movement of fishbowl into gafferpy as a sub-module.
Fishbowl has been refactored so that by default it generates classes to be used by core gafferpy, rather than it being a separate client.
gafferpy has been refactored to use these generated classes.
To tie this together, a few other cleanups have happened, for example the connector has been refactored to allow better extensibility, and the READMEs have been updated to better explain the interaction between the two.

@t92549 t92549 changed the title Automate maintenance of gafferpy code using fishbowl Generate gafferpy core api using fishbowl Jul 26, 2022
@t92549 t92549 removed the automation label Jul 26, 2022
@t92549
Copy link
Contributor Author

t92549 commented Jul 26, 2022

The part of this issue that related to automating the usage of fishbowl to maintain gafferpy has been moved into a separate issue, as the work is blocked.
For now it can be used manually by running a spring-rest api and then running generate.py.

t92549 added a commit that referenced this issue Aug 16, 2022
* gh-981: Cleanup gafferpy

* gh-981: Format readme

* Revert "gh-981: Format readme"

This reverts commit 3e8c48c.

* gh-981: Rework how different client libraries are used

* gh-981: Tidy up warning

* gh-981: Fix tests

* gh-981: Moved fishbowl under gafferpy, works with the gafferpy connector

* gh-981: Make json return optional

* gh-981: Operations are generated and tested

* gh-981: Binary operators added

* Added generated functions

* Add generated predicates

* Fishbowl will make required args actually required

* Fix GetElements Op with helper

* Disable test when not using spring-rest api

* Generate config paths

* Cleanup paths and modules

* Bugfix config and cleanup

* Add licenses to fishbowl and add generated notice

* Change fishbowl README

* Cleanup README

* Backwards compatibility for imports

* Cleanup docstrings

* Refactor to use **kwargs

* Use core-rest endpoint so tests can pass

* Fixed bug with If operation extension

* Added comments where generated code imported

* Remove SeedMatching

* Update READMEs

* Fixed whitespace

* Added temp fix for missing function endpoints

* Added to init.py and corrected uri

* Added some doc about spring-rest /version

* Added https test
@t92549 t92549 linked a pull request Aug 16, 2022 that will close this issue
@t92549
Copy link
Contributor Author

t92549 commented Aug 16, 2022

Closed by #1015

@t92549 t92549 closed this as completed Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant