Saspy

Latest version: v5.101.0

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 8

5.4.2

Added

- `None` Nothing added

Changed

- `None` Nothing changed

Fixed

- `Fixed` Found a SAS code gen syntax error in the HTTP access method causing an error in the log
for sd2df. Needed to quote the fileref in a function. So, fixed that syntax error in that method.

Removed

- `None` Nothing removed

5.4.1

Added

- `None` Nothing added

Changed

- `Tweak` Added to the doc for the HTTP access method, adding the 'refreshtoken' keyword which goes along with the
'authtoken' keyword if you did your own authentication to SASLogon. Refreshtoken was added when authtoken was, I just
didn't get it in the doc then.

Fixed

- `Fixed` Based upon Issue 562, I enhanced sd2df() to allow you to provide 'errors=' as a keyword parameter which is
used in the decode() method when converting the bytes being streamed across to characters. The errors keyword determines
how transcoding failures are handled; the default being failure. See bytes.decode() in the Python doc for valid values.

Removed

- `None` Nothing removed

5.4.0

Added

- `None` Nothing added

Changed

- `Tweak` Changed the doc for saslib() to show how to deassign a libref using this method, as well
as how it's already doc'ed for assigning librefs. Nothing changed with the method, just documenting how to use
it for both assign and deassign.

Fixed

- `Fixed` An internal user found a bug with sd2df() where it was converting character variables values of
'NA' in the SAS Data Set to NaN in the dataframe instead of them being the string 'NA'. This turned out to
be due to the interaction of the na_values={...} dictionary I pass in, since I need to normalize the 30ish
different MISSING Values that SAS has, to individual values to provide Pandas so they are processed correctly.
The problem, however, is that the default value of keep_default_na= being True, appends my list to Pandas
list of what it thinks values are for NaN's instead of only using my list. The file is to specify keep_default_na=True
as well as provide my list via na_values={...}. That is fixed in this release.

Removed

- `None` Nothing removed

5.3.0

Added

- `None` Nothing added

Changed

- `Tweak` Changed the value of Context in the HTTP config definitions in the example sascfg.py file to use
the more likely `SAS Studio compute context`. This has no effect on any code. It's just an example configuration.

- `Enhanced` df2sd() now raises an exception (SASDFNamesToLongError) if any of the column names are longer than 32 bytes,
in the SAS Session encoding, since the data step will fail for those columns and produce errors in the log, but SAS still create
the SAS Data set, incorrectly. Previously, df2sd returned the SASData object, and issued a message about finding Errors in the log,
but didn't fail. The resultant SAS Data Set wasn't correct so checking for this and raising the exception is what should happen.
I also write a message with each column name that is too long, so you know which one(s) need to be changed. And remember, SAS's
restriction on these names is 32 bytes in the SAS Session encoding, and not necessarily 32 characters of utf-8 from Python.

Fixed

- `Fixed` I found a bug in the code that parses the authinfo file to find the authkey. It was using startswith(authkey)
to find the line to use, for the user and password. But startswith() isn't looking at the first word, only so many characters.
This could result in using the wrong line from the authinfo file. For instance, if you had a line with the authkey of `tom1` and
another line further in the file with authkey of `tom`, then looking for authkey='tom' would use the first line with `tom1` for the
credentials instead of the correct line starting with `tom`. Simple fix to parse it correctly so it compares the whole first
word of the line now.

Removed

- `None` Nothing removed

5.2.3

Added

- `None` Nothing added

Changed

- `Tweak` Cleaned up a few bit of documentation. Fixed a link in one section. Nothing significant or different.

- `Tweak` I moved a couple methods out of the individual Access Method modules and into the base module.
Over time, I had been able to make these be the same code in each access method, so now it's cleaner to have
the single implementation in one place instead of 4 places. No changes are required in user code.

- `Tweak` Modified a lookup in the HTTP access method to be more specific, in case something changes in the
API over time. Just getting a link from the list returned by Compute. Nothing changing from users perspective.

- `Tweak` Added some instructions to a couple of SASsession Exceptions to point users at the documentation.
Added messages pointing to the Configuration Doc, the Troubleshooting Guide in the doc and a message to open
an Issue on the saspy github site if needing more help.

Fixed

- `None` Nothing fixed in this release.

Removed

- `None` Nothing removed

5.2.2

Added

- `None` Nothing added

Changed

- `Tweak` Cleaned up a few bit of documentation. Nothing significant or different.

Fixed

- `Fixed` Some time ago, when the Python process terminated (normally), my __del__ methods on SASsession
objects would be called, and I would cleanly terminate the SAS process that was attached. That isn't behaving
as it used to, at least with the HTTP access method for Viya. So, I've added code to explicitly register
a termination exit routing where I then call my cleanup, and that now is behaving as expected for all three
access methods. The SAS process is cleanly terminated before Python finally terminates. So, this is working
as it used to again.

Removed

- `None` Nothing removed

Page 4 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.