3
O+eU @ s d dl Z d dlZd dlmZmZ d dlmZ d dlZd dl m
Z
mZ ddlm
Z
mZ ddlmZ dgZed d
ddd
dddgZed
ddddgZG dd dZG dd dZdS ) N)defaultdict
namedtuple)suppress)
NetworkXErrorNetworkXNoPath )EdgeAttrDictEdgeAttrList)
TERuletypeDomainTransitionAnalysisstepsourcetarget
transitionentrypointssetexec
dyntransition
setcurrentname
entrypointexecutetype_transitionc @ s e Zd ZdZd!ddZedd Zejdd Zed d
Zejdd
Zdd
Z d"ddZ
dd Zdd Zdd Z
edd Zdd Zdd Zdd Zdd ZdS )#r zDomain transition analysis.FNc C s> t jt| _|| _|| _|| _d| _d| _t j
| _d| _dS )zD
Parameter:
policy The policy to analyze.
TN)
loggingZ getLogger__name__logpolicyexcludereverserebuildgraphrebuildsubgraphnxZDiGraphGsubG)selfr r r r$ /usr/lib64/python3.6/dta.py__init__6 s
z!DomainTransitionAnalysis.__init__c C s | j S )N)_reverse)r# r$ r$ r% r E s z DomainTransitionAnalysis.reversec C s t || _d| _d S )NT)boolr' r )r# directionr$ r$ r% r I s
c C s | j S )N)_exclude)r# r$ r$ r% r N s z DomainTransitionAnalysis.excludec s* |r fdd|D _ ng _ d _d S )Nc s g | ]} j j|qS r$ )r lookup_type).0t)r# r$ r%