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

Use GraphQL client instead of custom model and IO #9

Merged
merged 18 commits into from
Jul 7, 2023

Conversation

andy-sweet
Copy link
Collaborator

@andy-sweet andy-sweet commented Jun 30, 2023

This uses the GraphQL client defined in the cryoet-data-portal package related to this project. The main motivations for doing this are as follows.

  1. Reduce the code to maintain here.
  2. Simplify keeping up with structural/schematic changes to the data portal.
  3. Exercise the code in cryoet-data-portal and improve it.

Listing the datasets and tomograms seems a little slower than using s3fs/fsspec, but the benefits are worth the cost.

This removes support for the local filesystem as a storage backend for the portal data because obviously the client does not support that. The code to support different URLs for the GraphQL entry point are kept, but we make the line-edit read-only in the GUI because only the default URL works and others cause problems.

This also removes mocks from some of the tests because mocking the client is trickier than mocking our own classes/functions. Tests take longer, but we adjusted the timeouts to account for that. That's good enough as a short term solution, but ultimately we need mocks/fakes to avoid long running tests.

@codecov
Copy link

codecov bot commented Jul 7, 2023

Codecov Report

Merging #9 (65d0e09) into main (b532fab) will decrease coverage by 0.77%.
The diff coverage is 79.51%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
- Coverage   88.10%   87.34%   -0.77%     
==========================================
  Files          15       13       -2     
  Lines         639      553      -86     
==========================================
- Hits          563      483      -80     
+ Misses         76       70       -6     
Impacted Files Coverage Δ
src/napari_cryoet_data_portal/__init__.py 71.42% <ø> (-3.58%) ⬇️
src/napari_cryoet_data_portal/_open_widget.py 83.72% <54.54%> (+2.54%) ⬆️
src/napari_cryoet_data_portal/_listing_widget.py 84.90% <61.90%> (-3.33%) ⬇️
src/napari_cryoet_data_portal/_metadata_widget.py 94.11% <75.00%> (+14.11%) ⬆️
src/napari_cryoet_data_portal/_uri_widget.py 96.22% <83.33%> (-0.70%) ⬇️
src/napari_cryoet_data_portal/_reader.py 90.19% <95.83%> (-2.12%) ⬇️
src/napari_cryoet_data_portal/_sample_data.py 100.00% <100.00%> (ø)
src/napari_cryoet_data_portal/_widget.py 88.23% <100.00%> (+0.23%) ⬆️

... and 1 file with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@andy-sweet andy-sweet requested a review from jgadling July 7, 2023 21:38
@andy-sweet andy-sweet merged commit 4d078cd into main Jul 7, 2023
9 of 11 checks passed
@andy-sweet andy-sweet deleted the feat-use-client branch July 7, 2023 21:58
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.

2 participants