Module pl.data
Reading and querying simple tabular data.
This provides a way of creating basic SQL-like queries.
Functions
filter (Q, file, dont_fail) | Filter input using a query. |
new (data, fieldnames) | create a new dataset from a table of rows. |
query (data, condn, context, return_row) | create a query iterator from a select string. |
read (file, cnfg, cnfig) | read a delimited file in a Lua table. |
Functions
- filter (Q, file, dont_fail)
-
Filter input using a query.
Parameters:
-
Q
: a query string -
file
: a file-like object -
dont_fail
: true if you want to return an error, not just fail
-
- new (data, fieldnames)
-
create a new dataset from a table of rows.
Can specify the fieldnames, else the table must have a field called 'fieldnames', which is either a string of comma-separated names, or a table of names.Parameters:
-
data
: the table. -
fieldnames
: optional fieldnames
Return value:
- the table.
-
- query (data, condn, context, return_row)
-
create a query iterator from a select string. Select string has this format:
FIELDLIST [ where LUA-CONDN [ sort by FIELD] ]
FIELDLISt is a comma-separated list of valid fields, or '*'.
The condition can also be a table, with fields 'fields' (comma-sep string or table), 'sort_by' (string) and 'where' (Lua expression string or function)Parameters:
-
data
: table produced by read -
condn
: select string or table -
context
: a list of tables to be searched when resolving functions -
return_row
: if true, wrap the results in a row table
Return value:
- an iterator over the specified fields
-
- read (file, cnfg, cnfig)
-
read a delimited file in a Lua table. By default, attempts to treat first line as separated list of fieldnames.
Parameters:
-
file
: a filename or a file-like object (default stdin) -
cnfg
: -
cnfig
: options: can override delim (a string pattern), fieldnames (a list), specify no_convert (default is to convert), numfields (indices of columns known to be numbers) and thousands_dot (thousands separator in Excel CSV is '.')
-