skops Changelog
v0.8
Adds the abillity to set the
Section.foldedproperty when usingCard.add(). #361 by Thomas Lazarus.Add HTML representation of the
skops.card.Cardinstances in Jupyter notebooks. #372 by Adrin Jalali.
v0.7
Add ability to copy plots on
Card.save()so that they can be referenced in the model card. #330 by Thomas Lazarus.compression and compresslevel from
ZipFileare now exposed to the user viaio.dumps()andio.dump(). #345 by Adrin Jalali.Fix:
skops.io.visualize()is now capable of showing bytes. #352 by Benjamin Bossan.All public
numpyufuncs (Universal Functions) and dtypes are trusted by default byio.load(). #336 by Omar Arab Oghli.Sections in
skops.card.Cardcan now be folded once added to the card. #341 by Thomas Lazarus.Model loading in
skops.card.Cardis now cached to avoid loading the model multiple times. #299 by Juan Camacho.
v0.6
Add tabular regression example. #254 by Thomas Lazarus.
All public
scipy.specialufuncs (Universal Functions) are trusted by default byio.load(). #295 by Omar Arab Oghli.Add a new function
skops.card.Card.add_metric_frame()to help users add metrics to their model cards. #298 by Thomas LazarusAdd
Card.create_toc()to create a table of contents for the model card in markdown format. #305 by Thomas Lazarus.Add example of using model card without the skops template. #291 by Benjamin Bossan.
Fix: skops persistence now also works with many functions from the
operatormodule. #287 by Benjamin Bossan.add_*methods onCardnow have default section names (butNoneis no longer valid) and no longer add descriptions by default. #321 by Benjamin Bossan.Add possibility to visualize a skops object and show untrusted types by using
skops.io.visualize(). For colored output, install rich: pip install rich. #317 by Benjamin Bossan.Fix issue with persisting
numpy.random.Generatorusing the skops format (the object could be loaded correctly but security could not be checked). #331 by Benjamin Bossan.
v0.5
Add CLI entrypoint support (
cli.entrypoint.main_cli()) and a command line function to convert Pickle files to Skops files (cli._convert.main()). #249 by Erin AhoSupport more array-like data types for tabular data and list-like data types for text data. #179 by Francesco Cariaggi.
Add an option use_intelex to
skops.hub_utils.init()which, when enabled, will result in the Hugging Face inference API running with Intel’s scikit-learn intelex library, which can accelerate inference times. #267 by Benjamin Bossan.Model cards that have been written into a markdown file can now be parsed back into a
skops.card.Cardobject and edited further by using theskops.card.parse_modelcard()function. #257 by Benjamin Bossan.
v0.4
io.dump()andio.load()now work with file like objects, which means you can use them with thewith open(...) as f: dump(obj, f)pattern, like you’d do withpickle. #234 by Benjamin Bossan.All scikit-learn estimators are trusted by default. #237 by Edoardo Abati.
Add model_format argument to
skops.hub_utils.init()to be stored in config.json so that we know how to load a model from the repository. #242 by Merve Noyan.Persistence now supports bytes and bytearrays, added tests to verify that LightGBM, XGBoost, and CatBoost work now. #244 by Benjamin Bossan.
card.Cardnow allows to add content to existing sections, using a/to separate the subsections. E.g. usecard.add(**{"Existing section/New section": "content"})to add “content” a new subsection called “New section” to an existing section called “Existing section”. #203 by Benjamin Bossan.
v0.3
Utility function to add arbitrary files to be uploaded to the hub by using
hub_utils.add_files(). #123 by Benjamin Bossan.Add
privateas an optional argument toskops.hub_utils.push()to optionally set the visibility status of a repo when pushing to the hub. #130 by Adrin Jalali.First release of the skops secure persistence feature (#128) by Adrin Jalali and Benjamin Bossan. Visit Secure persistence with skops for more information. This feature is not production ready yet but we’re happy to receive feedback from users.
Fix a bug that resulted in markdown tables being rendered incorrectly if entries contained line breaks. #156 by Benjamin Bossan.
Raise an error instead of warning the user if a given model file is empty. #214 by Adrin Jalali.
Use
huggingface_hubv0.10.1 for model cards, dropmodelcardsdependency. #162 by Benjamin Bossan.Add source links to API documentation. #172 by Ayyuce Demirbas.
Add support to load model if given Path/str to
modelargument inskops.card. #205 by Prajjwal Mishra.
v0.2
Tables, e.g. cross-validation results, can now be added to model cards using the
Card.add_table()method. #90 by Benjamin Bossan.Add method
Card.render()which returns the model card as a string. #94 by Benjamin Bossan.Make
skops.hub_utils.init()atomic. Now it doesn’t leave a trace on the filesystem if it fails for some reason. #60 by Adrin JalaliWhen adding figures or tables, it’s now possible to set
folded=Trueto render the content inside a details tag. #108 by Benjamin Bossan.Add
skops.hub_utils.get_model_output()to get the model’s output using The Hugging Face Hub’s inference API, and return an array with the outputs. #105 by Adrin Jalali.
v0.1
This is the first release of the library. It include two main modules:
skops.hub_utils: tools to create a model repository to be stored on Hugging Face Hub, mainly throughskops.hub_utils.init()andskops.hub_utils.push().skops.card: tools to create a model card explaining what the model does and how it should be used. The model card can then be stored as theREADME.mdfile on the Hugging Face Hub, with pre-populated metadata to help Hub understand the model.
Contributors
Adrin Jalali, Merve Noyan, Benjamin Bossan, Ayyuce Demirbas, Prajjwal Mishra, Francesco Cariaggi, Erin Aho, Thomas Lazarus