a49c655816
Strictly enforce (start < end) for all intervals.
...
Previously, we allowed start == end, but this doesn't make sense with
half-open intervals.
2013-02-21 14:06:40 -05:00
30e3ffc0e9
Fix check for interval ends to be None, so that zero doesn't confuse it
2013-02-21 12:42:33 -05:00
db7211c3a9
Have server verify that start <= end before creating intervals
...
Also rename _fill_in_limits to _check_user_times
2013-02-21 12:38:51 -05:00
c6d57cf5c3
Fix errors with calculating limits when start==end==None
...
This also has the effect of now handling negative timestamps
correctly.
2013-02-19 19:27:06 -05:00
ca5253ddee
Fix and test stream_count
2013-02-19 18:26:44 -05:00
e19da84b2e
server: always return None instead of sometimes returning "ok"
...
Previously some functions returned the string "ok".
2013-02-19 18:26:44 -05:00
3e8e3542fd
Test for detecting nested HTTP requests
2013-02-19 18:26:44 -05:00
2f7365412d
client: detect and give a more clear error when HTTP requests are nested
2013-02-19 17:20:07 -05:00
bba9ad131e
Add test for client.stream_insert_context
2013-02-19 17:19:45 -05:00
ee24380d1f
Replace duplicated URL in tests with a variable
2013-02-19 15:27:51 -05:00
bfcd91acf8
client tests: renumber
2013-02-19 15:25:34 -05:00
d97291d4d3
client: Use .stream_insert_block from within .stream_insert_context
...
Avoids duplicating code.
2013-02-19 15:25:01 -05:00
a61fbbcf45
Big rework of client stream_insert_context
...
Now supports these operations:
ctx.insert_line()
ctx.insert_iter()
ctx.finalize() (end the current contiguous interval, so a new one
can be started with a gap)
ctx.update_end() (update ending timestamp before finalizing interval)
ctx.update_start() (update starting timestamp for new interval)
2013-02-18 18:06:03 -05:00
5adc8fd0a7
Remove nilmdb.utils.misc.pairwise, as it's no longer used.
2013-02-18 18:06:03 -05:00
251a486c28
client.py: Significant speedup in stream_insert_context
...
block_data += "string" is fast with local variables, but slow with
variables inside some namespace. Instead, build a list of strings and
join them once at the end. This fixes the slowdown that resulted from
the stream_insert_context cleanup.
2013-02-18 18:06:03 -05:00
1edb96a0bd
Add client.stream_insert_context, convert everything to use it. Slow.
...
Not sure why this is so painfully slow. Need more testing;
might have to scratch the idea.
2013-02-18 18:06:03 -05:00
52e674a192
Fix warning in mustclose decorator
2013-02-18 18:05:45 -05:00
e241c13bf1
Remove must_close decorator from client
...
It still should be closed, but warning each time was mostly for
debugging and it's kind of annoying when writing one-off programs
where it's OK to just let things get torn down as they're completed.
Not closing is not fatal in terms of data integrity etc.
2013-02-18 18:02:05 -05:00
b53ff31212
client: Add must_close() decorator to nilmdb.Client, and fix tests
...
Test suite wasn't closing connections correctly.
2013-02-16 18:55:23 -05:00
2045e89f24
client: Add context manager functionality, test closing
2013-02-16 18:55:20 -05:00
841b2dab5c
server: Replace /dbpath and /dbsize with a more generic /dbinfo
...
Update tests accordingly. This isn't backwards compatible, but
existing clients don't rely on it.
2013-02-14 16:57:33 -05:00
d634f7d3cf
bulkdata: Use file writes instead of writing to the mmap.
...
Extending and then writing to the mmap file has a problem: if the disk
fills up, the mapping becomes invalid, and the Python interpreter will
get a SIGBUS, killing it. It's difficult to catch this gracefully;
there's no way to do that with existing modules. Instead, switch to
only using mmap when reading, and normal file writes when writing.
Since we only ever append, it should have similar performance.
2013-02-13 20:30:39 -05:00
1593e181a3
Switch to versioneer-provided versions everywhere
2013-02-05 19:07:38 -05:00
8e781506de
Incorporate versioneer for versioning
2013-02-05 18:49:07 -05:00
f6a2c7620a
Restructure cherrypy application more correctly
...
Specifically, switch from using global configuration and several apps,
to using application-specific configuration with a single app. This
should hopefully make it easier to plug this into another
WSGI-compliant server someday, and also silences some startup warnings
about missing application configs.
2013-02-04 22:38:49 -05:00
6c30e5ab2f
Add gitclean target to Makefile
2013-02-04 22:15:12 -05:00
810eac4e61
Flesh out the list of dependencies in setup.py
2013-02-04 22:14:09 -05:00
d9bb3ab7ab
Fix iteratorizer coverage issue with thread timing
2013-02-04 22:14:01 -05:00
21d0e90bd9
Rework Cython and external module support.
...
Now we build Cython modules only if cython >= 0.16 is present.
Tarballs made by "make sdist" include the Cython-generated *.c files,
and so Cython isn't required on the end user machine at all.
2013-02-04 22:12:52 -05:00
f071d749ce
Generate a MANIFEST.in from setup.py; more setup.py and Makefile updates
2013-02-04 18:14:44 -05:00
d95c354595
Print a warning in setup.py if basic dependencies aren't present
2013-02-01 17:44:54 -05:00
9bcd8183f6
Add cython dependency
2013-02-01 17:44:27 -05:00
5c531d8273
Convert runserver.py into a generated nilmdb-server script
2013-02-01 17:43:41 -05:00
3fe3e2ca95
Move nilmtool into a dedicated nilmdb.scripts module
2013-02-01 17:42:09 -05:00
f01e781469
Convert nilmtool.py into a setuptools-generated script
...
At install time, the script "/usr/bin/nilmtool" will be created.
2013-02-01 16:25:12 -05:00
e6180a5a81
Remove all relative imports
2013-02-01 16:02:01 -05:00
a9d31b46ed
More files in clean target
2013-02-01 15:48:55 -05:00
b01f23ed99
Move runtests.py script into test directory
2013-02-01 15:47:47 -05:00
842bf21411
Include the full server response if we can't parse errors out of it.
...
This makes things easier to debug if there's an error in
e.g. json_error_handler(), or if we're trying to poke a server that's
not even ours.
2013-02-01 15:47:47 -05:00
750d9e3c38
Clean up some pylint warnings and potential errors
2013-02-01 15:29:24 -05:00
3b90318f83
Merge remote-tracking branch 'origin/packaging'
2013-01-31 21:54:41 -05:00
1fb37604d3
Rearrange documentation, clean up Makefile, README
2013-01-31 19:06:32 -05:00
018ecab310
Make setup.py executable
2013-01-31 17:26:55 -05:00
6a1d6017e2
Include datetime_tz module
2013-01-31 17:25:14 -05:00
e7406f8147
Add metadata
2013-01-31 17:14:47 -05:00
f316026592
Move datetime_tz package under nilmdb.utils
...
datetime_tz isn't readily available, so it's a lot easier to just
package it within the nilmdb tree.
2013-01-30 19:03:42 -05:00
a8db747768
More work on setup.py; fixed issues in setup.cfg
...
Adjusted setup.cfg so "python setup.py nosetests" now works correctly.
Also added a "test" alias so that "python setup.py test" works.
2013-01-30 18:35:12 -05:00
727af94722
Start working on setup.py
2013-01-29 20:21:03 -05:00
6c89659df7
Cleanup cmdline "create" help text
2013-01-28 19:07:48 -05:00
58c7c8f6ff
Support "now" as a timestamp argument
2013-01-28 19:07:45 -05:00