MLJModelInterface.jl icon indicating copy to clipboard operation
MLJModelInterface.jl copied to clipboard

Don't export `scitype` method.

Open OkonSamuel opened this issue 3 years ago • 0 comments

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

  1. Defining a one argument scitype method 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.

  1. exporting the scitype method at MLJModelInterface (Needed as users expect that the scitype method 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).

OkonSamuel avatar Jan 03 '22 17:01 OkonSamuel