97bec3b1eeOptimization that uses slices on the table rather than checking each row individually, when extracting data.Jim Paris2012-06-04 23:46:33 +0000
27f8dcf06dExtract works now and we're back to 100% test coverage! It's slow, though; need to figure out where the slowdown lies.Jim Paris2012-05-30 18:24:36 +0000
cb97ad3d2cInterval bisection to find the correct database row seems to work in nilmdb now. Needs testing, and nilmdb's stream_extract needs to be finishedJim Paris2012-05-29 23:49:08 +0000
8a7b3b5f95Add DBInterval and associated tests. Clean up other interval tests as well, and fix missing coverage on IntervalSet.str()Jim Paris2012-05-25 21:45:05 +0000
11cc124019Formatters done, not necessarily fast enough thoughJim Paris2012-05-25 19:02:58 +0000
e2daeb5e54- Some updates to max_results handling on server sideJim Paris2012-05-25 16:44:24 +0000
cbc7c5125dWIP on getting stream extract to work.Jim Paris2012-05-24 21:05:38 +0000
27fd9d54f9Streaming responses from the server weren't actually streaming. Fix that. This requires a bit of restructuring of server.py:intervals() to allow us to properly report errors before beginning the stream.Jim Paris2012-05-23 23:18:24 +0000
e5e7ae9edaFix bug that caused responses to always be truncated earlyJim Paris2012-05-23 20:19:06 +0000
315bc57ac3More complete test coverage of nilmdb.httpclient, yayJim Paris2012-05-23 20:00:01 +0000
3b0b9175d6For stream_interval, make the server handle sending multiple requests to the database, not the client. The server now maintains the open HTTP connection and sends a continuous streaming reply to the GET request.Jim Paris2012-05-23 19:08:59 +0000
e570800396Add "iteratorizor", which transforms a function that uses callbacks into a generator. Needed to get pycurl's WRITEFUNCTION to give us a generator instead. It's a bit tricky and uses threads and queues, but seems to work OK.Jim Paris2012-05-23 01:00:12 +0000
c327378373Split MyCurl into a HTTPClient class insteadJim Paris2012-05-21 21:50:01 +0000
624980a47bStarted moving to python-requests so we can do a get() with an interator on the response, but it turns out that it's really crappy with regards to socket closing, so I'll revert this in a moment.Jim Paris2012-05-18 21:49:29 +0000
3f436e6dfdUse simplejson instead of json for performanceJim Paris2012-05-16 22:19:00 +0000
d647ea7eeeCleanup handling of truncated intervals, more work on extractJim Paris2012-05-11 18:31:11 +0000
e3be1a1d8aAdd IntervalSet.intersection(). This returns a generator that allows us to look at just some of the intervals without having to reconstruct an entire IntervalSet class -- which greatly reduces server load when handling requests that cover large interval ranges.Jim Paris2012-05-10 21:54:29 +0000
f63e58f2d9Cleanup cmdline by splitting it into multiple files. Essentially the individual subcommands are still treated as being part of the same class (and use "self" to refer to the Cmdline class), but they're different modules now.Jim Paris2012-05-10 20:35:51 +0000
a05a026bc7Make stream_intervals use a generator, so the client library handles re-issuing the request when the output data gets truncated. Works well.Jim Paris2012-05-10 18:14:57 +0000
1d875b1f1fStart extract command in cmdline.pyJim Paris2012-05-08 21:27:56 +0000
f4f2493b59Some small speed improvements. Intervals are really a pain; need to rework how this all works together, but will probably move on to extraction now.Jim Paris2012-05-08 17:40:11 +0000
47245df9bdnilmdb now caches the intervals the first time a particular stream's intervals are accessed, so it doesn't need to keep rebuilding them as long as it's running.Jim Paris2012-04-24 21:59:33 +0000
c07670ac3eMake the whole nilmdb.layout parser Cython, and rewrite the parsing bits so it's hopefully quite a bit faster now.Jim Paris2012-04-24 21:00:26 +0000
ac32647facRemove PyTables indexing support; it's not necessary since we're just using pytables as a row-indexed data store.Jim Paris2012-04-13 20:51:18 +0000
b84ffddd50New bxinterval implementation is at least linear -- not much better in the TestIntervalSpeed versus the previous bisect version, but should be better in general.Jim Paris2012-04-12 22:39:16 +0000
1531114677fix typos in test_interval; test big numbers and floatsJim Paris2012-04-12 21:05:54 +0000
ab4c1f0925Update bxintersect to use doubles, not ints. Cython is easy!Jim Paris2012-04-12 20:26:33 +0000
f7149e48e8Add intersection.pyx from bx-pythonJim Paris2012-04-12 20:16:46 +0000
055cfa12b2Various work on improving intervals...Jim Paris2012-04-11 22:05:27 +0000
5cb03cd6efUpdate design.md. Add commit after each insertJim Paris2012-04-10 20:52:59 +0000
f3b0dfabeaMore work on commandline and commandline tests.Jim Paris2012-04-06 18:25:09 +0000
cccaec326aNeed to figure out a better way to handle thisJim Paris2012-04-04 22:57:12 +0000
a3f444eb25A lot more command line testing. There'es some issue with tons of requests getting slowly blocked, though...Jim Paris2012-04-04 22:34:01 +0000
277b0c1d00More command line tests. Make nilmdb.cmdline a proper class Fix various stuff Add /dbpath command to get DB pathJim Paris2012-04-04 18:54:24 +0000
7bba4a80d9Work on command line client, and some improvements to server handling of bad URLsJim Paris2012-04-03 22:21:42 +0000
e63ab23d20stream_insert puts data into the database now. Fill out tests to cover overlapping data, missing data, etc.Jim Paris2012-03-31 04:15:29 +0000
776279a4e6Go back to generic parsing for most stuff now. Need to rework what's most efficient here.Jim Paris2012-03-30 22:15:04 +0000
7a9012c3e9work on improving layout parsingJim Paris2012-03-30 21:29:22 +0000
cc4e3bdb76Rename some nilmdb methods to be privateJim Paris2012-03-29 21:43:05 +0000
3dfd187710Use instantiated classes for layouts.Jim Paris2012-03-29 16:46:34 +0000
cf66eca42cSpent time trying to get Intervals and IntervalSets to handle a gap tolerance in equality comparisions, but it's a real pain to get all the edge cases right, and it's not clear we actually need that functionality at the moment. Skip it for now.Jim Paris2012-03-28 19:25:02 +0000
18720db594Remove outdated chunk tests. Again, serves as a good example if we need chunked streaming uploads in the future, but probably not necessary right now.Jim Paris2012-03-26 21:36:27 +0000
19c70bf887Remove the cherrypy ChunkedRFile fixup, and the disable_prb tool that disables process_request_body. They'll be necessary if we want to support streaming chunked uploads, but at this point it doesn't seem like that's going to be necessary.Jim Paris2012-03-26 21:35:33 +0000
dd5658f987Better handling on server side -- insert now reads the body.Jim Paris2012-03-26 16:47:11 +0000
54847b0710Upload the data in the POST. Client side should be mostly good, for nowJim Paris2012-03-25 19:12:49 +0000
b72e276eb8More timestamper tests. Add "end" parameter to TimestamperRate, to force the file to end before a specific time. Will be good for loading in old files and knowing that things don't overlap.Jim Paris2012-03-24 21:15:24 +0000
0808ed5bd8Add datetime_tz module from python-datetime-tz repository. This could go away if it gets packaged in Debian etc.Jim Paris2012-03-24 17:32:11 +0000
ec25eac697Misc cleanups, fix some pylint issuesJim Paris2012-03-23 15:50:33 +0000