It enables SQL files to be imported as python modules.
Requirements
Python 2.7
Python 3.6
Install
$ pip install sql-importer
Usage
You have to make __init__.py at the same directory which sql files have been placed on.
And write like the following to the __init__.py:
## if using django: # from django.db import connection import os from sql_importer import init init(os.path.dirname(__file__), globals(), connection, sql_type='postgresql')That’s all, you can import sql files (removed .sql suffix) as python modules.
Example: testing/sql/sum_sales.sql exists.
SELECT SUM(price) AS sum_sales FROM sales WHERE sales_from >= :'sales_from' AND sales_to < :'sales_to' ;from datetime import date from testing import sql sql.sum_sales.query(sales_from=date(2017, 5, 22), sales_to=date(2017, 12, 26))sql object has 2 methods, both method execute the sql and receive variables as keyword arguments.
- query:
It returns records. it expects only what has one or more results like select query.
- execute:
It returns number of records affected by the SQL.
Now sql_type argument allows postgresql.
If you want to use the other sql_type, please make the issue on https://github.com/beproud/sql-importer .
Demo
start up
$ git clone git@github.com:beproud/sql-importer.git
$ cd sql-importer
$ docker-compose up
preparation
$ docker exec -it sqlimporter_app_1 /bin/bash
# python -m venv venv # only first time
# source venv/bin/activate
Try
(venv) # ls tests/postgresql/sql
__init__.py __init__.pyc __pycache__ clear.sql create_table.sql delete.sql drop_table.sql insert.sql select.sql update.sql
(venv) # python
>>> from tests.postgresql import sql
>>> sql.
sql.clear sql.create_table sql.drop_table sql.init( sql.os sql.select
sql.connection sql.delete sql.host sql.insert sql.psycopg2 sql.update
>>> sql.create_table.execute()
-1
>>> sql.insert.execute(name='apple', price=100)
1
>>> list(sql.select.query())
[{'name': 'apple', 'price': 100}]
>>> sql.delete.execute(name='orange')
0
>>> sql.delete.execute(name='apple')
1
>>> list(sql.select.query())
[]
Unittest
(venv) # tox
This library is tested by only latest postgresql.
Contributors
aodag ( https://github.com/aodag )
crohaco ( https://github.com/righ )
Links
Metadata
Release files for sql-importer 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sql-importer-1.0.0.tar.gz | 4.8 kB | Without provenance | Details for sql-importer-1.0.0.tar.gz |
Release files / sql-importer-1.0.0.tar.gz
| Download URL | sql-importer-1.0.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7aa705f5745d37fc39d14716c6e4600aa506a316604e5f5bed7fe92798bd5cbd
|
|
BLAKE2b-256 checksum How to use checksums |
06d75398d35a2c0db61932933a849bd86354b274b6f3f2b9c2e95ef001e79f17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for sql-importer 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.