conda / menuinst

Cross platform menu item installation
https://conda.github.io/menuinst/
BSD 3-Clause "New" or "Revised" License
33 stars 41 forks source link

Refactor file-type and URL protocol associations for better reusability #187

Open jaimergp opened 4 months ago

jaimergp commented 4 months ago

Checklist

What is the idea?

menuinst has multiplatform file-type and URL protocol association, but these routines are embedded in the Shortcut classes. It would be desirable to have at least an external module that offers a menuinst-agnostic API for external reusability. Even a different package altogether? If maintainability is a concern, it could be vendored like we do with apipkg too. It's just Python code after all.

Why is this needed?

Some applications might need to change their file type associations at runtime (e.g. preferences for the user, plugin systems).

What should happen?

A new module or package should provide a unified API to register and deregister file types and URL protocols for all platforms.

Additional Context

Discussed in this week's napari packaging meeting (2023-02-21).