Skip to main content

Python extras to support visualization

Project description

An extension to the analyzere python library that facilitates “extras” including visualizations of Analyze Re LayerView objects.

Installation

pip install analyzere_extras

Graphing Options

This graphing utility provides some methods of controlling the style and format of the rendered image.

rankdir=’XX’

Option that controls the orientation of the graph. Options include:

  • ‘BT’ bottom to top (default)
  • ‘TB’ top to bottom
  • ‘LR’ left to right
  • ‘RL’ right to left
compact=True|False
Controls if duplicate nodes should be omitted (default=True). This option tends to produce smaller graphs, which should be easier to read.
with_terms=True|False
Specify that a Layer’s terms are included in each node of the graph (default=True).
warnings=True|False

Highlight nodes with suspicious terms by coloring the node red. Warning nodes are generated when any of the following conditions are true:

  • participation = 0.0
  • invert = true and filters = []
  • attachment or aggregate_attachment = unlimited
max_depth=0
The maximum depth of the graph to process. For very deeply nested structures this can reduce the size. (default=0 == all levels).
max_sources=0
The maximum number of Loss sources to graph in detail for a single node. (default=0 == all sources).
colors=[1-12]
The number of colors to be used when coloring nodes and edges. (default=1 == black, max=12).
color_mode=[‘breadth’|’depth’]
The mode to use when applying colors. Options include: [‘breadth’, ‘depth’], default: ‘breadth’.

Sample LayerView Images:

LayerViewDigraph(lv, ...) render(...)
compact= with_terms= warnings= rankdir='BT' rankdir='LR'
True True True BT_compact_with-terms_warnings-enabled LR_compact_with-terms_warnings-enabled
True True False BT_compact_with-terms_warnings-disabled LR_compact_with-terms_warnings-disabled
True False True BT_compact_without-terms_warnings-enabled LR_compact_without-terms_warnings-enabled
False False False BT_not-compact_without-terms_warnings-disabled LR_not-compact_without-terms_warnings-disabled

Colorization:

LayerViewDigraph(lv, ...) render(...)
compact= colors= color_mode= rankdir='BT'
True 4 breadth BT_compact_with-terms_warnings-disabled_4-colors-by-breadth
True 4 depth BT_compact_with-terms_warnings-disabled_4-colors-by-depth
False 4 breadth BT_not-compact_with-terms_warnings-disabled_4-colors-by-breadth
False 4 depth BT_not-compact_with-terms_warnings-disabled_4-colors-by-depth

Usage

In order to make use of the visualization tools in the analyzere_extras module you will need to import the analyzere module.

First you will need to define your connection information:

import analyzere
analyzere.base_url = '<your server url>'
analyzere.username = '<your userid>'
analyzere.password = '<your password>'

Then you will need to query a LayerView that you would like to graph:

from analyzere import LayerView

lv = analyzere.LayerView.retrieve('011785b1-203b-696e-424e-7da9b0ec779a')

Now you can generate a graph of your LayerView:

from analyzere_extras.visualizations import LayerViewDigraph

g = LayerViewDigraph(lv)  # defaults: with_terms=True, compact=True, rankdir='TB', warnings=True
g = LayerViewDigraph(lv, with_terms=False)  # omit Layer terms from nodes
g = LayerViewDigraph(lv, compact=False) # graph duplicate nodes
g = LayerViewDigraph(lv, rankdir='LR')  # render the graph from Left to Right
g = LayerViewDigraph(lv, warnings=False)  # disable error node highlighting

Then to render your graph:

g.render()  # defaults: filename=None, view=True, format=None, rankdir=None
g.render(filename='mygraph') # write graph to 'mygraph'
g.render(view=True)     # attempt to auto display the graph
g.render(format='pdf')  # change the output format 'pdf'
g.render(rankdir='LR')  # render the graph from Left to Right

Shortcut: generate a graph for a given LayerView Id:

graph = LayerViewDigraph.from_id('011785b1-203b-696e-424e-7da9b0ec779a')

Testing

We currently commit to being compatible with Python 2.7 and Python 3.4. In order to run tests against against each environment we use tox and py.test. You’ll need an interpreter installed for each of the versions of Python we test. You can find these via your system’s package manager or on the Python site.

To start, install tox:

pip install tox

Then, run the full test suite:

tox

To run tests for a specific module, test case, or single test, you can pass arguments to py.test through tox with --. E.g.:

tox -- tests/test_base_resources.py::TestReferences::test_known_resource

See tox --help and py.test --help for more information.

Publishing

  1. Install twine and wheel:

    pip install twine wheel
    
  2. Increment version number in setup.py according to PEP 440.

  3. Commit your change to setup.py and create a tag for it with the version number. e.g.:

    git tag 0.1.0
    git push origin 0.1.0
    
  4. Package source and wheel distributions:

    python setup.py sdist bdist_wheel
    
  5. Upload to PyPI with twine:

    twine upload dist/*
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
analyzere_extras-0.1.10-py2.py3-none-any.whl (12.5 kB) Copy SHA256 hash SHA256 Wheel py2.py3
analyzere_extras-0.1.10.tar.gz (11.4 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page