=============
minipg
=============

Yet another Python PostgreSQL database driver.

Requirements
-----------------

- PostgreSQL 9.6+
- Python 3.9+

Installation
-----------------

use pip
::

    $ pip install minipg

or

copy a module file.
::

    $ cd $(SOMEWHERE_PYTHON_PATH)
    $ wget https://github.com/nakagami/minipg/raw/master/minipg.py

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

::

   import minipg
   conn = minipg.connect(host='localhost',
                       user='postgres',
                       password='secret',
                       database='database_name')
   cur = conn.cursor()
   cur.execute('select foo, bar from baz')
   for r in cur.fetchall():
      print(r[0], r[1])
   conn.close()

SSL Connection
++++++++++++++++++

You can make an SSL connection with an instance of SSLContext.
Below is an example of an ssl connection without certificate validation.

::

   import ssl
   import minipg
   ssl_context = ssl.create_default_context()
   ssl_context.check_hostname = False
   ssl_context.verify_mode = ssl.CERT_NONE
   conn = minipg.connect(host='localhost',
                       user='postgres',
                       password='secret',
                       database='database_name',
                       ssl_context=ssl_context)


Restrictions and Unsupported Features
--------------------------------------

- Supported Authentication METHOD are only 'trust', 'md5' and 'scram-sha-256'.
- Not full support for array data types.

For MicroPython
----------------

See https://github.com/nakagami/micropg .
It's a minipg subset driver.
