firebirdsql package is a set of Firebird RDBMS (https://firebirdsql.org/) bindings for Python (Written in pure Python : no C compiler needed or fbclient library)
see https://pyfirebirdsql.readthedocs.io/en/latest/
It works on Python 2.7 and 3.8+.
But if you want to use the timezone feature of Firebird 4.0 ...
- Not supported by python2.7
- Python 3.8 requires backports.zoneinfo https://pypi.org/project/backports.zoneinfo/ install
https://peps.python.org/pep-0249/
import firebirdsql conn = firebirdsql.connect( host='localhost', database='/foo/bar.fdb', port=3050, user='alice', password='secret' ) cur = conn.cursor() cur.execute("select * from baz") for c in cur.fetchall(): print(c) conn.close()
In Python3, you can use asyncio to write the following.
This API is experimental. If there are any mistakes, please correct them in the pull request and send.
Use connect
import asyncio import firebirdsql from firebirdsql import aio async def conn_example(): conn = await aio.connect( host='localhost', database='/foo/bar.fdb', port=3050, user='alice', password='secret' ) cur = conn.cursor() await cur.execute("select * from baz") print(await cur.fetchall()) asyncio.run(conn_example())
Use pool
import asyncio import firebirdsql from firebirdsql import aio async def pool_example(loop): pool = await aio.create_pool( host='localhost', database='/foo/bar.fdb', port=3050, user='alice', password='secret' loop=loop, ) async with pool.acquire() as conn: async with conn.cursor() as cur: await cur.execute("select * from baz") print(await cur.fetchall()) pool.close() await pool.wait_closed() loop = asyncio.get_event_loop() loop.run_until_complete(pool_example(loop)) loop.close()