Datasource API

API for working with the Datasource type.

Import this module like this:

from sympathy.api import datasource

Class datasource.Datasource

class sympathy.api.datasource.Datasource(filename: Optional[str] = None, mode: str = 'r', **kwargs)

Datasource covers the case of specifying data resources and supports four different formats: File (local file), Database (ODBC), Database SQLAlchemy and URL (for example, HTTP request).

Any node port with the Datasource type will produce an object of this kind.

Formats:

File:

Absolute filename to a local file.

Database (ODBC):

Connection string for use with a ODBC database.

Database SQLAlchemy:

Engine connection string for use with SQLAlchemy.

URL:

Arbitrary URL, can support file or http(s) schemes. In addition to the URL itself this format format allows storage of a separate environment dictionary, for example, to use as HTTP headers.

decode()

Return the full dictionary for this data source.

decode_path()

Return the path.

In a file data source this corresponds to the path of a file. In a data base data source this corresponds to a connection string. That can be used for accessing the data base. Returns None if path hasn’t been set.

Changed in version 1.2.5: Return None instead of raising KeyError if path hasn’t been set.

decode_type()

Return the type of this data source.

It can be either 'FILE' or 'DATABASE'. Returns None if type hasn’t been set.

Changed in version 1.2.5: Return None instead of raising KeyError if type hasn’t been set.

encode(datasource_dict)

Store the info from datasource_dict in this datasource.

Parameters:

datasource_dict – should be a dictionary of the same format that you get from to_file_dict() or to_database_dict().

encode_database(*args, **kwargs)

Store data base access info.

encode_path(filename)

Store a path to a file in this datasource.

Parameters:

filename – should be a string containing the path. Can be relative or absolute.

classmethod from_filename(filename)

Return new file type datasource constructed from filename.

get()

Return text data.

classmethod icon()

Return full path to svg icon.

names(kind=None, fields=None, **kwargs)

Return a formatted list with a name and type of the data. columns.

set(data)

Set text data.

static to_file_dict(fq_filename)

Create a dictionary to be used for creating a file data source.

You usually want to use the convenience method encode_path() instead of calling this method directly.

classmethod viewer()

Return viewer class, which must be a subclass of sympathy.api.typeutil.ViewerBase