Working with Inline Data tables in Python
Inline data handling for tables embedded directly in resource definitions.
Installation
Section titled “Installation”pip install fairspecGetting Started
Section titled “Getting Started”The Inline plugin provides:
load_inline_table- Load tables from inline dataInlinePlugin- Plugin for framework integration
For example:
from fairspec import load_inline_table, Resource
table = load_inline_table(Resource(data=[ {"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"},]))Basic Usage
Section titled “Basic Usage”Object Format Data
Section titled “Object Format Data”The most common format is an array of objects:
from fairspec import load_inline_table, Resource
table = load_inline_table(Resource(data=[ {"id": 1, "name": "english", "native": "English"}, {"id": 2, "name": "chinese", "native": "\u4e2d\u6587"}, {"id": 3, "name": "spanish", "native": "Espa\u00f1ol"},]))Array Format Data
Section titled “Array Format Data”You can also use array-of-arrays format with the first row as headers:
from fairspec import load_inline_table, Resource
table = load_inline_table(Resource(data=[ ["id", "name", "native"], [1, "english", "English"], [2, "chinese", "\u4e2d\u6587"], [3, "spanish", "Espa\u00f1ol"],]))Advanced Features
Section titled “Advanced Features”With Table Schema
Section titled “With Table Schema”Provide a Table Schema for type validation and conversion:
from fairspec import load_inline_table, Resourcefrom fairspec_metadata import TableSchema, IntegerColumnProperty, StringColumnProperty, BooleanColumnProperty
table = load_inline_table(Resource( data=[ {"id": 1, "name": "english", "active": True}, {"id": 2, "name": "chinese", "active": False}, ], tableSchema=TableSchema(properties={ "id": IntegerColumnProperty(), "name": StringColumnProperty(), "active": BooleanColumnProperty(), }),))Mixed with File Data
Section titled “Mixed with File Data”Inline data can be used alongside file-based resources in datasets:
from fairspec import load_inline_table, load_csv_table, Resource
# Load inline reference datalanguages = load_inline_table(Resource( name="languages", data=[ {"id": 1, "name": "english"}, {"id": 2, "name": "chinese"}, ],))
# Load main data from fileusers = load_csv_table(Resource(name="users", data="users.csv"))Resource Metadata
Section titled “Resource Metadata”You can include metadata with inline data resources:
from fairspec import load_inline_table, Resourcefrom fairspec_metadata import TableSchema, StringColumnProperty
table = load_inline_table(Resource( name="countries", title="Country Reference Data", description="ISO country codes and names", data=[ {"code": "US", "name": "United States"}, {"code": "CN", "name": "China"}, {"code": "ES", "name": "Spain"}, ], tableSchema=TableSchema(properties={ "code": StringColumnProperty(), "name": StringColumnProperty(), }),))