So, while I was doing another round of internalization, one thing that I internalized was this. (Basically, something to handle the shimming from the now internal IDataTransform interface to the new ITransformer interface, during the regrettable situations -- thankfully few -- where such a thing is still necessary. So this:
|
public sealed class TransformWrapper : ITransformer |
and this
|
public abstract class TrainedWrapperEstimatorBase : IEstimator<TransformWrapper> |
Now, that's all fine, but after doing the necessary work it seemed that I could delete the estimator wrapper entirely, but then I see this very intriguing note.
|
/// <summary> |
|
/// DO NOT USE IT! |
|
/// Purpose of this method is to enable legacy loading and unwrapping of RowToRowTransform. |
|
/// It should be removed as soon as we get rid of <see cref="TrainedWrapperEstimatorBase"/> |
|
/// Returns parent transfomer which uses this mapper. |
|
/// </summary> |
|
ITransformer GetTransformer(); |
I do not understand what is going on here. This is not essential -- everything here is internal -- but it seems at least odd. This seems to indicate that this method and the class I wanted to delete have something to do with each other, but as far as I can tell they have nothing to do with each other whatsoever. But then why the comment?
Anyway, there's clearly something odd going on. This is absolutely not critical, but I wanted to register an issue about the oddness, since the code underlying it passes my understanding.
So, while I was doing another round of internalization, one thing that I internalized was this. (Basically, something to handle the shimming from the now internal
IDataTransforminterface to the newITransformerinterface, during the regrettable situations -- thankfully few -- where such a thing is still necessary. So this:machinelearning/src/Microsoft.ML.Data/DataLoadSave/TransformWrapper.cs
Line 20 in 63a7654
and this
machinelearning/src/Microsoft.ML.Data/DataLoadSave/TransformWrapper.cs
Line 151 in 63a7654
Now, that's all fine, but after doing the necessary work it seemed that I could delete the estimator wrapper entirely, but then I see this very intriguing note.
machinelearning/src/Microsoft.ML.Data/DataView/RowToRowMapperTransform.cs
Lines 50 to 56 in 63a7654
I do not understand what is going on here. This is not essential -- everything here is internal -- but it seems at least odd. This seems to indicate that this method and the class I wanted to delete have something to do with each other, but as far as I can tell they have nothing to do with each other whatsoever. But then why the comment?
Anyway, there's clearly something odd going on. This is absolutely not critical, but I wanted to register an issue about the oddness, since the code underlying it passes my understanding.