innobi / pantab

Read/Write pandas DataFrames with Tableau Hyper Extracts
BSD 3-Clause "New" or "Revised" License
94 stars 35 forks source link

Remove Dependency on tableauhyperapi #267

Open WillAyd opened 7 months ago

WillAyd commented 7 months ago

We have a runtime dependency on the Tableauhyperapi. While this is not problematic in theory, in practice we have started to bundle our own copy of the Hyper API and executable with pantab 4.0, so downloading both pantab and the tableauhyperapi duplicates copies of those (only the former from pantab should be used). These are rather large files, so for users in containers or other space-constrained areas this is wasteful

The only thing we really use from the tableauhyperapi Python library is the TableName object. A duck-typed version of this internal to pantab would help us break that dependency for runtime (keeping around for testing is OK)

abhinavDhulipala commented 5 months ago

I would love to see the tabluehyperapi gone as well! It keeps us from using apple silicon hardware. What is the plan for implementing frames_from_hyper without the hyperapi. It would seem like we would need to reimplement the Connection API, which seems like a bigger lift. I personally don't use this, but it would be a breaking change for the library, so definitely worth consideration.

WillAyd commented 5 months ago

Hey @abhinavDhulipala - just to be clear the scope of this issue is to remove the dependency on the Python package, but we still bundle a copy of the C++ library.

I assume that won't help your use case, and I don't believe that would even be possible without violating contractual terms for using the Hyper API