Metadata-Version: 2.1
Name: patabase
Version: 0.2.1
Summary: Simplify DB API usage
Home-page: https://github.com/xurvan/patabase
Author: Xurvan
License: apache-2.0
Download-URL: https://github.com/xurvan/patabase/archive/v0.2.1.zip
Project-URL: Code, https://github.com/xurvan/patabase
Project-URL: Issue tracker, https://github.com/xurvan/patabase/issues
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# Patabase
Database API as it described in [PEP 249](https://www.python.org/dev/peps/pep-0249/) is a comprehensive API. It's 
amazing and we can implement any advanced scenario with it. But for a simple task we don't need an advanced or
comprehensive tool. We just need a simple tool to do the job for us. After all we all agree that "Simple is better than
complex."


## Installation
We'd like to support all the databases, but we don't like to install all the drivers of all the databases. So first of
all install and config your database driver then install corresponding python package:

```bash
pip install -U psycopg2  # for Postgres

pip install -U pyodbc  # for Microsoft SQL Server 
``` 

now you can install it from PyPi by following command:

```bash
pip install -U patabase
```

or if you prefer the latest development version, you can install it from the source:

```bash
git clone https://github.com/xurvan/patabase.git
cd patabase
python setup.py install
```


## Quickstart
SQL commands are usually categorized into DDL, DQL, DML, DCL and TCL but we are going to categorized them into different
categories:

- Select: a command with output that is not going to change anything
- Perform: a command without output that is going to change something
- Function: a stored procedure with output
- Procedure: a stored procedure without output

so let us see some code:

```python
from patabase import Postgres

db = Postgres(host='localhost', user='USERNAME', password='PASSWORD', database='DATABASE_NAME')

db.perform('''
create table users
(
    id          serial primary key not null,
    name        varchar            not null,
    username    varchar unique     not null
)
''')

rows = db.select('select * from users')

for row in rows:
    print(row)

```


## TODO

- [x] Support PostgreSQL
- [x] Support Microsoft SQL Server
- [ ] Support SQLite
- [ ] Support MySQL
- [ ] Support Oracle Database


