SQLite Utilities (ligo.skymap.util.sqlite
)¶
Tools for reading and writing SQLite databases.
- ligo.skymap.util.sqlite.get_filename(connection)[source]¶
Get the name of the file associated with an SQLite connection.
- Parameters:
- connection
sqlite3.Connection
The database connection
- connection
- Returns:
- str
The name of the file that contains the SQLite database
- Raises:
- RuntimeError
If more than one database is attached to the connection
Examples
>>> import tempfile >>> import os >>> with tempfile.TemporaryDirectory() as d: ... with sqlite3.connect(os.path.join(d, 'test.sqlite')) as db: ... print(get_filename(db)) ... /.../test.sqlite
>>> with tempfile.TemporaryDirectory() as d: ... with sqlite3.connect(os.path.join(d, 'test1.sqlite')) as db1, \ ... sqlite3.connect(os.path.join(d, 'test2.sqlite')) as db2: ... filename = get_filename(db1) ... db2.execute('ATTACH DATABASE "{}" AS db2'.format(filename)) ... print(get_filename(db2)) ... Traceback (most recent call last): ... RuntimeError: Expected exactly one attached database
- ligo.skymap.util.sqlite.open(string, mode)[source]¶
Open an SQLite database with an
open
-style mode flag.- Parameters:
- stringstr
Path of the SQLite database file
- mode{‘r’, ‘w’, ‘a’}
Access mode: read only, clobber and overwrite, or modify in place.
- Returns:
- connection
sqlite3.Connection
- connection
- Raises:
- ValueError
If the filename is invalid (e.g.
/dev/stdin
), or if the requested mode is invalid- OSError
If the database could not be opened in the specified mode
Examples
>>> import tempfile >>> import os >>> with tempfile.TemporaryDirectory() as d: ... open(os.path.join(d, 'test.sqlite'), 'w') ... <sqlite3.Connection object at 0x...>
>>> with tempfile.TemporaryDirectory() as d: ... open(os.path.join(d, 'test.sqlite'), 'r') ... Traceback (most recent call last): ... OSError: Failed to open database ...
>>> open('/dev/stdin', 'r') Traceback (most recent call last): ... ValueError: Cannot open stdin/stdout as an SQLite database
>>> open('test.sqlite', 'x') Traceback (most recent call last): ... ValueError: Invalid mode "x". Must be one of "arw".