Skip to content

Commit d9d4b22

Browse files
authored
Expose internal APIs to components that use them in an internal repo (#2036)
* Expose internal APIs to components in internal repo * Address code review comments
1 parent e2f7075 commit d9d4b22

File tree

18 files changed

+153
-8
lines changed

18 files changed

+153
-8
lines changed

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

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,55 @@
4646
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.OnnxTransform.StaticPipe" + PublicKey.Value)]
4747
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.LightGBM.StaticPipe" + PublicKey.Value)]
4848

49+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.MetaLinearLearner" + InternalPublicKey.Value)]
50+
[assembly: InternalsVisibleTo(assemblyName: "TreeVisualizer" + InternalPublicKey.Value)]
51+
[assembly: InternalsVisibleTo(assemblyName: "TMSNlearnPrediction" + InternalPublicKey.Value)]
52+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.CntkWrapper" + InternalPublicKey.Value)]
53+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.DssmFeaturizer" + InternalPublicKey.Value)]
54+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.DssmTrigram" + InternalPublicKey.Value)]
55+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.EdgeML" + InternalPublicKey.Value)]
56+
[assembly: InternalsVisibleTo(assemblyName: "ExperimentVisualization" + InternalPublicKey.Value)]
57+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.FastTree" + InternalPublicKey.Value)]
58+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Garage" + InternalPublicKey.Value)]
59+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.HelperCommands" + InternalPublicKey.Value)]
60+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Internal.ImageAnalytics" + InternalPublicKey.Value)]
61+
[assembly: InternalsVisibleTo(assemblyName: "ImageNetClientSample" + InternalPublicKey.Value)]
62+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.InferNetWrapper" + InternalPublicKey.Value)]
63+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.TlcTesting.Inference" + InternalPublicKey.Value)]
64+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.RecipeInference" + InternalPublicKey.Value)]
65+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.LDSVM" + InternalPublicKey.Value)]
66+
[assembly: InternalsVisibleTo(assemblyName: "LibSvmWrapper" + InternalPublicKey.Value)]
67+
[assembly: InternalsVisibleTo(assemblyName: "maml" + InternalPublicKey.Value)]
68+
[assembly: InternalsVisibleTo(assemblyName: "TLCTelemetry, PublicKey=0024000004800000940000000602000000240000525341310004000001000100edfd1aca74f2e8d6d7fd53d6f0bf77982ea38a5d2dc462f2f9f01f0734d87a8480279e02c42df82024ea146bf9721a86c50740b9809e4f379a848e1c5168bbfc2b3969aacec1822b3a29db0a23dce5502d764bc0d6ca68f5e4a53ad5212c427567545ec7027402b908460476bcc690a730d25532399e9ce5de32bfdc2211f7e0")]
69+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.Api" + InternalPublicKey.Value)]
70+
[assembly: InternalsVisibleTo(assemblyName: "RunTests" + InternalPublicKey.Value)]
71+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.PyTrainer" + InternalPublicKey.Value)]
72+
[assembly: InternalsVisibleTo(assemblyName: "ParameterMixer" + InternalPublicKey.Value)]
73+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.OcrTransform" + InternalPublicKey.Value)]
74+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring.TextAnalytics" + InternalPublicKey.Value)]
75+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TextAnalytics" + InternalPublicKey.Value)]
76+
[assembly: InternalsVisibleTo(assemblyName: "StratoLearner" + InternalPublicKey.Value)]
77+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.SequencePrediction" + InternalPublicKey.Value)]
78+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Internal.Opencv" + InternalPublicKey.Value)]
79+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Sar" + InternalPublicKey.Value)]
80+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.NeuralNetworks" + InternalPublicKey.Value)]
81+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.PowerShellIntegration" + InternalPublicKey.Value)]
82+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring.NeuralNetworks" + InternalPublicKey.Value)]
83+
[assembly: InternalsVisibleTo(assemblyName: "TMSNStreams" + InternalPublicKey.Value)]
84+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TlcAzurePublish" + InternalPublicKey.Value)]
85+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.VowpalWabbit" + InternalPublicKey.Value)]
86+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.XGBoost" + InternalPublicKey.Value)]
87+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.SLib" + InternalPublicKey.Value)]
88+
[assembly: InternalsVisibleTo(assemblyName: "RunTestsMore" + InternalPublicKey.Value)]
89+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring" + InternalPublicKey.Value)]
90+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Sweeper" + InternalPublicKey.Value)]
91+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TlcCustomModule" + InternalPublicKey.Value)]
92+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.SweeperHpc" + InternalPublicKey.Value)]
93+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Scope" + InternalPublicKey.Value)]
94+
[assembly: InternalsVisibleTo(assemblyName: "NeuralNetworksTest" + InternalPublicKey.Value)]
95+
[assembly: InternalsVisibleTo(assemblyName: "RunEndToEnd" + InternalPublicKey.Value)]
96+
[assembly: InternalsVisibleTo(assemblyName: "RunTestsAzurePublish" + InternalPublicKey.Value)]
97+
[assembly: InternalsVisibleTo(assemblyName: "SseTests" + InternalPublicKey.Value)]
98+
[assembly: InternalsVisibleTo(assemblyName: "TLC" + InternalPublicKey.Value)]
99+
49100
[assembly: WantsToBeBestFriends]

src/Microsoft.ML.Core/PublicKey.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,10 @@ internal static class PublicKey
1717
public const string Value = ", PublicKey=00240000048000009400000006020000002400005253413100040000010001004b86c4cb78549b34bab61a3b1800e23bfeb5b3ec390074041536a7e3cbd97f5f04cf0f857155a8928eaa29ebfd11cfbbad3ba70efea7bda3226c6a8d370a4cd303f714486b6ebc225985a638471e6ef571cc92a4613c00b8fa65d61ccee0cbe5f36330c9a01f4183559f1bef24cc2917c6d913e3a541333a1d05d9bed22b38cb";
1818
public const string TestValue = ", PublicKey=002400000480000094000000060200000024000052534131000400000100010015c01ae1f50e8cc09ba9eac9147cf8fd9fce2cfe9f8dce4f7301c4132ca9fb50ce8cbf1df4dc18dd4d210e4345c744ecb3365ed327efdbc52603faa5e21daa11234c8c4a73e51f03bf192544581ebe107adee3a34928e39d04e524a9ce729d5090bfd7dad9d10c722c0def9ccc08ff0a03790e48bcd1f9b6c476063e1966a1c4";
1919
}
20+
21+
[BestFriend]
22+
internal static class InternalPublicKey
23+
{
24+
public const string Value = ", PublicKey=0024000004800000940000000602000000240000525341310004000001000100bd8dded65b44bf8183068bd6dae3b68ba499202b2909640604cf63c7c0ea95bec94a400af533d1132e0dba214f310f666486b50ea91f2697a4fe331eb6a8d7306029344e320dabb7c4c3617472e3088c28dbfcf761a3f1b954a2a64cb865aae873b1d3c3cab344661cd7d5929d1043912908b8dd321889ca11f29d6bf9b9b9a9";
25+
}
2026
}

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,13 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System.Runtime.CompilerServices;
6+
using Microsoft.ML.Internal.CpuMath.Core;
67

7-
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.CpuMath.PerformanceTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010015c01ae1f50e8cc09ba9eac9147cf8fd9fce2cfe9f8dce4f7301c4132ca9fb50ce8cbf1df4dc18dd4d210e4345c744ecb3365ed327efdbc52603faa5e21daa11234c8c4a73e51f03bf192544581ebe107adee3a34928e39d04e524a9ce729d5090bfd7dad9d10c722c0def9ccc08ff0a03790e48bcd1f9b6c476063e1966a1c4")]
8+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.CpuMath.PerformanceTests" + PublicKey.TestValue)]
9+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.CpuMath" + InternalPublicKey.Value)]
10+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Internal.MklMath" + InternalPublicKey.Value)]
11+
[assembly: InternalsVisibleTo(assemblyName: "LibSvmWrapper" + InternalPublicKey.Value)]
12+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.NeuralNetworks" + InternalPublicKey.Value)]
13+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring.NeuralNetworks" + InternalPublicKey.Value)]
14+
[assembly: InternalsVisibleTo(assemblyName: "RunTests" + InternalPublicKey.Value)]
15+
[assembly: InternalsVisibleTo(assemblyName: "SseTests" + InternalPublicKey.Value)]

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,41 @@
3939

4040
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.StaticPipe" + PublicKey.Value)]
4141

42+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.MetaLinearLearner" + InternalPublicKey.Value)]
43+
[assembly: InternalsVisibleTo(assemblyName: "TMSNlearnPrediction" + InternalPublicKey.Value)]
44+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.CntkWrapper" + InternalPublicKey.Value)]
45+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.DssmFeaturizer" + InternalPublicKey.Value)]
46+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.DssmTrigram" + InternalPublicKey.Value)]
47+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.EdgeML" + InternalPublicKey.Value)]
48+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.FastTree" + InternalPublicKey.Value)]
49+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Garage" + InternalPublicKey.Value)]
50+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.HelperCommands" + InternalPublicKey.Value)]
51+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Internal.ImageAnalytics" + InternalPublicKey.Value)]
52+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.InferNetWrapper" + InternalPublicKey.Value)]
53+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.LDSVM" + InternalPublicKey.Value)]
54+
[assembly: InternalsVisibleTo(assemblyName: "LibSvmWrapper" + InternalPublicKey.Value)]
55+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.RecipeInference" + InternalPublicKey.Value)]
56+
[assembly: InternalsVisibleTo(assemblyName: "RunTests" + InternalPublicKey.Value)]
57+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.PyTrainer" + InternalPublicKey.Value)]
58+
[assembly: InternalsVisibleTo(assemblyName: "ParameterMixer" + InternalPublicKey.Value)]
59+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.Api" + InternalPublicKey.Value)]
60+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TextAnalytics" + InternalPublicKey.Value)]
61+
[assembly: InternalsVisibleTo(assemblyName: "StratoLearner" + InternalPublicKey.Value)]
62+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.SequencePrediction" + InternalPublicKey.Value)]
63+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring.TextAnalytics" + InternalPublicKey.Value)]
64+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.NeuralNetworks" + InternalPublicKey.Value)]
65+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring.NeuralNetworks" + InternalPublicKey.Value)]
66+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Sar" + InternalPublicKey.Value)]
67+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.OcrTransform" + InternalPublicKey.Value)]
68+
[assembly: InternalsVisibleTo(assemblyName: "TreeVisualizer" + InternalPublicKey.Value)]
69+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TlcAzurePublish" + InternalPublicKey.Value)]
70+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.XGBoost" + InternalPublicKey.Value)]
71+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.SLib" + InternalPublicKey.Value)]
72+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.VowpalWabbit" + InternalPublicKey.Value)]
73+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.RServerScoring" + InternalPublicKey.Value)]
74+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.TlcCustomModule" + InternalPublicKey.Value)]
75+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Runtime.Scope" + InternalPublicKey.Value)]
76+
[assembly: InternalsVisibleTo(assemblyName: "TLC" + InternalPublicKey.Value)]
77+
[assembly: InternalsVisibleTo(assemblyName: "RunTestsMore" + InternalPublicKey.Value)]
78+
4279
[assembly: WantsToBeBestFriends]

src/Microsoft.ML.Data/Scorers/MultiClassClassifierScorer.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public sealed class LabelNameBindableMapper : ISchemaBindableMapper, ICanSaveMod
7575
private readonly IHost _host;
7676
private readonly Func<ISchemaBoundMapper, ColumnType, bool> _canWrap;
7777

78+
internal ISchemaBindableMapper Bindable => _bindable;
79+
7880
public VectorType Type => _type;
7981
bool ICanSavePfa.CanSavePfa => (_bindable as ICanSavePfa)?.CanSavePfa == true;
8082
bool ICanSaveOnnx.CanSaveOnnx(OnnxContext ctx) => (_bindable as ICanSaveOnnx)?.CanSaveOnnx(ctx) == true;
@@ -192,6 +194,11 @@ private void SaveCore<T>(ModelSaveContext ctx)
192194
throw _host.Except("We do not know how to serialize label names of type '{0}'", _type.ItemType);
193195
}
194196

197+
internal ISchemaBindableMapper Clone(ISchemaBindableMapper inner)
198+
{
199+
return new LabelNameBindableMapper(_host, inner, _type, _getter, _metadataKind, _canWrap);
200+
}
201+
195202
void IBindableCanSavePfa.SaveAsPfa(BoundPfaContext ctx, RoleMappedSchema schema, string[] outputNames)
196203
{
197204
Contracts.CheckValue(ctx, nameof(ctx));
@@ -392,7 +399,7 @@ private static ISchemaBoundMapper WrapIfNeeded(IHostEnvironment env, ISchemaBoun
392399
/// from the model of a bindable mapper)</param>
393400
/// <returns>Whether we can call <see cref="LabelNameBindableMapper.CreateBound{T}"/> with
394401
/// this mapper and expect it to succeed</returns>
395-
private static bool CanWrap(ISchemaBoundMapper mapper, ColumnType labelNameType)
402+
internal static bool CanWrap(ISchemaBoundMapper mapper, ColumnType labelNameType)
396403
{
397404
Contracts.AssertValue(mapper);
398405
Contracts.AssertValue(labelNameType);
@@ -414,7 +421,7 @@ private static bool CanWrap(ISchemaBoundMapper mapper, ColumnType labelNameType)
414421
return labelNameType.IsVector && labelNameType.VectorSize == scoreType.VectorSize;
415422
}
416423

417-
private static ISchemaBoundMapper WrapCore<T>(IHostEnvironment env, ISchemaBoundMapper mapper, RoleMappedSchema trainSchema)
424+
internal static ISchemaBoundMapper WrapCore<T>(IHostEnvironment env, ISchemaBoundMapper mapper, RoleMappedSchema trainSchema)
418425
{
419426
Contracts.AssertValue(env);
420427
env.AssertValue(mapper);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData
548548
{
549549
Contracts.CheckValue(env, nameof(env));
550550
env.CheckValue(args, nameof(args));
551-
env.Assert(!string.IsNullOrWhiteSpace(args.DataFile));
551+
env.CheckUserArg(!string.IsNullOrWhiteSpace(args.DataFile), nameof(args.DataFile));
552552
env.CheckValueOrNull(args.KeyColumn);
553553
env.CheckValueOrNull(args.ValueColumn);
554554

src/Microsoft.ML.Ensemble/EntryPoints/CreateEnsemble.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ private static TOut CreatePipelineEnsemble<TOut>(IHostEnvironment env, Predictor
321321
/// This method is used for comparing pipelines. Its outputs can be passed to <see cref="CheckSamePipeline"/>
322322
/// to check if this pipeline is identical to another pipeline.
323323
/// </summary>
324-
private static void SerializeRoleMappedData(IHostEnvironment env, IChannel ch, RoleMappedData data,
324+
internal static void SerializeRoleMappedData(IHostEnvironment env, IChannel ch, RoleMappedData data,
325325
out byte[][] dataSerialized, out string[] dataZipEntryNames)
326326
{
327327
Contracts.CheckValue(env, nameof(env));
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System.Runtime.CompilerServices;
6+
using Microsoft.ML;
7+
8+
[assembly: InternalsVisibleTo("RunTests" + InternalPublicKey.Value)]
9+
[assembly: InternalsVisibleTo("Microsoft.ML.Runtime.Scope" + InternalPublicKey.Value)]

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
using Microsoft.ML;
77

88
[assembly: InternalsVisibleTo("Microsoft.ML.Tests" + PublicKey.TestValue)]
9-
[assembly: InternalsVisibleTo("Microsoft.ML.Core.Tests" + PublicKey.TestValue)]
9+
[assembly: InternalsVisibleTo("Microsoft.ML.Core.Tests" + PublicKey.TestValue)]
10+
[assembly: InternalsVisibleTo("RunTests" + InternalPublicKey.Value)]

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,7 @@
1212

1313
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.StaticPipe" + PublicKey.Value)]
1414

15+
[assembly: InternalsVisibleTo(assemblyName: "Microsoft.ML.Internal.FastTree" + InternalPublicKey.Value)]
16+
[assembly: InternalsVisibleTo(assemblyName: "RunTests" + InternalPublicKey.Value)]
17+
1518
[assembly: WantsToBeBestFriends]

0 commit comments

Comments
 (0)