diff --git a/src/kapidox/depdiagram/framework.py b/src/kapidox/depdiagram/framework.py --- a/src/kapidox/depdiagram/framework.py +++ b/src/kapidox/depdiagram/framework.py @@ -22,6 +22,9 @@ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +from functools import reduce + class Framework(object): """ A framework has a tier, a name, a collection of targets it provides. diff --git a/src/kapidox/depdiagram/frameworkdb.py b/src/kapidox/depdiagram/frameworkdb.py --- a/src/kapidox/depdiagram/frameworkdb.py +++ b/src/kapidox/depdiagram/frameworkdb.py @@ -164,14 +164,13 @@ for dot_file in dot_files: yaml_file = dot_file.replace(".dot", ".yaml") with open(yaml_file) as f: - dct = yaml.load(f) + dct = yaml.safe_load(f) if 'tier' not in dct: # This mean it's not a frameworks continue tier = dct["tier"] - dot_file = dot_file.encode("utf-8") fw = parser.parse(tier, dot_file) _add_extra_dependencies(fw, dct) diff --git a/src/kapidox/depdiagram/generate.py b/src/kapidox/depdiagram/generate.py --- a/src/kapidox/depdiagram/generate.py +++ b/src/kapidox/depdiagram/generate.py @@ -24,6 +24,7 @@ # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import logging import itertools +from functools import cmp_to_key from kapidox.depdiagram.block import Block, quote from kapidox.depdiagram.framework import Framework @@ -112,7 +113,7 @@ # depend on other frameworks from that tier are listed after # their dependees. frameworks = list(frameworks) - for fw in sorted(frameworks, cmp=FrameworkCmp(self.db)): + for fw in sorted(frameworks, key=cmp_to_key(FrameworkCmp(self.db))): if self.detailed: self.write_detailed_framework(tier_block, fw) else: diff --git a/src/kapidox/depdiagram/gvutils.py b/src/kapidox/depdiagram/gvutils.py --- a/src/kapidox/depdiagram/gvutils.py +++ b/src/kapidox/depdiagram/gvutils.py @@ -42,11 +42,11 @@ @property def label(self): - return gv.getv(self.handle, b"label") + return gv.getv(self.handle, "label") @property def shape(self): - return gv.getv(self.handle, b"shape") + return gv.getv(self.handle, "shape") class Edge(object): diff --git a/src/kapidox/preprocessing.py b/src/kapidox/preprocessing.py --- a/src/kapidox/preprocessing.py +++ b/src/kapidox/preprocessing.py @@ -108,7 +108,7 @@ return None try: - metainfo = yaml.load(open(metainfo_file)) + metainfo = yaml.safe_load(open(metainfo_file)) except Exception as e: print(e) logging.warning('Could not load metainfo.yaml for {}, skipping it'