hoverinc / tableau-utilities

A module and CLI Utility for managing Tableau objects, locally, and in Tableau Online.
MIT License
4 stars 1 forks source link

Refactor for v 2 #45

Closed JustinGrilli closed 1 year ago

JustinGrilli commented 1 year ago

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 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

Development Changes

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

JustinGrilli commented 1 year ago

@jaybythebay

Once we resolve the CI issue

As far as merging this PR, I have an idea - just to be on the safe side:

  1. I will create a fresh branch off of main, in the hoverinc repo, called release-v2
  2. We can then merge this PR into release-v2
  3. From there, we can test branching release-v2 off of refactor-to-use-restapi, to see if we still see a diff a. Assuming we don't see a diff, we can merge into main