Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions py4DSTEM/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
from py4DSTEM.version import __version__
from emdfile import tqdmnd

# matplotlib < 3.11 mathtext calls pyparsing's deprecated camelCase API
# (parseString / parseAll / resetCache) once per rendered math label, which
# floods plotting output with deprecation messages under pyparsing >= 3.3.
# Rebind those compatibility aliases to call the snake_case API directly with
# the renamed arguments, so the deprecated code paths are never executed.
# Upgrading matplotlib instead is not an option in hosted notebooks (Colab
# preimports matplotlib, and a mid-session upgrade leaves a broken half-old,
# half-new install). Skipped entirely on matplotlib >= 3.11.
import matplotlib as _matplotlib
import pyparsing as _pyparsing

if getattr(_matplotlib, "__version_info__", (99,)) < (3, 11) and hasattr(
_pyparsing.ParserElement, "parse_string"
):

def _parse_string_compat(self, instring, parseAll=False, *, parse_all=None):
return self.parse_string(
instring, parse_all=parseAll if parse_all is None else parse_all
)

_pyparsing.ParserElement.parseString = _parse_string_compat
_pyparsing.ParserElement.resetCache = classmethod(lambda cls: cls.reset_cache())

from importlib.metadata import packages_distributions

is_package_lite = "py4DSTEM-lite" in packages_distributions()["py4DSTEM"]
Expand Down
6 changes: 1 addition & 5 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,7 @@
"h5py >= 3.2.0",
"hdf5plugin >= 4.1.3",
"ncempy >= 1.8.1",
# matplotlib < 3.11 calls pyparsing's deprecated camelCase API from
# mathtext, which floods plotting output with deprecation warnings
# under pyparsing >= 3.3; require 3.11 wherever python allows it
"matplotlib >= 3.2.2; python_version < '3.11'",
"matplotlib >= 3.11; python_version >= '3.11'",
"matplotlib >= 3.2.2",
"scikit-image >= 0.17.2",
"scikit-learn >= 0.23.2",
"scikit-optimize >= 0.9.0",
Expand Down
Loading