MLJModelInterface.jl
MLJModelInterface.jl copied to clipboard
Don't export `scitype` method.
Due to a recent change in ScientificTypesBase,jl from version 2.0 to 3.0, the ScientifictypesBase.scitype method is now a two argument method. Packages depending on MLJModelInterface.jl previously depended on the previous one argument version defined in version 2.0 series of ScientifictypesBase package.
A workaround is needed to avoid making MLJModelInterface breaking for its's users. This involves
- Defining a one argument
scitypemethod in MLJModelInterface. Something in the lines of
scitype(X) = scitype(get_interface_mode(), X)
scitype(::LightInterface, X) = throw(ArgumentError("FullInterface is needed..."))
The corresponding FullInterface method would be implemented at MLJBase/src/Interface/data_utils.jl.
- exporting the
scitypemethod atMLJModelInterface(Needed as users expect that thescitypemethod is exported. see #129 )
But implementing the second step also leads to method import clashes with ScientificTypes.scitype at MLJBase. For now a hack at MLJBase/src/MLJBase.jl fixes this issue, but going forward the scitype method shouldn't be exported. Hence users that want to use the scitype method would have to qualify it with the package name e.g. MLJModelinterface.scitype(X).