Skip to content

Commit

Permalink
analyze: Adds a new analysis command
Browse files Browse the repository at this point in the history
  • Loading branch information
irl committed Jan 19, 2018
1 parent 7eaba19 commit a55a6d7
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
Empty file removed pathspider/cmd/analyse.py
Empty file.
35 changes: 35 additions & 0 deletions pathspider/cmd/analyze.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import logging
import json

from straight.plugin import load

from pathspider.cmd.measure import plugins

def analyze(args):
logger = logging.getLogger("analyzer")

def result_feeder():
with open("/dev/stdin") as fh:
logger.debug("job_feeder: started")
for line in fh:
try:
yield json.loads(line)
except ValueError:
logger.warning("Unable to decode JSON for a result, skipping...")
logger.debug("result_feeder: stopped")

print(json.dumps(args.spider.aggregate(result_feeder)))

def register_args(subparsers):
parser = subparsers.add_parser(name='analyze',
help="Perform an analysis of measurement results")
# Set the command entry point
parser.set_defaults(cmd=analyze)

plugin_subparsers = parser.add_subparsers(title="Plugins",
description="The following plugins are available for use:",
metavar='PLUGIN', help='plugin to use')
for plugin in plugins:
if hasattr(plugin, "aggregate"):
plugin_subparser = plugin_subparsers.add_parser(plugin.name, help=plugin.description)
parser.set_defaults(spider=plugin)
2 changes: 2 additions & 0 deletions pathspider/cmd/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import sys
import logging

import pathspider.cmd.analyze
import pathspider.cmd.filter
import pathspider.cmd.measure
import pathspider.cmd.observe
import pathspider.cmd.test

cmds = [
pathspider.cmd.analyze,
pathspider.cmd.filter,
pathspider.cmd.measure,
pathspider.cmd.observe,
Expand Down

0 comments on commit a55a6d7

Please sign in to comment.