Upgrade CSP to Perspective 3.0.3 #1
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Specific modifications done to CSP for this change:
csp/dataframe.py: Theto_perspectivefunction now must take aClientobject to construct theTable.csp/adapters/perspective.py: The use ofPerspectiveManagerwas changed to use of the newClient/Serverclasses.csp/impl/pandas_perspective.py: Perspective Table JSON update does not support directdateordatetimevalues now, as theses are not JSON serializable types. To work around this, the objects are directly translated to timestamp integers and sent to Perspective to be parsed into Perspective’s time types.to_dfwas rewritten to route throughPyArrow, but due to differences in how PyArrow chooses dtypes, there is some hackery around ordering of categories. We also removedto_dictandto_numpybecause they were removed in the Perspective 3.0 migration.csp/tests/impl/test_pandas_perspective.pymany tests were fixed to demonstrate changes that are needed to continue day-to-day use ofCspPerspectiveTable. Some tests were not fixed due to an outstanding Perspective bug (Unit test describing index behavior bug perspective-dev/perspective#2756).The use of PyArrow to underly Perspective’s DataFrame support leads to some semantic changes. PyArrow is much more eager to set columns to
CategoricalDtypeinstead ofStringDtype. It also has different behavior regarding category ordering, and perhaps others still not uncovered after fixing the tests.