From 5cb71b63252c2555e1ed87a0527d32357467d4e1 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Wed, 17 Jun 2020 17:29:47 +0200 Subject: use checkdep_usetex from matplotlib to check if latex is available --- src/python/gudhi/persistence_graphical_tools.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'src/python/gudhi') diff --git a/src/python/gudhi/persistence_graphical_tools.py b/src/python/gudhi/persistence_graphical_tools.py index 6a74a6ca..9bbd9aff 100644 --- a/src/python/gudhi/persistence_graphical_tools.py +++ b/src/python/gudhi/persistence_graphical_tools.py @@ -105,9 +105,11 @@ def plot_persistence_barcode( try: import matplotlib.pyplot as plt import matplotlib.patches as mpatches - from matplotlib import rc - plt.rc('text', usetex=True) - plt.rc('font', family='serif') + from matplotlib import checkdep_usetex + if matplotlib.checkdep_usetex(True): + from matplotlib import rc + plt.rc('text', usetex=True) + plt.rc('font', family='serif') if persistence_file != "": if path.isfile(persistence_file): @@ -250,9 +252,11 @@ def plot_persistence_diagram( try: import matplotlib.pyplot as plt import matplotlib.patches as mpatches - from matplotlib import rc - plt.rc('text', usetex=True) - plt.rc('font', family='serif') + from matplotlib import checkdep_usetex + if matplotlib.checkdep_usetex(True): + from matplotlib import rc + plt.rc('text', usetex=True) + plt.rc('font', family='serif') if persistence_file != "": if path.isfile(persistence_file): @@ -422,9 +426,11 @@ def plot_persistence_density( import matplotlib.pyplot as plt import matplotlib.patches as mpatches from scipy.stats import kde - from matplotlib import rc - plt.rc('text', usetex=True) - plt.rc('font', family='serif') + from matplotlib import checkdep_usetex + if matplotlib.checkdep_usetex(True): + from matplotlib import rc + plt.rc('text', usetex=True) + plt.rc('font', family='serif') if persistence_file != "": if dimension is None: -- cgit v1.2.3 From 06b502fb58b51671e5c32c2619f7f56efa66d2f2 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Wed, 17 Jun 2020 17:48:37 +0200 Subject: was not working correctly --- src/python/gudhi/persistence_graphical_tools.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/python/gudhi') diff --git a/src/python/gudhi/persistence_graphical_tools.py b/src/python/gudhi/persistence_graphical_tools.py index 9bbd9aff..5fba1b78 100644 --- a/src/python/gudhi/persistence_graphical_tools.py +++ b/src/python/gudhi/persistence_graphical_tools.py @@ -106,7 +106,7 @@ def plot_persistence_barcode( import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib import checkdep_usetex - if matplotlib.checkdep_usetex(True): + if checkdep_usetex(True): from matplotlib import rc plt.rc('text', usetex=True) plt.rc('font', family='serif') @@ -253,7 +253,7 @@ def plot_persistence_diagram( import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib import checkdep_usetex - if matplotlib.checkdep_usetex(True): + if checkdep_usetex(True): from matplotlib import rc plt.rc('text', usetex=True) plt.rc('font', family='serif') @@ -427,7 +427,7 @@ def plot_persistence_density( import matplotlib.patches as mpatches from scipy.stats import kde from matplotlib import checkdep_usetex - if matplotlib.checkdep_usetex(True): + if checkdep_usetex(True): from matplotlib import rc plt.rc('text', usetex=True) plt.rc('font', family='serif') -- cgit v1.2.3 From 0f9eb77804b3aba0b1321a2e1422bf38c43c9943 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Thu, 25 Jun 2020 09:47:30 +0200 Subject: cache checkdep_usetex value --- src/python/gudhi/persistence_graphical_tools.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/python/gudhi') diff --git a/src/python/gudhi/persistence_graphical_tools.py b/src/python/gudhi/persistence_graphical_tools.py index 5fba1b78..c6766c70 100644 --- a/src/python/gudhi/persistence_graphical_tools.py +++ b/src/python/gudhi/persistence_graphical_tools.py @@ -11,6 +11,7 @@ from os import path from math import isfinite import numpy as np +from functools import lru_cache from gudhi.reader_utils import read_persistence_intervals_in_dimension from gudhi.reader_utils import read_persistence_intervals_grouped_by_dimension @@ -56,6 +57,17 @@ def _array_handler(a): else: return a +@lru_cache(maxsize=1) +def _matplotlib_can_use_tex(): + """This function returns True if matplotlib can deal with LaTeX, False otherwise. + The returned value is cached. + """ + try: + from matplotlib import checkdep_usetex + return checkdep_usetex(True) + except ImportError: + print("This function is not available, you may be missing matplotlib.") + def plot_persistence_barcode( persistence=[], @@ -105,8 +117,7 @@ def plot_persistence_barcode( try: import matplotlib.pyplot as plt import matplotlib.patches as mpatches - from matplotlib import checkdep_usetex - if checkdep_usetex(True): + if _matplotlib_can_use_tex(): from matplotlib import rc plt.rc('text', usetex=True) plt.rc('font', family='serif') @@ -252,8 +263,7 @@ def plot_persistence_diagram( try: import matplotlib.pyplot as plt import matplotlib.patches as mpatches - from matplotlib import checkdep_usetex - if checkdep_usetex(True): + if _matplotlib_can_use_tex(): from matplotlib import rc plt.rc('text', usetex=True) plt.rc('font', family='serif') @@ -426,8 +436,7 @@ def plot_persistence_density( import matplotlib.pyplot as plt import matplotlib.patches as mpatches from scipy.stats import kde - from matplotlib import checkdep_usetex - if checkdep_usetex(True): + if _matplotlib_can_use_tex(): from matplotlib import rc plt.rc('text', usetex=True) plt.rc('font', family='serif') -- cgit v1.2.3