Improvements
- Added a new example notebook for git integration
- Added a model migration tool for migrating Python models from Viya 3.5 to Viya 4
- Improved handling of CAS authentication with tokens
Bugfixes
- Fixed git integration failure caused by detached head
- Fixed minor bugs in score code generation feature
- Fixed 500 error when importing models to Viya 4 with prewritten score code
- Fixed incorrect handling of optional packages in pzmm
Bugfixes
- Removed linux breaking import from new git integration feature
- Various minor bug fixes in the git integration feature
Improvements
- Added Git integration for better tracking of model history and versioning.
- Added MLFlow integration for simple models, allowing users to import simple MLFlow models, such as sci-kit learn, to SAS Model Manager
Bugfixes
- Fixed an issue where
folders.create_folder()would attempt to use root folder as parent if desired parent folder wasn't found. Now correctly handles parent folders and raises an error if folder not found.
Bugfixes
- Fix an issue where
pzmm.ZipModel.zipFiles()threw an error on Python 3.6.1 and earlier.
Bugfixes
- Fixed an issue with
register_model()where random forest, gradient boosting, and SVM regression models with nominal inputs where incorrectly treated as classification models.
Improvements
model_repository.add_model_content()will now overwrite existing files instead of failing.
Bugfixes
PagedList.__repr__()no longer appears to be an empty list.
Improvements
Sessionnow supports authorization using OAuth2 tokens. Use thetoken=parameter in the constructor when an existing access token token is known. Alternatively, omitting theusername=andpassword=parameters will now prompt the user for an auth code.
Changes
current_sessionnow stores & returns the most recently created session, not the first created session. This was done to alleviate quirks where an old, expired session is implicitly used instead of a newly-created session.- Removed deprecated
raw=parameter fromsasctl.core.request(). - Dropped support for Python 2.
Bugfixes
- Fixed an issue that caused score code generation by
pzmmmodule to fail with Viya 3.5.
Bugfixes
- SSL warnings no longer repeatedly raised when
verify_ssl=FalsebutCAS_CLIENT_SSL_CA_LISTis specified. model_repository.delete_model_contents()no longer fails when only one file is found.
Improvements
- All
delete_*()service methods returnNoneinstead of empty string. - All
get_*()service methods issue a warning if multiple items are found when retrieving by name.
Bugfixes
- Fixed an import issue that could cause an error while using the
pzmmsubmodule.
Improvements
PagedListhandles situations where the server over-estimates the number of items available for paging.- The version of SAS Viya on the server can now be determined using
sasctl.platform_version().
Bugfixes
- Reworked the
model_repository.get_repository()to prevent HTTP 403 errors that could occur with some Viya environments.
Bugfixes*
- Fixed an issue with JSON parsing that caused the
publish_modeltask to fail with Viya 4.0.
Improvements
- Added the
as_swatmethod to theSessionobject, allowing connection to CAS through SWAT without an additional authentication step.
Changes
- Integrated PZMM into
Sessioncalls and removed redundant function calls in PZMM. - ROC and Lift statistic JSON files created by PZMM are now generated through CAS actionset calls.
- Updated the PZMM example notebook,
FleetMaintenance.ipynb, to include integration of PZMM with sasctl functions.
Bugfixes
- Reworked the
model_repository.get_repository()to prevent HTTP 403 errors that could occur with some Viya environments.
Bugfixes
- Added PZMM fitstat JSON file to manifest.
Improvements
- PZMM module moved from a stand-alone repository to a sasctl submodule.
- Introduced deprecation warnings for Python 2 users.
Bugfixes
- Fixed PyMAS utilities to correctly work functions not bound to pickled objects.
- Model target variables should no longer appear as an input variable when registering ASTORE models.
Improvements
- Registered Python models will now include both
predictandpredict_probamethods. - Added a new Relationships service for managing links between objects.
- Added a new Reports service for retrieving SAS Visual Analytics reports.
- Added a new Report_Images service for rendering content from reports.
- Additional metadata fields are set when registering an ASTORE model.
- Collections of items should now return an instance of
PagedListfor lazy loading of results. - Module steps can now be called using
module.step(df)wheredfis the row of a DataFrame or Numpy array. register_modelsets additional project properties when registering an ASTORE model.
Changes
- Replaced the
rawparameter of therequestmethods with aformatparameter, allowing more control over the returned value. - The
get_file_contentmethod of the Files service now returns the actual content instead of the file metadata. - JSON output when using
sasctlfrom the command line is now formatted correctly.
Bugfixes
model_publish.delete_destinationnow works correctly.
Bugfixes
- Fixed an issue where the
REQUESTS_CA_BUNDLEenvironment variable was taking precedence over theverify_sslparameter.
Changes
- Saving of package information can now be disabled using the
record_packagesparameter ofregister_model.
Bugfixes
- Added support for uint data types to the
register_modeltask. - Fixed an issue where long package names caused
register_modelto fail. Sessioncreation now works with older versions of urllib3.
Bugfixes
- Match performance definitions based on project instead of model.
Bugfixes
- Model versioning now works correctly for Python models
- Fixed an issue where
Nonevalues in Python caused issues with MAS models.
Bugfixes
- Fixed project properties when registering a model from ASTORE.
- Fixed model metadata when registering a datastep model.
Bugfixes
- Fixed an issue where string inputs to Python models were incorrectly handled by DS2.
Changes
PyMAS.score_codenow supports adest='Python'option to retrieve the generated Python wrapper code.register_modeltask includes apython_wrapper.pyfile when registering a Python model.- Improved error message when user lacks required permissions to register a model.
Bugfixes
- Fixed an issue with CAS/EP score code that caused problems with model performance metrics.
Improvements
- Added
update_performancetask for easily uploading performance information for a model. - New (experimental) pyml2sas sub-package provides utilities for generating SAS code from Python gradient boosting models.
- New (experimental) methods for managing workflows added to
model_managementservice.
Changes
register_modeltask automatically captures installed Python packages.- All
list_xxxmethods return all matching items unless alimitparameter is specified. - Improved API documentation.
- Updated
full_lifecycleexample with performance monitoring.
Changes
- Registering an ASTORE model now creates an empty ASTORE file in Model Manager to be consistent with Model Studio behavior.
Bugfixes
microanalytic_score.define_stepsnow works with steps having no input parameters.- Fixed an issue where score code generated from an ASTORE model lacked output variables.
Bugfixes
model_repository.get_model_contentsno longer raises an HTTP 406 error.
Changes
putrequest will take anitemparameter that's used to automatically populate headers for updates.
Bugfixes
- Convert NaN values to null (None) when calling
microanalytic_score.execute_module_step.
Bugfixes
register_modeltask should now correctly identify columns when registering a Sci-kit pipeline.
Improvements
- Added the ability for
register_modelto correctly handle CAS tables containing data step score code.
Improvements
- Added
create_model_versionandlist_model_versionstomodel_repository - Added an explicit
ValueErrorwhen attempting to register an ASTORE that can't be downloaded. - Added
startandlimitpagination parameters to all defaultlist_*service methods. - Added
create_destination,create_cas_destinationandcreate_mas_destinationmethods formodel_publishservice.
Changes
Session.add_stderr_loggerdefault logging level changed toDEBUG.
Bugfixes
- Fixed an issue where
model_repositorydid not find models, projects, or repositories by name once pagination limits were reached.
Bugfixes
- The
register_modeltask now generates dmcas_epscorecode.sas files for ASTORE models.
Bugfixes
- Fixed problem causing
register_modeltask to include output variables in the input variables list.
Improvements
- CAS model table automatically reloaded on
publish_modeltask.
Bugfixes
- Fixed DS2 score code for CAS that was generated when registering a Python model.
PyMAS.score_code(dest='ESP')corrected todest='EP'- Fixed an issue where long user-defined properties prevented model registration.
Bugfixes
- Fixed an issue where usernames were not parsed correctly from .authinfo files, resulting in failed logins.
Improvements
- Added
update_moduleanddelete_modulemethods to MAS service.
Changed
- Added
replaceparameter tosasctl.tasks.publish_model Sessionhostname's can now be specified in HTTP format: 'http://example.com'.
Bugfixes
- Renamed
microanalytic_storeservice tomicroanalytic_score
Changed
- Exceptions moved from
sasctl.coretosasctl.exceptions SWATCASActionErrorraised if ASTORE cannot be saved during model registration.- Improved handling of MAS calls made via
define_steps()
Changed
- services are now classes instead of modules.
Imports of services in the format
import sasctl.services.model_management as mmmust be changed tofrom sasctl.services import model_management as mm. hostanduserparameters ofSessionrenamed tohostnameandusernameto align with SWAT.- Only
InsecureRequestWarningis suppred instead of allHTTPWarning
Improvements
- Added
copy_analytic_storemethod tomodel_repositoryservice AuthenticationErrorreturned instead ofHTTPErrorif session authentication fails.
Improvements
- public_model task also defines methods mapped to MAS module steps when publishing to MAS.
- SSL verification can be disable with
SSLREQCERTenvironment variable. - CAs to use for validating SSL certificates can also be specified through the
SSLCALISTLOCenvironment variable. - Added
execute_performance_task
Changes
- Updated method signature for
create_performance_definitionin Model Manager.
Bugfixes
- register_model task no longer adds
rcandmsgvariables from MAS to the project variables.
Initial public release.