Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #50898

Designing a Pythonic search DSL for SQL and NoSQL databases

Date 2013-07-19 22:25 +1000
Subject Designing a Pythonic search DSL for SQL and NoSQL databases
From Alec Taylor <alec.taylor6@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.4864.1374236715.3114.python-list@python.org> (permalink)

Show all headers | View raw


Dear Python community,

I am analysing designing an abstraction layer over a select few NoSQL
and SQL databases.

Specifically:

- Redis, Neo4j, MongoDB, CouchDB
- PostgreSQL

Being inexperienced; it is hard to know a nice way of abstracting search.

For conciseness in my explanation, think of `Table` as being table,
object, entity or key; and `name` as being name or type.

Maybe `res = Table.name.search(<attr_list with conditions>)`

Or on multiple `Table`:
`res = AbstractDB().AbstractSearch(<Table.attr_list with conditions>
<conditions> <Table.attr_list with conditions>)`

Then: `res.paginate(limit=25, offset=5)`

Or if you want all: `res.all()`

And additionally borrow/alias from a relevant subset of PEP249, e.g.:
`fetchone` and `fetchmany`

Will open-source this once it's of sufficient functionality.

What do you think?

Advice on better design; or just feedback on what I've mentioned?

Thanks,

Alec Taylor

PS: I am using Bottle. You'll note that some of the syntax I've
references is inspired from web2py's DAL and ODMG.

Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Designing a Pythonic search DSL for SQL and NoSQL databases Alec Taylor <alec.taylor6@gmail.com> - 2013-07-19 22:25 +1000
  Re: Designing a Pythonic search DSL for SQL and NoSQL databases Roy Smith <roy@panix.com> - 2013-07-19 08:49 -0400
    Re: Designing a Pythonic search DSL for SQL and NoSQL databases Alec Taylor <alec.taylor6@gmail.com> - 2013-07-20 00:55 +1000

csiph-web