Skip to main content

Remotable

Remote virtual tables for SQLite in Python

Remotable is an APSW shell extension that allows you to pull remote data sources into your SQLite database. Remotable is not a C-extension and thus will only work in the Python APSW shell.

Quick Start

The below example uses pyodbc to connect to a Microsoft Access database on Windows. You could also use any DBApi compliant driver, as long as you know its connect parameters.

$ python -m pip install remotable pyodbc
$ python -m remotable [database name]

sqlite> CREATE VIRTUAL TABLE access_table USING remotable(pyodbc, mytable, 'DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=C:/path/to/a/file.accdb', querytype=table);

CREATE VIRTUAL TABLE Syntax:

CREATE VIRTUAL TABLE <table name> USING remotetable(<python dbapi driver>, <select statement>, <arg1>, <arg2>, ..., <argN>, <querytype>);

Parameters:

python dbapi driver: A PEP 249-compatible Python DBApi driver, such as pyodbc, teradatasql, ibm_db, sqlite3, etc...

select statement: A SELECT SQL statement to describe what data to pull from the remote source

arg1...argN: A set of arguments, passed to the database driver's connect statement, that adhere to the following specifications:

  • if the argument is a string, which uses single quotes, it is interpreted as a positional parameter (*args in Python parlance). Examples of strings:
    • 'DSN=DSN1;DATABASE=abc123'
    • 'DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=C:/path/to/a/file.accdb'
  • if the argument is an assignment, it is interpreted as a keyword argument (passed to the connect's **kwargs). Examples include:
    • user='username'
    • password='abc'
  • if a keyword argument string contains the phrase <getpass>, Remotable will prompt the user for a password for that given argument.

Special arguments:

There are some special keywords that you can optionally provide after the connect arguments.

  • querytype: Either table, or query. If not provided, the default is table. This means that the query you provided corresponds to a table name, and is not actual SQL.

Release files for remotable 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for remotable 1.2.0
File Size Uploaded
remotable-1.2.0.tar.gz 6.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for remotable 1.2.0
File Interpreter ABI Platform
remotable-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.4 kB

Release files / remotable-1.2.0.tar.gz

Download URL remotable-1.2.0.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a7a176a2b9fcbb9b79eff466e54ba440128d7f5fb752c2d607ff65189d67a832
BLAKE2b-256 checksum
How to use checksums
0210bf743d379f3a3924295e5baa29cf7339a072e1920975e765af415515b676
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / remotable-1.2.0-py3-none-any.whl

Download URL remotable-1.2.0-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bdd589a2501c3a4ee00c8ea1fe9ae756d61a1faf62027606fd83584d55855fcc
BLAKE2b-256 checksum
How to use checksums
d094beefc5889435e7a6cb3cdb2d98f1b39250485534bca5995982f805ad622e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.2

2 release files

1.1.1

1 release file

1.1.0

1 release file

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page