Skip to content

ENH: Adding is_trusted function #473

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

kylermurphy
Copy link

Adding functionality to determine if datatype is trusted in the skops framework.

Intended to help users determine what they are able to save safely so that a model can be loaded without the need to okay/verify untrusted datatypes.

Reference Issues/PRs

No references.

What does this implement/fix? Explain your changes.

This is meant to add simple functionality to determine if types are trusted within skops. The function is meant to help users identify what they can save within skops so that files can be loaded without the need to use the trusted keyword. This will hopefully help streamline the loading of .skops files.

Any other comments?

Also put a small change in skops\docs\persistence.rst to help clarify that Supported libraries also meant Trusted libraries. When reading the documentation it was unclear exactly what was Trusted.

This is my first pull request in a larger project. I've tried to make sure I've followed the rules as layed out in the Contributing guidelines. Apologies if I have not!

Adding functionality to determine if datatype is trusted in the skops framework.

Intended to help users determine what they are able to save safely so that a model can be loaded without the need to okay/verify untrusted datatypes.
@adrinjalali
Copy link
Member

The issue here is that a type is trusted sometimes based on the context/node it's in. Some nodes also inject extra trusted types into the trusted set. So I'm not sure the implementation of such a feature would be feasible. Note that visualize is supposed to help/solve this issue you're mentioning.

@kylermurphy
Copy link
Author

Thanks for the explanation!

If a node is injecting trusted types though that should be fine. The point of the function is to identify what types they can save to a skops file (e.g. numpy vs pandas) without have to use the trusted keyword to load the file at a later date.

@adrinjalali
Copy link
Member

In that case, you can do something along the lines of:

def is_trusted_by_default(obj):
    return get_untrusted_types(dumps(obj)) == []

That seems easy enough that users don't need a function for it, WDYT?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants