8000 Simple Paging Endpoint for GraphQL/Metadata API by t8y8 · Pull Request #623 · tableau/server-client-python · GitHub
[go: up one dir, main page]

Skip to content

Conversation

@t8y8
Copy link
Collaborator
@t8y8 t8y8 commented May 18, 2020

I took a simple approach for now, unlike Pager which takes an endpoint and works some magic, this just runs a query and collects the results.

@t8y8
Copy link
Collaborator Author
t8y8 commented May 19, 2020

Note, I thought of a way to do testing based on https://requests-mock.readthedocs.io/en/latest/response.html#response-lists

Copy link
Contributor
@shinchris shinchris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not too familiar with how metadata api works, but looks good 👍Just a couple of questions left in line.

@t8y8
Copy link
Collaborator Author
t8y8 commented May 21, 2020

Ok getting those tests in there was an adventure. I still don't do any error checking on nth calls, only the first. I'll think about if that matters, or for not just make this endpoint "all or nothing"

@t8y8 t8y8 requested a review from shinchris May 21, 2020 02:24
@t8y8 t8y8 merged commit 1630205 into tableau:development May 21, 2020
@t8y8 t8y8 deleted the gql-page branch May 21, 2020 23:10
This was referenced Jul 10, 2020
gaoang2148 pushed a commit that referenced this pull request Jul 10, 2020
* Sync development with master branch (#613)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

* Adds hidden_views parameter to publish() (#614)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Adds hidden views parameter to workbook publish

* Pycodestyle

Co-authored-by: Chris Shin <cshin@tableau.com>
Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

* Code cleanup (#618)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Cleans up imports and fixes some errors along the way

* pycodestyle fix for single char var name

Co-authored-by: Chris Shin <cshin@tableau.com>
Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

* update comment to say Python 3.5 is required to run samples (#619)

* update comment to say Python 3.5 is required to run samples

* pycodestyle fix for single char var name

* Simple Paging Endpoint for GraphQL/Metadata API (#623)

Because GraphQL can be arbitrarily complex and nested, we can't get as smart with an automatic Pager object without parsing the query, and that's a can of worms.

So for now, I added a new endpoint that will take a single query with one set of pagination parameters and run through it until it ends. It's not very smart, but it works.

* Support Metadata Services Backfill & Eventing APIs (#626)

Simple JSON endpoints that return the status of Metadata Services related events.

* Adds in maxage param to csv and pdf export options (#635)

* Adds in maxage param to csv and pdf export options

* Fixes style issue

* Adding named param to test to be clear

* User favorites endpoint (#638)

* Create FavoriteRequest factory

* Create favorites_endpoint

* Enable addition of favorites

* Enabled deletion of favorites

* Fix XML response calls

* Genericize descriptor

* Fix typo

* Remove outdated content

* Use more descriptive variable names

* Adjust API version

* Create Favorite "enum"

* Factor response parsing logic to model

The favorites item is now a dictionary.
The user_item has been altered to reflect this.

* Test favorites.get

* Test adding a favorite workbook

* Test adding favorite view

* Test adding favorite data source

* Test adding favorite project

* Test favorite deletion

* Expand favorites test_get

* Unpack list of views in class method response

* Add Favorites back to import

* Replace deprecated assertEquals with assertEqual

* Rename Favorite FavoriteItem and encapsulate

Co-authored-by: Woods <jordan.woods@mkcorp.com>

* Fixing style error

* Fixes maxage to allow 0 as input (#639)

* Adds a sample for publishing datasources (#644)

* Adds a sample for publishing datasources

* Addresses feedback to use PAT and async flag

* Prep for v0.12 (#645)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Prepares v0.12 release

* Fixes typo in changelog

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>
Co-authored-by: Stephen Mitchell <scum@mac.com>
Co-authored-by: Mary Brennan <mbren@users.noreply.github.com>
Co-authored-by: Tyler Doyle <kingt8y8@gmail.com>
Co-authored-by: jorwoods <jorwoods@users.noreply.github.com>
Co-authored-by: Woods <jordan.woods@mkcorp.com>
shinchris pushed a commit that referenced this pull request Jul 10, 2020
* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Development to master for v0.12 (#646)

* Sync development with master branch (#613)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

* Adds hidden_views parameter to publish() (#614)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Adds hidden views parameter to workbook publish

* Pycodestyle

Co-authored-by: Chris Shin <cshin@tableau.com>
Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

* Code cleanup (#618)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Cleans up imports and fixes some errors along the way

* pycodestyle fix for single char var name

Co-authored-by: Chris Shin <cshin@tableau.com>
Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

* update comment to say Python 3.5 is required to run samples (#619)

* update comment to say Python 3.5 is required to run samples

* pycodestyle fix for single char var name

* Simple Paging Endpoint for GraphQL/Metadata API (#623)

Because GraphQL can be arbitrarily complex and nested, we can't get as smart with an automatic Pager object without parsing the query, and that's a can of worms.

So for now, I added a new endpoint that will take a single query with one set of pagination parameters and run through it until it ends. It's not very smart, but it works.

* Support Metadata Services Backfill & Eventing APIs (#626)

Simple JSON endpoints that return the status of Metadata Services related events.

* Adds in maxage param to csv and pdf export options (#635)

* Adds in maxage param to csv and pdf export options

* Fixes style issue

* Adding named param to test to be clear

* User favorites endpoint (#638)

* Create FavoriteRequest factory

* Create favorites_endpoint

* Enable addition of favorites

* Enabled deletion of favorites

* Fix XML response calls

* Genericize descriptor

* Fix typo

* Remove outdated content

* Use more descriptive variable names

* Adjust API version

* Create Favorite "enum"

* Factor response parsing logic to model

The favorites item is now a dictionary.
The user_item has been altered to reflect this.

* Test favorites.get

* Test adding a favorite workbook

* Test adding favorite view

* Test adding favorite data source

* Test adding favorite project

* Test favorite deletion

* Expand favorites test_get

* Unpack list of views in class method response

* Add Favorites back to import

* Replace deprecated assertEquals with assertEqual

* Rename Favorite FavoriteItem and encapsulate

Co-authored-by: Woods <jordan.woods@mkcorp.com>

* Fixing style error

* Fixes maxage to allow 0 as input (#639)

* Adds a sample for publishing datasources (#644)

* Adds a sample for publishing datasources

* Addresses feedback to use PAT and async flag

* Prep for v0.12 (#645)

* delete docs folder from master (#520)

* delete folder

* add back readme for docs

* Fix logger statement in User.add (#608)

The logger statement is using the parameter to output the id of the user, but that isnt set until line 67 and saved to a new variable. We want the logger statement to use that new user

* Prepares v0.12 release

* Fixes typo in changelog

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>
Co-authored-by: Stephen Mitchell <scum@mac.com>
Co-authored-by: Mary Brennan <mbren@users.noreply.github.com>
Co-authored-by: Tyler Doyle <kingt8y8@gmail.com>
Co-authored-by: jorwoods <jorwoods@users.noreply.github.com>
Co-authored-by: Woods <jordan.woods@mkcorp.com>

Co-authored-by: Jac <jacalata@users.noreply.github.com>
Co-authored-by: Reba Magier <rebeccam@syapse.com>
Co-authored-by: Stephen Mitchell <scum@mac.com>
Co-authored-by: Mary Brennan <mbren@users.noreply.github.com>
Co-authored-by: Tyler Doyle <kingt8y8@gmail.com>
Co-authored-by: jorwoods <jorwoods@users.noreply.github.com>
Co-authored-by: Woods <jordan.woods@mkcorp.com>
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

0