You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TabularExtractor.Start → TabularExtractor.Extract, and ExtractionSession → ExtractionRun; its members are unchanged.
precheck argument keys renamed — readableCount → judgedCount (PrecheckArguments.ReadableCount → JudgedCount), profileHeaderRow → profileHeaderRowIndex, planHeaderRow → planHeaderRowIndex, boundColumns → boundColumnCount. A schema with a typed field whose Type is not its class's is refused with ArgumentException. The constraints, now classes, no longer have init setters on Length and Value.
the public API is reshaped once for 1.0. Old → new:
new TabularAnalyzer(options).Analyze(cursor, progress, ct) → TabularAnalyzer.Analyze(cursor, options, progress, ct)
TargetField → ImportField (also the factory: ImportField.Text(...) and the others)
foreach (var o in run) → run.ReadRows(ct); Rows → ReadRows, InChunks → ReadChunks, All → ReadAll; ImportRun<T> is not an IEnumerable
ExtractionSummary is an immutable record; Summary properties return snapshots
fields, ImportSchema and constraints are classes (no with, reference equality); plans, bindings, options, profiles and results compare by value; CursorDiagnostics is a record
ITabularCursor.MoveToSheet(int) is MoveToSheet(int, CancellationToken = default); a cursor implemented outside the library must add the parameter.
ImportRun no longer implements IEnumerable; foreach (var o in run) is foreach (var o in run.ReadRows(ct)). Rows → ReadRows, InChunks → ReadChunks, All → ReadAll. ExtractionSummary is an immutable record: ImportRun.Summary and ExtractionSession.Summary return a snapshot rather than a live object.
ImportField (and TextImportField and the other typed fields), ImportSchema, FieldConstraint and its nested rules are classes, not records: with expressions, value equality and deconstruction on them are gone. CursorDiagnostics is a record. Collections in MappingPlan, ColumnBinding, AnalysisOptions, FileProfile, SheetProfile, ColumnProfile, ColumnFacts, CultureParseCounts, TypeHypothesis, PrecheckFinding, PrecheckResult, ImportPreviewRow and ImportResult compare by value.
PrecheckFinding.Detail is removed; its data is in AffectedRowsBound, Examples and Arguments. PrecheckFinding.FieldName is string? and ColumnIndex is int?, null where a finding concerns no field or column.
renamed types — TargetField → ImportField (now also the factory; the static class ImportField is merged into it), TextField → TextImportField, IntegerField → IntegerImportField, DecimalField → DecimalImportField, DateField → DateImportField, BooleanField → BooleanImportField, TranslatedField → TranslatedImportField, TargetSchema → ImportSchema. Renamed members — SourceColumnIndex → ColumnIndex and TargetFieldName → FieldName on ColumnBinding, RowError, MappingFault and PrecheckFinding; TabularStructureException.SourceColumnIndex → ColumnIndex; ColumnBinding.SourceHeader → Header. A plan stored with the old property names must be migrated.
new TabularAnalyzer(options).Analyze(cursor, progress, ct) is now TabularAnalyzer.Analyze(cursor, options, progress, ct); the constructor and the instance overloads are gone.
Features
an import run reads once, through ReadRows, ReadChunks or ReadAll (53a5248)