civisanalytics / civis-python

Civis API Python Client
BSD 3-Clause "New" or "Revised" License
34 stars 26 forks source link

BUG check for primary key to determine how to read index #277

Closed elsander closed 5 years ago

elsander commented 5 years ago

This PR fixes a bug to ensure compatibility with CivisML v2.2.2. In 2.2.2, CivisML does not create an index column when the user does not specify a primary key. This fix forces civis.ml.ModelFuture.table to check for a primary key before determining if the first column is an index or not. Unfortunately, the metadata structure is different for training and prediction, so this fix includes two complicated hardcoded paths through the metadata, but I don't see any way around this. I tested the fix on three actual model jobs (training with pkey, predict with pkey, predict without pkey) and it behaved as expected for all three.

elsander commented 5 years ago

Looks like there's a Travis issue with installing pytest; it's building on 3.5 but nothing else. Have you run into this before, @stephen-hoover ?

stephen-hoover commented 5 years ago

I have not. Looks like there's version incompatibilities. The 3.6 build has the error

pytest-cov 2.6.1 has requirement pytest>=3.6, but you'll have pytest 3.3.0 which is incompatible. pyarrow 0.12.0 has requirement numpy>=1.14, but you'll have numpy 1.13.3 which is incompatible.

My guess is that you could solve this by adjusting some of the version requirements in dev-requirements.txt.