public static InputRow <TRow> CreateInputRow <TRow>(IHostEnvironment env, SchemaDefinition schemaDefinition = null) where TRow : class { Contracts.AssertValue(env); env.AssertValueOrNull(schemaDefinition); var internalSchemaDefn = schemaDefinition == null ? InternalSchemaDefinition.Create(typeof(TRow), SchemaDefinition.Direction.Read) : InternalSchemaDefinition.Create(typeof(TRow), schemaDefinition); return(new InputRow <TRow>(env, internalSchemaDefn)); }
private static Delegate[] MakePeeks(InternalSchemaDefinition schemaDef) { var peeks = new Delegate[schemaDef.Columns.Length]; for (var i = 0; i < peeks.Length; i++) { var currentColumn = schemaDef.Columns[i]; peeks[i] = currentColumn.IsComputed ? currentColumn.Generator : ApiUtils.GeneratePeek <InputRow <TRow>, TRow>(currentColumn); } return(peeks); }
public static StreamingDataView <TRow> CreateFromEnumerable <TRow>(IHostEnvironment env, IEnumerable <TRow> data, SchemaDefinition schemaDefinition = null) where TRow : class { Contracts.AssertValue(env); env.AssertValue(data); env.AssertValueOrNull(schemaDefinition); var internalSchemaDefn = schemaDefinition == null ? InternalSchemaDefinition.Create(typeof(TRow), SchemaDefinition.Direction.Read) : InternalSchemaDefinition.Create(typeof(TRow), schemaDefinition); return(new StreamingDataView <TRow>(env, data, internalSchemaDefn)); }
public InputRowBase(IHostEnvironment env, Schema schema, InternalSchemaDefinition schemaDef, Delegate[] peeks, Func <int, bool> predicate) { Contracts.AssertValue(env); Host = env.Register("Row"); Host.AssertValue(schema); Host.AssertValue(schemaDef); Host.AssertValue(peeks); Host.AssertValue(predicate); Host.Assert(schema.Count == schemaDef.Columns.Length); Host.Assert(schema.Count == peeks.Length); _colCount = schema.Count; Schema = schema; _getters = new Delegate[_colCount]; for (int c = 0; c < _colCount; c++) { _getters[c] = predicate(c) ? CreateGetter(schema[c].Type, schemaDef.Columns[c], peeks[c]) : null; } }
public InputRow(IHostEnvironment env, InternalSchemaDefinition schemaDef) : base(env, SchemaBuilder.MakeSchema(GetSchemaColumns(schemaDef)), schemaDef, MakePeeks(schemaDef), c => true) { _position = -1; }