Metadata-Version: 2.4
Name: firebirdsql
Version: 1.4.2
Summary: Firebird RDBMS bindings for python.
Author-email: Hajime Nakagami <nakagami@gmail.com>
Project-URL: Project, https://github.com/nakagami/pyfirebirdsql/
Keywords: Firebird
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Database
Description-Content-Type: text/x-rst
License-File: LICENSE
Dynamic: license-file

================
PyfirebirdSQL
================

.. image:: https://img.shields.io/pypi/v/firebirdsql.png
   :target: https://pypi.python.org/pypi/firebirdsql

.. image:: https://img.shields.io/pypi/l/firebirdsql.png

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)

Sorry, it support Firebird 2.5+.

It works on Python 3.10+.

- TimeZone feature in Firebird 4.0+
- asyncio API

Example
-----------

Python Database API Specification v2.0
+++++++++++++++++++++++++++++++++++++++++

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()


asyncio
++++++++++++++++++++++++++++++++++++++

::

   import asyncio
   import firebirdsql

   async def conn_example():
       conn = await firebirdsql.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

   async def pool_example(loop):
       pool = await firebirdsql.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()
