Releases: heavyai/pymapd
Add packaging to setup.py
Missed an import for setup.py, which made pip install fail.
Breaking change: dates and columnar load
In this release, a breaking change was made related to how OmniSci version 4.6+ handle dates on the backend. The new behavior is related to storing dates as epoch days instead of seconds. This means the following:
- for MapD/OmniSci <= 4.6, YOU MUST USE pymapd < 0.11 (a RuntimeError is thrown if version < 4.6 detected)
- For OmniSci 4.6+, pymapd >= 0.11 is required. No error message will be thrown if using previously released versions of pymapd (i.e. these versions are in the wild, no way to change previously downloaded versions)
Additionally, python 3.5 was dropped, as f-strings are now used within pymapd (a 3.6+ feature). pyarrow 0.13 is also now supported.
Notable PRs:
Update build files for pyarrow 0.13 (#195)
Remove python 3.5 compat (#207)
Swap itertuples for .values (#210)
Make DATEs consistent with respect to changes in Omnisci Core (#188)
Throw exception if version number <4.6 (#220)
Modify behavior of text and categorical columns
This release fixes a library design issue where string columns were previously uploaded as TEXT
type in OmniSci, when the more desirable behavior is likely TEXT ENCODING DICT
. Additionally, pandas categorical
columns will now be uploaded as TEXT ENCODING DICT
, which previously threw an error about Unhandled type
error.
Finally, Int8 support was fixed when using the Arrow loader. Additionally, the prior version of the Arrow loader mutated the input data frame in certain situations. This behavior is now remedied by making a copy of the dataframe if a type conversion is needed for upload into OmniSci.
Notable PRs
Add dict encoding to all string columns for load (#186)
Trim input sql strings (#187)
Force categorical to upload as TEXT ENCODED DICT (#189)
Remove erroneous int8 cast code and fix mutating df (#193)
Tighten package lower bounds, bugfixes and cleanups
For 0.9.0, we set lower bounds for pandas, numpy, sqlalchemy and pytest to 1) hopefully speed up conda solving for environments and 2) lower the surface area of acceptable package versions to test against. For users of individual conda environments or virtualenv, this should generally have no adverse affects.
We also removed the ability to specify the format of the Thrift message result on the Cursor
class (kwarg: columnar
). This was an internal detail not expected to be needed by the end user; removing it makes the code simpler to maintain.
Finally, we fixed #68, which prevented the ability to get results from tables having columns of arrays.
Support for higher-precision timestamps
This release updates the support for higher-precision timestamps in pymapd.
Bugfix: Installation issue on Windows
Issue with Windows and Python 3.7 around shared memory. Fix was to disable checking of shared memory functions on Windows, as shared memory via select_ipc
and select_ipc_gpu
not supported (shared memory functionality requires Python code to be running on same machine as OmniSci installation; OmniSci does not currently install natively on Windows, so shared memory functionality not currently possible)
Bugfix release
pymapd __version__
dunder erroneously removed in v0.8; this release adds the variable back.
Drop Python 2 support, added Arrow 0.12
This release of pymapd is the first Python 3 only release (3.5 - 3.7 supported); users needing Python 2 support should use pymapd 0.7.1 but plan to upgrade as soon as possible, as no further maintenance will be provided to support Python 2.
With OmniSci 4.5, we changed the default installation ports for connecting to the core database, and this change is reflected in this release. Depending on your OmniSci implementation, you might still be using 9091 or 6274 for the binary connection. If you are having trouble connecting using pymapd, verify port and specify it explicitly using port=6274
in the connection string.
Notable PRs:
Drop support for Python 2 (#155)
Update for pyarrow 0.12 (#157)
Add Date in days conversion support (#168)
Switch references from 9091 to 6274 (#173)
Bugfix release
Fixed typo with columnar load datetime conversion (#153)
Updated RAPIDS support, pyarrow 0.11, python 3.7
This release is the first pymapd release switching over to the cudf library for GPU dataframes (prior releases of pymapd supported pygdf, the prior version to cudf). Also supported are pyarrow 0.11.0 for select_ipc
as well as Python 3.7.
Note that if you install cudf, cudf requires pyarrow 0.10.0 and pymapd will downgrade pyarrow to allow installation.
Finally, the need for Cython to compile pymapd has been removed, which should hopefully fix any outstanding issues when installing from pip.
Notable changes:
Fix bug with loading Pandas dataframe row-wise (#133)
Allow ints and string inputs for TIMESTAMP columns (#138)
ENH: migrate to cudf (#139)
Update IPC code to remove Cython (#148)
Add support for pyarrow 0.11 and python3.7, remove python 3.4 (#151)