Python extras to support the analyzere package
Project description
An extension to the analyzere python library that facilitates “extras” including visualizations of Analyze Re LayerView objects.
Installation
pip install analyzerePythonTools
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 |
||
True |
True |
False |
||
True |
False |
True |
||
False |
False |
False |
Colorization:
LayerViewDigraph(lv, ...) |
render(...) |
||
---|---|---|---|
compact= |
colors= |
color_mode= |
rankdir='BT' |
True |
4 |
breadth |
|
True |
4 |
depth |
|
False |
4 |
breadth |
|
False |
4 |
depth |
Usage
In order to make use of the tools in the analyzere-tool-extra module you will need to import the analyzere module.
You will need to define your connection information:
import analyzere analyzere.base_url = '<your server url>' analyzere.username = '<your userid>' analyzere.password = '<your password>'
Visualization
To make use of the visualization tool, 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-tool-extra.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')
ELT Combination
To make use of the ELT combiner tool, you will need to define the list of uuids representing the resources with ELTs that you would like to combine:
uuid_list = ['26a8f73b-0fbb-46c7-8dcf-f4de1e222994', 'cd67ba03-302b-45e5-9341-a4267875c1f8']
You will need to indicate which catalog these ELTs correspond to:
catalog_uuid = '61378251-ce85-4b6e-a63c-f5d67c4e4877'
Then to combine the ELTs into a single ELT:
from analyzerePythonTools.combine_elts import ELTCombiner elt_combiner = ELTCombiner() combined_elt = elt_combiner.combine_elts_from_resources( uuid_list, catalog_uuid, uuid_type='all', description='My Combined ELT' )
uuid_type specifies which the type of resources in uuid_list. Valid values for uuid_type are:
'Portfolio'
'PortfolioView'
'Layer'
'LayerView'
'LossSet'
'all'
If uuid_type='all' is set, then the resources in uuid_list can be a mix of Portfolios, PortfolioViews, Layers, LayerViews, and LossSets. The default value of uuid_type is 'all'.
description defines the description for the uploaded combined ELT. If not set, the default is 'analyzerePythonTools: Combined ELT'.
Testing
We currently commit to being compatible with Python 2.7 and Python 3.4 to 3.7. 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
-
pip install twine wheel
Increment version number in setup.py according to PEP 440.
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
Package source and wheel distributions:
python setup.py sdist bdist_wheel
Upload to PyPI with twine:
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file analyzerePythonTools-0.1.5.tar.gz
.
File metadata
- Download URL: analyzerePythonTools-0.1.5.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35f8e735ca9949b28f838b781761da6ea1188074e79fda0da8cad2cb35728ba0 |
|
MD5 | e9f0f41644da0d9f57b2faa40dc9b3a1 |
|
BLAKE2b-256 | 36609bfbd1b6787288967e0eca4bf34d8a2fc69e27db5a6789084207e20322fd |
File details
Details for the file analyzerePythonTools-0.1.5-py2.py3-none-any.whl
.
File metadata
- Download URL: analyzerePythonTools-0.1.5-py2.py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4866997ae993ef10e25b124f137a738a44561f5f5059dc446cb07e1614f8750e |
|
MD5 | 2bb8f01e5e182a895e574cfdc5b2b148 |
|
BLAKE2b-256 | f4129603d7d4f7ffd341efd055f37abb1e5b4f4b3e0bc019193bb699372753ac |