Skip to content

Commit 5c442a9

Browse files
authored
Internalize IDataTransform (#2509)
1 parent 56607ba commit 5c442a9

File tree

8 files changed

+23
-16
lines changed

8 files changed

+23
-16
lines changed

src/Microsoft.ML.Data/DataView/RowToRowMapperTransform.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,16 @@ internal interface IRowMapper : ICanSaveModel
5656
/// </summary>
5757
ITransformer GetTransformer();
5858
}
59-
60-
public delegate void SignatureLoadRowMapper(ModelLoadContext ctx, Schema schema);
59+
[BestFriend]
60+
internal delegate void SignatureLoadRowMapper(ModelLoadContext ctx, Schema schema);
6161

6262
/// <summary>
6363
/// This class is a transform that can add any number of output columns, that depend on any number of input columns.
6464
/// It does so with the help of an <see cref="IRowMapper"/>, that is given a schema in its constructor, and has methods
6565
/// to get the dependencies on input columns and the getters for the output columns, given an active set of output columns.
6666
/// </summary>
67-
public sealed class RowToRowMapperTransform : RowToRowTransformBase, IRowToRowMapper,
67+
[BestFriend]
68+
internal sealed class RowToRowMapperTransform : RowToRowTransformBase, IRowToRowMapper,
6869
ITransformCanSaveOnnx, ITransformCanSavePfa, ITransformTemplate
6970
{
7071
private readonly IRowMapper _mapper;
@@ -92,8 +93,7 @@ private static VersionInfo GetVersionInfo()
9293

9394
bool ICanSavePfa.CanSavePfa => _mapper is ICanSavePfa pfaMapper ? pfaMapper.CanSavePfa : false;
9495

95-
[BestFriend]
96-
internal RowToRowMapperTransform(IHostEnvironment env, IDataView input, IRowMapper mapper, Func<Schema, IRowMapper> mapperFactory)
96+
public RowToRowMapperTransform(IHostEnvironment env, IDataView input, IRowMapper mapper, Func<Schema, IRowMapper> mapperFactory)
9797
: base(env, RegistrationName, input)
9898
{
9999
Contracts.CheckValue(mapper, nameof(mapper));
@@ -103,8 +103,7 @@ internal RowToRowMapperTransform(IHostEnvironment env, IDataView input, IRowMapp
103103
_bindings = new ColumnBindings(input.Schema, mapper.GetOutputColumns());
104104
}
105105

106-
[BestFriend]
107-
internal static Schema GetOutputSchema(Schema inputSchema, IRowMapper mapper)
106+
public static Schema GetOutputSchema(Schema inputSchema, IRowMapper mapper)
108107
{
109108
Contracts.CheckValue(inputSchema, nameof(inputSchema));
110109
Contracts.CheckValue(mapper, nameof(mapper));

src/Microsoft.ML.Data/Transforms/LabelConvertTransform.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
namespace Microsoft.ML.Transforms
2424
{
25-
public sealed class LabelConvertTransform : OneToOneTransformBase
25+
[BestFriend]
26+
internal sealed class LabelConvertTransform : OneToOneTransformBase
2627
{
2728
public sealed class Column : OneToOneColumn
2829
{

src/Microsoft.ML.Data/Transforms/RowToRowTransformerBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ public Schema GetOutputSchema(Schema inputSchema)
4747

4848
public IDataView Transform(IDataView input) => MakeDataTransform(input);
4949

50-
protected RowToRowMapperTransform MakeDataTransform(IDataView input)
50+
[BestFriend]
51+
private protected RowToRowMapperTransform MakeDataTransform(IDataView input)
5152
{
5253
Host.CheckValue(input, nameof(input));
5354
return new RowToRowMapperTransform(Host, input, MakeRowMapper(input.Schema), MakeRowMapper);

src/Microsoft.ML.Data/Transforms/TransformBase.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ namespace Microsoft.ML.Data
1818
/// <summary>
1919
/// Base class for transforms.
2020
/// </summary>
21-
public abstract class TransformBase : IDataTransform
21+
[BestFriend]
22+
internal abstract class TransformBase : IDataTransform
2223
{
2324
protected readonly IHost Host;
2425

@@ -104,7 +105,8 @@ public RowCursor GetRowCursor(IEnumerable<Schema.Column> columnsNeeded, Random r
104105
/// <summary>
105106
/// Base class for transforms that map single input row to single output row.
106107
/// </summary>
107-
public abstract class RowToRowTransformBase : TransformBase
108+
[BestFriend]
109+
internal abstract class RowToRowTransformBase : TransformBase
108110
{
109111
protected RowToRowTransformBase(IHostEnvironment env, string name, IDataView input)
110112
: base(env, name, input)
@@ -150,7 +152,8 @@ void ISaveAsPfa.SaveAsPfa(BoundPfaContext ctx)
150152
}
151153
}
152154

153-
public abstract class RowToRowMapperTransformBase : RowToRowTransformBase, IRowToRowMapper
155+
[BestFriend]
156+
internal abstract class RowToRowMapperTransformBase : RowToRowTransformBase, IRowToRowMapper
154157
{
155158
protected RowToRowMapperTransformBase(IHostEnvironment env, string name, IDataView input)
156159
: base(env, name, input)
@@ -244,7 +247,8 @@ public override bool IsColumnActive(int col)
244247
/// on multiple input columns.
245248
/// This class provides the implementation of ISchema and IRowCursor.
246249
/// </summary>
247-
public abstract class OneToOneTransformBase : RowToRowMapperTransformBase, ITransposeDataView, ITransformCanSavePfa,
250+
[BestFriend]
251+
internal abstract class OneToOneTransformBase : RowToRowMapperTransformBase, ITransposeDataView, ITransformCanSavePfa,
248252
ITransformCanSaveOnnx
249253
{
250254
/// <summary>

src/Microsoft.ML.ImageAnalytics/VectorToImageTransform.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace Microsoft.ML.ImageAnalytics
2727
/// <summary>
2828
/// Transform which takes one or many columns with vectors in them and transform them to <see cref="ImageType"/> representation.
2929
/// </summary>
30-
public sealed class VectorToImageTransform : OneToOneTransformBase
30+
internal sealed class VectorToImageTransform : OneToOneTransformBase
3131
{
3232
public class Column : OneToOneColumn
3333
{

src/Microsoft.ML.Transforms/HashJoiningTransform.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ namespace Microsoft.ML.Transforms.Conversions
3131
/// column there is an option to specify which slots should be hashed together into one output slot.
3232
/// This transform can be applied either to single valued columns or to known length vector columns.
3333
/// </summary>
34-
public sealed class HashJoiningTransform : OneToOneTransformBase
34+
[BestFriend]
35+
internal sealed class HashJoiningTransform : OneToOneTransformBase
3536
{
3637
public const int NumBitsMin = 1;
3738
public const int NumBitsLim = 32;

src/Microsoft.ML.Transforms/MissingValueIndicatorTransform.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
namespace Microsoft.ML.Transforms
2323
{
24-
public sealed class MissingValueIndicatorTransform : OneToOneTransformBase
24+
internal sealed class MissingValueIndicatorTransform : OneToOneTransformBase
2525
{
2626
public sealed class Column : OneToOneColumn
2727
{

src/Microsoft.ML.Transforms/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Core.Tests" + PublicKey.TestValue)]
1111

1212
[assembly: InternalsVisibleTo(assemblyName: "RunTests" + InternalPublicKey.Value)]
13+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.EntryPoints" + PublicKey.Value)]
1314
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.NeuralNetworks" + InternalPublicKey.Value)]
1415
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring.NeuralNetworks" + InternalPublicKey.Value)]
1516
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TextAnalytics" + InternalPublicKey.Value)]

0 commit comments

Comments
 (0)