<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hey everyone,</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><div>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</div>
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">The "</span><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,204)"><span class="">rom</span></span><span style="font-family:arial,sans-serif;font-size:13px">" package is a Redis object mapper for Python. It sports an interface similar to Django's ORM, SQLAlchemy + Elixir, or Appengine's datastore.</span><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">The changelog for recent releases can be seen below my signature.</span><br style="font-family:arial,sans-serif;font-size:13px">
<br><div><div><span style="font-family:arial,sans-serif;font-size:13px">You can find the package at:</span><br style="font-family:arial,sans-serif;font-size:13px"><a href="https://www.github.com/josiahcarlson/rom" target="_blank" style="font-family:arial,sans-serif;font-size:13px">https://www.github.com/josiahcarlson/<span style="background-color:rgb(255,255,204);color:rgb(34,34,34)"><span class="">rom</span></span></a><br style="font-family:arial,sans-serif;font-size:13px">
<a href="https://pypi.python.org/pypi/rom" target="_blank" style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">https://pypi.python.org/pypi/</font><span style="background-color:rgb(255,255,204);color:rgb(34,34,34)">rom</span></a><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">And docs can be found at:</div><div style="font-family:arial,sans-serif;font-size:13px"><a href="http://pythonhosted.org/rom/" target="_blank">http://pythonhosted.org/<span style="background-color:rgb(255,255,204);color:rgb(34,34,34)"><span class="">rom</span></span>/</a><br>
<br>Please CC me on any replies if you have any questions or comments.<br><br>Thank you,<br> - <span style="background-color:rgb(255,255,204)">Josiah</span><br><div><span style="background-color:rgb(255,255,204)"><div><div>
<br></div><div>#---------------------------------- 0.25.0 -----------------------------------</div><div>[changed] version numbers to account for bugfixes vs. feature updates.</div><div>[added] columns can now be defined to allow for prefix and/or suffix queries.</div>
<div>    Enabling prefix queries also enables arbitrary pattern matching over your</div><div>    data.</div><div>[fixed] in some cases, rom would allow the definition of multiple primary</div><div>    keys, of which only one would ever be used (inconsistently). This will now</div>
<div>    result in an error.</div><div>[changed] defaulted to assume Lua is available on Redis, which has been</div><div>    released for over 15 months at this point. You can disable support via</div><div>    a call to rom._disable_lua_writes().</div>
<div>[added] the ability to cache and get the key that holds the result of a query,</div><div>    which can be used for pagination, etc. See: Query.cached_result()</div><div>[warning] using rom versions of 0.23 with 0.25.0 when prefix and suffix</div>
<div>    indexes are enabled can result in improper results from prefix, suffix,</div><div>    and/or pattern queries, and can result in orphan data living in prefix or</div><div>    suffix indexes. Upgrade all of your clients!</div>
<div>[changed] temporary keys for queries are now prefixed with the name of the</div><div>    model over which queries are being executed on. This should effect</div><div>    basically zero people, but can allow for query cleanup in the off chance</div>
<div>    of a failure during execution.</div><div>#----------------------------- 0.23 (unreleased) -----------------------------</div><div>[changed] reduced number of round trips for single-filter queries by 1, thanks</div>
<div>    to <a href="https://github.com/MickeyKim">https://github.com/MickeyKim</a> for the report.</div></div><div><div>#----------------------------------- 0.22 ------------------------------------</div><div>[fixed] size estimation for intersection ordering when filtering has now been</div>
<div>    fixed, thank you to <a href="https://github.com/MickeyKim" target="_blank">https://github.com/MickeyKim</a> for the report and the</div><div>    change (should improve performance).</div><div>[fixed] an issue with some types when trying to update attributes has now been</div>
<div>    fixed, thank you to <a href="https://github.com/denisvolokh" target="_blank">https://github.com/denisvolokh</a> for the report.</div><div>[changed] improved performance for simple numeric range queries of the form</div>
<div>    Model.get_by(attr=value) or Model.get_by(attr=(min, max)) by roughly a</div><div>    factor of 60x or better in some cases. Thank you to</div><div>    <a href="https://github.com/MickeyKim" target="_blank">https://github.com/MickeyKim</a> for the report on poor performance.</div>
</div><div>#----------------------------------- 0.21 ------------------------------------</div><div>[fixed] upload for <span class="">rom</span> 0.20 was missing new columns.py, now fixed</div><div><br></div></span></div>
</div></div></div></div>