eyadgaran / SimpleML

Machine learning that just works, for effortless production applications
BSD 3-Clause "New" or "Revised" License
17 stars 5 forks source link

Namespace library packages #105

Open eyadgaran opened 2 years ago

eyadgaran commented 2 years ago

Separate libraries into independent namespace packages (e.g. simpleml-sklearn). Isolates dependencies to keep install lightweight and allows a la carte versioning for extras

eyadgaran commented 2 years ago

Library list:

For now keep core interfaces and persistence package internal.

eyadgaran commented 2 years ago

[Thought] use common naming and registries to enable third-party extension. Flask has some good examples of ecosystem libraries using standard naming conventions.

Open question - create a virtual namespace package: e.g. simpleml.ecosystem.{library}... that all ecosystem libraries install into or keep them completely isolated with a required active registration (package "does not exist" until first imported).

active registration puts more overhead on users to configure their environments in each shell (or globally in a config) but is less error prone compared to passive behavior and conflicts