Compare commits

...

6 Commits

Author SHA1 Message Date
8dfb8da15c Freeze requirements to specific versions 2020-08-06 18:11:33 -04:00
6cc1f6b7b2 Fix #! at top of shell scripts for py3 and venvs 2020-08-05 17:02:30 -04:00
8dc36c2d37 Fix stream_insert_context docstring
This was never updated when timestamps were changed from floats to
ints.
2020-08-05 14:22:35 -04:00
3738430103 Fix flake8 warnings 2020-08-03 23:40:53 -04:00
a41111b045 Fix some Python 3.8 related issues 2020-08-03 17:48:51 -04:00
85f822e1c4 Decode non-JSON HTTP responses when possible
This doesn't affect anything in nilmdb, but is needed by nilmrun.
2020-08-03 17:31:11 -04:00
12 changed files with 67 additions and 27 deletions

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python3
import os
import sys

View File

@@ -145,8 +145,8 @@ class Client():
Example:
with client.stream_insert_context('/path', start, end) as ctx:
ctx.insert('1234567890.0 1 2 3 4\\n')
ctx.insert('1234567891.0 1 2 3 4\\n')
ctx.insert('1234567890000000 1 2 3 4\\n')
ctx.insert('1234567891000000 1 2 3 4\\n')
For more details, see help for nilmdb.client.client.StreamInserter

View File

@@ -109,7 +109,7 @@ class HTTPClient():
stream=False, headers=headers)
if isjson:
return json.loads(response.content)
return response.content
return response.text
def get(self, url, params=None):
"""Simple GET (parameters in URL)"""

View File

@@ -66,7 +66,7 @@ class Complete():
layouts = []
for i in range(1, 10):
layouts.extend([(t + "_" + str(i)) for t in types])
return (l for l in layouts if l.startswith(prefix))
return (lay for lay in layouts if lay.startswith(prefix))
def meta_key(self, prefix, parsed_args, **kwargs):
return (kv.split('=')[0] for kv

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python3
import nilmdb.fsck
import argparse

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python3
import os
import sys

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python3
import nilmdb.cmdline

View File

@@ -6,6 +6,7 @@ import sys
import json
import decorator
import functools
import threading
import cherrypy
@@ -178,6 +179,19 @@ def cherrypy_patch_exit():
os._exit = real_exit
bus.exit = functools.partial(patched_exit, bus.exit)
# A behavior change in Python 3.8 means that some thread exceptions,
# derived from SystemExit, now print tracebacks where they didn't
# used to: https://bugs.python.org/issue1230540
# Install a thread exception hook that ignores CherryPyExit;
# to make this match the behavior where we didn't set
# threading.excepthook, we also need to ignore SystemExit.
def hook(args):
if args.exc_type == CherryPyExit or args.exc_type == SystemExit:
return
sys.excepthook(args.exc_type, args.exc_value,
args.exc_traceback) # pragma: no cover
threading.excepthook = hook
# Start/stop CherryPy standalone server
def cherrypy_start(blocking=False, event=False):

View File

@@ -26,7 +26,9 @@ class Timestamper():
return b""
if line[0:1] == b'#':
continue
break
# For some reason, coverage on python 3.8 reports that
# we never hit this break, even though we definitely do.
break # pragma: no cover
try:
return next(self.ts_iter) + line
except StopIteration:

View File

@@ -1,16 +1,40 @@
argcomplete>=1.10.0
CherryPy>=18.1.2
coverage>=4.5.4
cython>=0.29.13
decorator>=4.4.0
fallocate>=1.6.4
flake8>=3.7.8
nose>=1.3.7
numpy>=1.17.0
progressbar>=2.5
psutil>=5.6.3
python-datetime-tz>=0.5.4
python-dateutil>=2.8.0
requests>=2.22.0
tz>=0.2.2
WebTest>=2.0.33
argcomplete==1.12.0
CherryPy==18.6.0
coverage==5.2.1
Cython==0.29.21
decorator==4.4.2
fallocate==1.6.4
flake8==3.8.3
nose==1.3.7
numpy==1.19.1
progressbar==2.5
psutil==5.7.2
python-datetime-tz==0.5.4
python-dateutil==2.8.1
requests==2.24.0
tz==0.2.2
WebTest==2.0.35
## The following requirements were added by pip freeze:
beautifulsoup4==4.9.1
certifi==2020.6.20
chardet==3.0.4
cheroot==8.4.2
idna==2.10
jaraco.classes==3.1.0
jaraco.collections==3.0.0
jaraco.functools==3.0.1
jaraco.text==3.2.0
mccabe==0.6.1
more-itertools==8.4.0
portend==2.6
pycodestyle==2.6.0
pyflakes==2.2.0
pytz==2020.1
six==1.15.0
soupsieve==2.0.1
tempora==4.0.0
urllib3==1.25.10
waitress==1.4.4
WebOb==1.8.6
zc.lockfile==2.0

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python3
# To release a new version, tag it:
# git tag -a nilmdb-1.1 -m "Version 1.1"

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python3
import nose
import os