I wanted to re-imagine the tableau-utilities package.
I want to add much more functionality to the TableauServer class - and have the outputs be clearly defined as dataclass objects.
I want to remove the concept of tds from the end user - they should just think of the file as a Datasource.
They should not need to concern themselves with extracting and repackaging a tdsx file - to them, they are just making updates, and saving those changes.
The TDS class would now be Datasource. And in the future, we can add Workbook.
Rather than tds.add('column', a='bunch', of='args') you should now be able to datasource.columns.add(Column).
This way all of the attributes are clearly defined in dataclasses, for the objects we would like to add/update/delete.
Changes
Re-organized the folder structure
Split out the various concepts to their own folders, i.e. tableau_server and tableau_file
Converted TableauServer to only use the tableau REST API - to allow for better optimized and more customized code
Also, this will allow us to add more functionality, like permissions management, in the future
Defined dataclasses for tableau_server objects and tableau_file objects
Completely refactored TDS into Datasource, to simplify the code, and make the usage more clear for the end user
Removed support for legacy Tableau files
e.g. folder elements are contained in folders-common
Complete refactor of the CLI
Development Changes
Added a sample_settings.yaml file for an example for users to create a local settings.yaml file to store credentials
Added a scripted_testing file, to testing the local package
Added a section to the readme for development
Refactored test_tableau_utilities as required for class/functionality changes, and to no longer support legacy tableau files
Removed legacy resources
Notes to reviewer
Since this is a major refactor/change, I think it is worthy of being considered a major release to 2.0.0.
Tests
[x] Tests ran and passed
[x] Tested the CLI
[x] Tested various functionalities locally, in scripted_testing
Summary
I wanted to re-imagine the tableau-utilities package.
I want to add much more functionality to the TableauServer class - and have the outputs be clearly defined as dataclass objects.
I want to remove the concept of
tds
from the end user - they should just think of the file as a Datasource. They should not need to concern themselves with extracting and repackaging atdsx
file - to them, they are just making updates, and saving those changes.The
TDS
class would now beDatasource
. And in the future, we can addWorkbook
. Rather thantds.add('column', a='bunch', of='args')
you should now be able todatasource.columns.add(Column)
. This way all of the attributes are clearly defined in dataclasses, for the objects we would like to add/update/delete.Changes
tableau_server
andtableau_file
TableauServer
to only use the tableau REST API - to allow for better optimized and more customized codetableau_server
objects andtableau_file
objectsTDS
intoDatasource
, to simplify the code, and make the usage more clear for the end userfolder
elements are contained infolders-common
Development Changes
sample_settings.yaml
file for an example for users to create a localsettings.yaml
file to store credentialsscripted_testing
file, to testing the local packagetest_tableau_utilities
as required for class/functionality changes, and to no longer support legacy tableau filesNotes to reviewer
Since this is a major refactor/change, I think it is worthy of being considered a major release to
2.0.0
.Tests
scripted_testing