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


Groups > comp.lang.python > #64425

ANN: rom 0.25.0 - Redis object mapper for Python

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!goblin1!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <josiah.carlson@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'url:pypi': 0.03; 'enabling': 0.05; 'subject:Python': 0.06; 'cache': 0.07; 'report.': 0.07; 'see:': 0.07; 'subject:ANN': 0.07; 'attributes': 0.09; 'cleanup': 0.09; "django's": 0.09; 'executed': 0.09; 'fixed,': 0.09; 'indexes': 0.09; 'keys,': 0.09; 'prefix': 0.09; 'skip:# 30': 0.09; 'suffix': 0.09; 'url:github': 0.09; 'assume': 0.14; '(should': 0.16; 'columns': 0.16; 'improper': 0.16; 'intersection': 0.16; 'orm,': 0.16; 'prefix,': 0.16; 'prefixed': 0.16; 'query,': 0.16; 'skip:q 30': 0.16; 'sqlalchemy': 0.16; 'subject:mapper': 0.16; 'subject:object': 0.16; 'to:addr :python-announce-list': 0.16; 'hey': 0.18; 'trying': 0.19; 'basically': 0.19; 'everyone,': 0.19; 'filtering': 0.24; 'people,': 0.24; 'versions': 0.24; 'holds': 0.26; 'query': 0.26; 'primary': 0.26; 'defined': 0.27; 'to:2**1': 0.27; 'fixed': 0.29; 'skip:- 40': 0.29; 'feature': 0.29; 'to:no real name:2**1': 0.29; 'matching': 0.30; 'message-id:@mail.gmail.com': 0.30; 'disable': 0.31; 'enabled': 0.31; 'factor': 0.31; 'keys': 0.31; 'reduced': 0.31; 'skip:q 20': 0.31; 'interface': 0.32; 'skip:- 30': 0.32; 'url:python': 0.33; 'at:': 0.34; 'definition': 0.35; 'point.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'version': 0.36; 'described': 0.36; 'replies': 0.36; 'method': 0.36; 'thanks': 0.36; 'similar': 0.36; 'url:org': 0.36; 'should': 0.36; 'error.': 0.37; 'skip:- 20': 0.37; 'performance': 0.37; 'being': 0.38; 'skip:& 10': 0.38; 'thank': 0.38; 'to:addr:python-list': 0.38; 'issue': 0.38; 'recent': 0.39; 'ability': 0.39; 'to:addr:python.org': 0.39; 'skip:p 20': 0.39; 'skip:u 10': 0.60; 'improved': 0.60; 'new': 0.61; 'numbers': 0.61; 'range': 0.61; 'simple': 0.61; 'name': 0.63; 'chance': 0.65; 'account': 0.65; 'temporary': 0.65; 'book,': 0.68; 'skip:r 40': 0.68; 'results': 0.69; 'sports': 0.69; 'estimation': 0.84; 'execution.': 0.84
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=ujYZB7YHoA+kqSLpyNYNxTctOUK+dXihiwV/VCPifhw=; b=WhqW3zDQf1ixjLKChcHvhiKtGSSTx3wOwOY/qIoIXDvY4z9b+84oZCSwgSjokQAypF dqVubzwOLrUpheUm5gLTPaXEWel4/LHkZWNeOvY5a0Fen6HryJB34UKS2S+rKU1GKisY mrtWRaYB8+1IEJ/7OlHPJCbPlrTs43qb/Six+ooLS4Ufr8gVKbyPu4MWFdSdiE3oV5SM vh5Pp0L0VFr/sz4jQ8RHwradsbV4E73qgf1QqfhVDyGqv9LSwOc4/X4JFRcM6AiGw6Cp tk+G2hjPgIl0gTeYAEYQ7+3t3IHPwyWchjBgkTsMf+iNrAjQ2Cak+h0Go5+1y3k5Ay1Q do5g==
MIME-Version 1.0
X-Received by 10.58.132.203 with SMTP id ow11mr14982631veb.1.1390319040098; Tue, 21 Jan 2014 07:44:00 -0800 (PST)
Date Tue, 21 Jan 2014 07:44:00 -0800
Subject ANN: rom 0.25.0 - Redis object mapper for Python
From Josiah Carlson <josiah.carlson@gmail.com>
To python-list@python.org, Python-announce-list@python.org
Content-Type multipart/alternative; boundary=047d7b66f00f8277ab04f07ce05a
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.5789.1390319049.18130.python-list@python.org> (permalink)
Lines 172
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1390319049 news.xs4all.nl 2949 [2001:888:2000:d::a6]:49379
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:64425

Show key headers only | View raw


[Multipart message — attachments visible in raw view] - view raw

Hey everyone,

Big change today: rom now supports fast prefix, suffix, and pattern match
queries over your data. The method is based on the autocomplete process
described in my book, Redis in Action

The "rom" package is a Redis object mapper for Python. It sports an
interface similar to Django's ORM, SQLAlchemy + Elixir, or Appengine's
datastore.

The changelog for recent releases can be seen below my signature.

You can find the package at:
https://www.github.com/josiahcarlson/rom
https://pypi.python.org/pypi/rom

And docs can be found at:
http://pythonhosted.org/rom/

Please CC me on any replies if you have any questions or comments.

Thank you,
 - Josiah

#---------------------------------- 0.25.0
-----------------------------------
[changed] version numbers to account for bugfixes vs. feature updates.
[added] columns can now be defined to allow for prefix and/or suffix
queries.
    Enabling prefix queries also enables arbitrary pattern matching over
your
    data.
[fixed] in some cases, rom would allow the definition of multiple primary
    keys, of which only one would ever be used (inconsistently). This will
now
    result in an error.
[changed] defaulted to assume Lua is available on Redis, which has been
    released for over 15 months at this point. You can disable support via
    a call to rom._disable_lua_writes().
[added] the ability to cache and get the key that holds the result of a
query,
    which can be used for pagination, etc. See: Query.cached_result()
[warning] using rom versions of 0.23 with 0.25.0 when prefix and suffix
    indexes are enabled can result in improper results from prefix, suffix,
    and/or pattern queries, and can result in orphan data living in prefix
or
    suffix indexes. Upgrade all of your clients!
[changed] temporary keys for queries are now prefixed with the name of the
    model over which queries are being executed on. This should effect
    basically zero people, but can allow for query cleanup in the off chance
    of a failure during execution.
#----------------------------- 0.23 (unreleased)
-----------------------------
[changed] reduced number of round trips for single-filter queries by 1,
thanks
    to https://github.com/MickeyKim for the report.
#----------------------------------- 0.22
------------------------------------
[fixed] size estimation for intersection ordering when filtering has now
been
    fixed, thank you to https://github.com/MickeyKim for the report and the
    change (should improve performance).
[fixed] an issue with some types when trying to update attributes has now
been
    fixed, thank you to https://github.com/denisvolokh for the report.
[changed] improved performance for simple numeric range queries of the form
    Model.get_by(attr=value) or Model.get_by(attr=(min, max)) by roughly a
    factor of 60x or better in some cases. Thank you to
    https://github.com/MickeyKim for the report on poor performance.
#----------------------------------- 0.21
------------------------------------
[fixed] upload for rom 0.20 was missing new columns.py, now fixed

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


Thread

ANN: rom 0.25.0 - Redis object mapper for Python Josiah Carlson <josiah.carlson@gmail.com> - 2014-01-21 07:44 -0800

csiph-web