sassoftware / python-pipefitter

The SAS pipefitter package provides a Python API for developing pipelines for data transformation and model fitting as stages of a repeatable machine learning workflow in either SAS v9 or SAS Viya.
Apache License 2.0
12 stars 7 forks source link

Getting started examples fails with SAS backend. #6

Closed jld23 closed 1 year ago

jld23 commented 3 years ago

The doc example is here. You get an invalid syntax error in the SAS code.

Lucachef33 commented 1 year ago

About the backend procedure, I get an error running the pipeline with sas9.4 (code is [19] pipeline_model = pipe.fit(train_ds) ). I receive the following: AttributeError: 'SASSessionCOM' object has no attribute '_logcnt'. The message refers to line 62 of pipefitter\backends\sas\transformer\imputer.py which is: tname = "imp"+table.sas._io._logcnt()+table.table[0:18] I don't know what to put inside _logcnt() and I am using the "iomcom" method to connect via SASPy.

tomweber-sas commented 1 year ago

Hey @Lucachef33 , I see this is a bug in the code and I'm looking to see what the right way to fix it is. It's reaching down into a lower level of code, borrowing an incrementor method that it shouldn't be, and isn't in the COM access method. This code should have it's own way of doing that. I'm not familiar enough with this package at the moment to give a fix immediately; I'll have to figure out how to run this and test the fix to be sure it's right. In the mean time, can you use the IOM access method instead of COM? It performs significantly better and has much more functionality; not that the functionality would come through only using it via this package, but it performs better and it has that method this package is trying to use, so it wouldn't get this error. I'll work on fixing this package so it's not using a method like that which it shouldn't be and let you know when I have something. Tom

tomweber-sas commented 1 year ago

Hey, @Lucachef33 I just pushed a fix that ought to solve this error you were getting. Can you pull from main and see if it gets you past this problem.

Thanks! Tom

Lucachef33 commented 1 year ago

Thank you very much @tomweber-sas , it works perfectly now! 🤓

tomweber-sas commented 1 year ago

Awesome! I'll go ahead and close this then. Thanks! Tom