gavo.votable.simple module¶
A simplified API to single-table VOTables.
The basic idea is: open(…) -> (table, metadata),
where table is a numpy array.
- class gavo.votable.simple.TableMetadata(tableElement, infos)[source]¶
Bases:
object
Metadata for a VOTable table instance, i.e., column definitions, groups, etc.
These are constructed with a VOTable TABLE instance and infos, a dictionary mapping info names to lists of V.INFO items.
- gavo.votable.simple.load(source, raiseOnInvalid=True)[source]¶
returns (data, metadata) from the first table of a VOTable.
data is a list of records (as a list), metadata a TableMetadata instance.
source can be a string that is then interpreted as a local file name, or it can be a file-like object.
- gavo.votable.simple.loads(stuff, raiseOnInvalid=True)[source]¶
returns data,metadata for a VOTable literal in stuff.
- gavo.votable.simple.makeDtype(tableMetadata, defaultStringLength=20)[source]¶
returns an record array datatype for a given table metadata.
defaultStringLength lets you specify a length for char(*) fields; since makeDtype has no access to the tabular data and numpy insists on having string length, DaCHS needs to guess here.
If this isn’t fine-grained enough for you, you can always path tableMetadata, replacing * arraysizes with more appropriate values in individual cases.
- gavo.votable.simple.save(data, tableDef, destF)[source]¶
saves (data, tableDef) in VOTable format to destF.
data is a sequence of tuples, tableDef V.TABLE instance as, for example, obtainable from metadata.votTable as returned by load. data must contain type-right python values that match the table definition.
A load-save cycle loses all top-level and resource level metadata in the simplified interface. Use the full interface if that hurts you.